[FUG-BR] ZFS com GEOM_GATE

Mario Augusto Mania m3.bsd.mania em gmail.com
Quinta Agosto 12 13:38:48 BRT 2010


Bom pessoal, o assunto do email jah diz tudo hehehe

Montei o seguinte cenario com o virtualbox:
4 machines com freebsd e dois hd (ad0, e ad1) com o freebsd minimo
instalado no ad0 e o ad1 raw, sem criar slices nem particoes
Chamei as maquinas de server, storage01, storage02 e storage03
nas 3 storages, eu criei o /etc/gg.exports com:
192.168.1.1 RW /dev/ad1
ou seja, exporte como rw o /dev/ad1 (hd inteiro sem particao sem
slice) para o 192.168.1.1 q eh o server
e nas tres maquinas rodei o ggated
Ateh ae tudo bem

No .1, o server, carreguei o zfs e rodei o ggatec para os tres
stoarges e funcionou tudo beleza, criou o
ggate0, ggate1 e ggate2, tudo certinho

ae, fiz assim:

server# zpool create storage raidz ad1 ggate0 ggate1 ggate2

e criou o /storage perfeito, ou seja, criei o pool usando o /dev/ad1
do server e mais os tres hds dos storages via geom_gate.
Cada ad1 tem 2G

Depois de criar uns arquivos com dd para testes, o df -h me retorna:

storage        5.8G     20M    5.8G     0%    /storage

ou seja, o pool tem aproximadamente 6 gigas (sendo que cada hd tem 2,
nao deveriam ser 8G?)
Até ae tudo bem.

Bom, com o ee criei um arquivo teste.txt e digitei algum texto, coisa
pouca, salvei e tudo beleza.

Segundo teste, desligue o storage02, dei um shutdown -h na maquina, e rodei:

dd if=/dev/zero of=f1.bin bs=1M count=10

E ele criou o arquivo com 10 megas normalmente
e mesmo com o storage02 desligado o zpool status retorna:

server# zpool status
 pool: storage
 state: ONLINE
 scrub: none requested
config:

       NAME        STATE     READ WRITE CKSUM
       storage     ONLINE       0     0     0
         raidz1    ONLINE       0     0     0
           ad1     ONLINE       0     0     0
           ggate0  ONLINE       0     0     0
           ggate1  ONLINE       0     0     0
           ggate2  ONLINE       0     0     0

errors: No known data errors

Bem, resolvi chutar o balde hehehe, desliguei o storage03, e rodei o
dd novamente para criar um novo arquivo, o f2.bin tambem com 10 megas,
ae a coisa ficou estranha, aparentemente o server travou, apesar de
responder ao enter (o texto rolava para cima, tanto via ssh, quanto
via sessao local no virtualbox), o processo do dd nao continuava, nem
morria com control+c, nem ia pra bg com control-v.

Chutei o balde mais ainda e desliguei o storage01, ou seja, soh ficou
o server rodando (ou melhor, travado mais ou menos heheh)

o zpool status ainda retornava:

server# zpool status
 pool: storage
 state: ONLINE
 scrub: none requested
config:

       NAME        STATE     READ WRITE CKSUM
       storage     ONLINE       0     0     0
         raidz1    ONLINE       0     0     0
           ad1     ONLINE       0     0     0
           ggate0  ONLINE       0     0     0
           ggate1  ONLINE       0     0     0
           ggate2  ONLINE       0     0     0

errors: No known data errors
 mesmo com as maquinas DESLIGADAS.

Ae, liguei as tres maquinas, e como tinha carregado o ggated na mao
(como q faz pra subir no boot???), resolvi subir na mao de novo:

ggated

fiz isso nas tres maquinas e voi-la: o processo dd finalizou e tudo
voltou ao normal, parece q o gate ficou congelado enquanto os servers
(ggated) nao respondiam. Agora, o problema eh q o f2.bin ficou com
2megas e nao 10!!!!

rodei o dd de novo e gerou normalmente com 10M

O que voces acham? Eu gostaria que quando uma das maquinas caissem, o
processo continuassem normalmente, e nao o servidor ficasse em
stand-by esperando a maquina voltar heheheh :)

Que acham? Sera q tem solucao? alguem fez algo parecido e funcionou???


-- 
Atenciosmente

Mario Augusto Mania <m3BSD>
-----------------------------------------------
m3.bsd.mania em gmail.com
Cel.: (43) 9938-9629
Msn: mario em oquei.com


Mais detalhes sobre a lista de discussão freebsd