Archive for the FISL9.0 Category

Suponha um cenário com um “cluster” de máquinas atendendo um serviço qualquer, como um apache por exemplo. Poderíamos usar “n” ferramentas para manter este cluster em sincronia, porém neste artigo eu gostaria de introduzir o poder de um Software Livre 100% Nacional criado pelo Luis Furquim!

Portanto, para que todas as máquinas fiquem em sincronia, usaremos o ChironFS que é um Sistema de Arquivos Tolerante a Falhas com Replicação de Dados, no qual tive contato em Porto Alegre durante o FISL 9.0.

Você pode fazer da apresentação do mesmo aqui: ChironFS

ChironFS

O ChironFS é um Filesystem virtual que utiliza o FUSE. Funciona sincronizando dados entre dois ou mais diretórios, porém, cada um deste diretório pode ser um ponto de montagem de uma máquina remota. Desta forma, o ChironFS atua como uma camada de abstração, sincronizando, por exemplo, um Debian com ext3 local com um Red Hat usando ReiserFS remotamente, usando NFS, SSHFS ou qualquer outro sistema que trabalhe com pontos de montagem.

No Red Hat Enterprise, infelizmente não existe os pacotes para o fuse e nem para seu módulo do kernel, mas você pode busca-los nos repositórios “dag”

http://dag.wieers.com/rpm/packages/dkms-fuse/
http://dag.wieers.com/rpm/packages/fuse/

Neste caso, as 03 máquinas de front-end exportam o diretório /data/dominios via NFS para que seja possível a montagem remota destes diretórios:

# cat /etc/hosts
192.168.0.1 site-1 site-1.com.br
192.168.0.2 site-2 site-2.com.br
192.168.0.3 site-3 site-3.com.br

# cat /etc/exports
/data/sync/site-1 192.168.0.0/24(async,rw,no_root_squash)

# cat /etc/fstab
nfsd /proc/fs/nfsd nfsd auto,defaults 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs auto,defaults 0 0
site-2:/data/sync/site-2 /data/sync/site-2 nfs soft,timeo=3 0 0
site-3:/data/sync/site-3 /data/sync/site-3 nfs soft,timeo=3 0 0

Portanto:

Site-1: monta a site-2 e a site-3
Site-2: monta a site-1 e a site-3
Site-3: monta a site-1 e a site-2

O ChironFS cuidará para que a escrita feita localmente seja replicada para as outras duas máquinas, configurado desta forma pelo /etc/fstab (atenção, um uma única linha!):

chironfs#/data/sync/site-1=:/data/sync/site-2=:/data/sync/site-3 /data/dominios
fuse allow_other,ctl=/var/run/chironctl,log=/var/log/chironfs.log 0 0

O que quer dizer:

O diretório /data/sync/site-1 (local) deve ser sincronizado com o /data/sync/site-2 (NFS, mais lento) e também com o /data/sync/site-3 (NFS) cada vez que houver escrita em /data/dominios.

Quando houver leitura em /data/domínios, o ChironFS irá dar preferência ao device local, pois é o único que não apresenta os dois pontos (“:”) em sua montagem no /etc/fstab.

Portanto, toda e qualquer escrita no disco que tenha o objetivo de ser sincronizada com as demais máquinas, devem ser feitas diretamente no /data/dominios de qualquer uma das máquinas.

- Monitoramento

O ChironFS a partir da versão 1.1 já vem pronto para ser monitorado pelo Nagios, bastando para isso acrescentar em seu nrpe.cfg:

command[check_site1]=/var/run/chironctl/_data_sync_site-1/check_chironfs.sh
command[check_site2]=/var/run/chironctl/_data_sync_site-2/check_chironfs.sh
command[check_site3]=/var/run/chironctl/_data_sync_site-3/check_chironfs.sh

- Em caso de Problemas

Algumas dicas retiradas do manual oficial: Capítulo 5. Falhas das Réplicas

Toda vez que uma réplica falha, o ChironFS tenta manter seus sistemas rodando. Se a falha ocorrer durante uma operação de leitura, o ChironFS tenta ler de alguma outra réplica e, se conseguir, retorna os dados para o chamador sem gerar erro.

Se a falha ocorrer durante uma operação de escrita, o ChironFS continua tentando escrever nas outras réplicas. Se ao menos uma das réplicas escrever com sucesso, o ChironFS retorna ao chamador sem gerar erro. Mas, desta vez, além de logar o evento, ele desabilita as réplicas que tiverem falhado. Isto significa que não haverá mais leituras ou escritas de/para as réplicas que falharam.

O crontab das máquinas possui um pequeno script para gerar gravação no /data/dominios a fim de tentar detectar quando alguma máquina do “cluster” está fora do ar:

# Verificacao ChironFS
* * * * * /bin/touch /data/dominios/`hostname`; sleep 15; /bin/rm -f /data/dominios/`hostname`

Outra dica importante é “congelar” updates no kernel, pois o ChironFS depende o FUSE que tem um módulo específico para um kernel específico. Portanto, se você atualizar o kernel no RHEL, provavelmente o módulo do fuse não irá mais funcionar e conseqüentemente, o chironfs também não. Para que isso não ocorra acidentalmente:

# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum
distroverpkg=redhat-release
...
exclude=kernel* fuse-kmdl*

Você tem a opção de montar um sistema de arquivos semelhante ao /proc para controlar o ChironFS, que é um sistema de arquivos de controle é composto de um diretório para cada réplica. Seus nomes são o pathname completo da réplica com as barras (“/”) mudadas para caracteres de sublinha.

Cada um deles contém dois arquivos: o primeiro é chamado “status” e contém um número “0″ nas réplicas que estiverem em bom estado ou um número “2″ se a réplica estiver desabilitada e os dados inconsistentes. Basta gravar “0″ ou “2″ neste arquivo para habilitar ou desabilitar a réplica.

Enfim, depois de detectar a falha, corrija a sua causa no servidor de réplica falhado. VOCÊ DEVE PROVER POR SUA CONTA O RESTABELECIMENTO DA CONSISTÊNCIA DOS DADOS NO SERVIDOR DE RÉPLICA QUE FALHOU. EU SUGIRO O USO DO RSYNC PARA ATUALIZAR OS DADOS. ESTE PASSO DEVE SER EFETUADO ANTES DE COLOCAR A RÉPLICA EM ESTADO HABILITADO DE NOVO, CASO CONTRÁRIO, VOCÊ IRÁ CORROMPER SEUS DADOS NAS DEMAIS RÉPLICAS.

Para restabelecer o uso da réplica após o procedimento de recuperação:

# echo 0 > /var/run/chironctl/_data_sync_site-3/status

E acompanhe as mudanças em /var/log/chironfs.log:

2008/08/04 11:35 init: version 1.1.2
2008/08/04 11:44 open+chown failed accessing /data/sync/site-3/site/htdocs/pops/index.html Input/output error
2008/08/04 11:44 disabling replica failed accessing /data/sync/site-3
2008/08/04 11:55 trusting replica /data/sync/site-3 Forced by administrator

Ou simplesmente “reinicie” o ChironFS:

# umount /var/run/chironctl /data/dominios
# mount /data/dominios

Parede do Hotel

O álbum de fotos do FISL 9.0 foi atualizado, pois as fotos do primeiro dia estavam em meu notebook e também eu ainda não tinha descarregado as fotos do meu celular.

Colocamos também mais fotos do super-hotel 2 estrelas “Lancaster”, situado no centro mais podre de PoA que eu não recomendo para pessoas que sofram do coração, pois o local é trash total! Dê uma olhada nesta linda parede, por exemplo.

Também consegui registar a puta-fila-debaixo-de-um-puta-sol que estava para fazer o credenciamento no evento. Realmente, desesperador.

Fila FISL 9.0

Também tem fotos do Voo para Porto Alegre, de uma das palestras que eu coordenei (ChironFS) que alias, gostei muito do conteúdo da mesma.

Por último, não poderia de deixar de mostrar a camisa nova do Firefox, depois de quase morrer protegendo-a de 7500 nerds enquanto leva-as para as crianças do OLPC :-D

Ah sim, não poderia deixar de registrar aqui no Blog as frases de efeito que vi em Porto Alegre, pichadas em muros e em portas de banheiro, como essas:

Camisa Firefox

- “O imperialismo é um tigre de papel”
- “Viva a heróica resistência iraquiana”
- “Amar sem ser amado, é o mesmo que limpar o ** sem ter cagado”

O FISL 9.0

Como você ja deve ter lido por aí em algum lugar, existiam filas quilométricas para pegar o crachá, de qualidade muito ruim por sinal (no terceiro dia era difícil encontrar algum sem remendo) além do que não recebemos os ANAIS e nem a grade de palestras impressa neste momento.

Fora essa desorganização, o acesso Wireless era mesmo coisa rara de funcionar. Você precisava ter muita sorte, e muita paciência para conectar — e para permanecer neste status por um tempo. Infelizmente, até mesmo o sinal de Internet falhou em algumas palestras, fazendo as mesmas terminarem em 20 minutos ao invés dos 50 propostos.

A PUC-RS é realmente um lugar incrível por seus vários aspectos, porém, acho que o lugar ficou pequeno para 7,5 mil pessoas lá circulando. Mais parecia o metrô Sé as 07:00 AM… um esbarrando no outro, uma loucura só :-p

PUC-RS

Palestras

Além da notória baixa qualidade técnica com relação ao ano anterior, não gostei muito da forma de como várias palestras foram executadas por “parceiros patrocinados”, sem muito conteúdo técnico e até mesmo conteúdo a ver com SL/CA, somente focado em marketing do produto.

Sei que isso se faz necessário para a viabilização de um projeto deste porte, mas mas isso graças a Deus não foi regra. Várias excessões existiram, como por exemplo as palestras:

- Frederico A C Neves – DNSSEC e o .br;

- Miguel Di Ciurcio Filho – “Access Policy Delegation: transformando o Postfix no melhor MTA do planeta” e

- Rafael David Tinoco – “Arquitetura OpenSPARC: UltraSPARC T1 e UltraSPARC T2″.

Foram ótimos exemplos de palestras “patrocinadas”, com um ou dois slides sobre a empresa que os empregam e 99% de conteúdo técnico de altíssimo grau e primeiríssima qualidade, executadas por pessoas que realmente sabiam porquê estavam ali e também sabiam do que estavam falando.

Ainda sobre as palestras, notei várias vezes um certo “conflito de interesses” constante, pois várias boas palestras com assuntos parecidos aconteciam no mesmo dia e horário, obrigando você a escolher uma delas. Isso poderia ser evitado, como no caso do LTSP por exemplo.

Alguns temas estavam por demais redundantes, muitas palestras parecidas abortando o mesmo tema, como por exemplo “Alta Disponibilidade”:

- Jair Silva (CEF) – “Software Livre em Ambiente de Alta Criticidade com Alta Disponibilidade ”

- Joniel Pasqualetto – “Infra-estrutura corporativa de alta disponibilidade utilizando Software Livre”

- Fernando Ike de Oliveira – “HA em PostgreSQL: O Elefante disponível para além do infinito HA em PostgreSQL”

- Luis Otávio de Colla Furquim – “ChironFS – Sistema de Arquivos Tolerante a Falhas com Replicação”

- Darlan Segalin – “Sistemas de arquivos distribuídos e replicados em rede com alta disponibilidade em ambiente Open Source”

Palestras

Não que eu esteja reclamando, havia macro-temas para todos os gostos, desde para sysadmins (mais técnicas) e para a parte gerencial (mais superficial), mas eu achei que alguns temas deveriam ser mais explorados, como por exemplo, Virtualização! Ou melhor ainda, o melhor dos dois mundos, algo do tipo “Clustes de Máquinas Virtuais”. Aí sim seria ótimo!

As palestras internacionais foram ótimas, e gostaria de destacar essas:

- Mark Bilansky (IBM) – “Combining Linux High Availability Clusters with Data Replication (DRBD)”

- Tirthankar Das (SUN) – “Can you survive a downtime?”

Enquanto o Indiano Tirthankar falava dos Clusters de Alta disponibilidade da SUN, eu estava na fila tentando pegar meu crachá, mas tive o prazer de conhece-lo logo depois da palestra do Mark, naquela tradicional “roda” que é formada em torno do palestrante logo após sua palestra :)

Tive sorte, pois ele foi muito atencioso em repassar sua palestra para mim, e mostrar ao vivo o cluster deles funcionando: http://www.opensolaris.org./os/community/ha-clusters/ohac/

Caixa Econômica Federal

Mozilla/ OLPC

A Mozilla Foundation estava comemorando 10 anos, e estava ministrando várias palestras em um prédio ao lado do que estávamos, distribuindo camisas, adesivos, bottons e etc para quem assistisse. Infelizmente, isso não estava escrito em lugar algum, achei a sala enquanto procurava por um banheiro :-)

O mais legal foi ajudar o pessoal do OLPC a levar umas 40 camisas para as crianças que estavam no evento… foi realmente perigoso andar uns 500 metros, com uma porrada de nerds atrás de você querendo as camisetas!!! Mas foi super legal entrega-la às crianças ;)

Diversos

A viajem valeu a pena por reencontrar velhos conhecidos de fórum anteriores e também por fazer novos amigos, para que possamos nos encontrar em fórums futuros, se Deus assim desejar!

Glommer

Gostei muito de encontrar ex-estudantes da UFSC que em 2007 eram meros estagiários vindo em caravanas, hospedados em hoteis baratos que hoje tornaram-se pessoas importantes e patrocinadas pelas suas empresas, ficando em hotéis de luxo com tudo pago :-)

Também gostei muito de ver as estudantes de nível técnico participando do evento, estas sementes que estamos plantando com certeza renderá bons frutos no futuro!

Fotos

Ah sim, o álbum de fotos está disponível aqui: http://everlinux.com/fotos/fisl9/

Assim que eu reunir mais fotos, eu atualizo o álbum ;)

Em fevereiro eu já havia me conformado em não comparecer ao FISL 9.0, mesmo depois de 05 anos consecutivos batendo cartão na mesma. :-(

Porém, ao ver as passagens da GOL por R$ 46,00, e ver o saldo disponível no meu cartão de créditos de R$ 100,00 não pensei duas vezes, e comprei as passagens para ir para PoA novamente!!! Agora o problema é: “Como vou pagar o hotel”, mas isso eu vejo quando chegar lá :-)

Bom, a grade de palestras já está disponível, embora eu tenha sentido a falta de algumas figuras dos anos anteriores… as palestras que terei a honra de coordenar serão:

- Port do Dicas-l para Drupal, com o Rubens Queiroz e
- ChironFS – Sistema de Arquivos Tolerante a Falhas com Replicação, com o Luis Otávio.

Seja um coordenador você também e assista a palestra em um ângulo único! :-D

Vejo você na PUC-RS!

Atendendo a pedidos, este post visa informar os desavisados que o FISL 9.0 ocorrerá em Porto Alegre nos dias 17, 18 e 19 de Abril de 2008, na PUC-RS — mesmo local onde eu participei em 2004/ 2005 e bem melhor dos lugares que foram em 2006/ 2007.

O site oficial do evento pode ser encontrado aqui: http://fisl.softwarelivre.org/9.0/www/

Só não sei se poderei participar este ano, devido a problemas pessoais… :-(
Mas de qualquer forma, quem for irá aprender e se divertir muito!
Abraços a todos!