A busca do Santo Graal: Google File System open-source


Talvez você já ouviu falar do file system que o google desenvolveu. Se ainda não, você pode ver o paper que eles publicaram em http://labs.google.com/papers/gfs.html. O GoogleFS(não vou escrever GFS pois é outro file system) foi aprimorado do BigFile criado por Larry Page e Sergey Brin(co-fundadores do google) no início do google. O mais lindo de tudo o que ele pode fazer é: simplesmente ir acrescentando servidores(na realidade computadores xing-ling mesmo até) na sua rede e eles irem adicionando espaço a um file system “virtual”, sempre tendo redundância em caso de falhas e podendo lidar com work-loads altíssimos. Ele é utilizado como backend por exemplo no GMail, no serviço de buscas do google, entre muitos outros produtos do google. Vou mostrar neste artigo o que da para fazer com ferramentas open-source.

Pesquisando os file systems distribuídos e file systems clusterizados, cheguei em alguns projetos(wikipedia): Ceph, PVFS e o GlusterFS. Não tive muito tempo ainda para pesquisar o Ceph e o PVFS, mas o Ceph está em alpha stages, o PVFS é maduro o suficiente para merecer um teste e está na lista.

Instalei o GlusterFS(http://www.gluster.org) em alguns servidores de teste que tenho na Predicta. Você consegue interligar os nodes(ele chama de Brick) com Infiniband ou TCP/IP, mas fui testar em cima de TCP/IP mesmo por ser mais simples e eu não ter nenhum servidor disponível para testes com Infiniband. O GlusterFS possui uma camada cliente/servidor. Nos servidores você roda o glusterfsd e nos clientes você roda o glusterfs e monta utilizando FUSE. Você pode crescer os nodes apenas reconfigurando e remontando os clientes(por enquanto. está no roadmap isto ser on-the-fly). Ele possui vários do que ele chama translators que fazem o gerenciamento de stripping, replicação, unificação, etc… e tudo isto é configurado no cliente. No servidor, você apenas exporta os volumes para a rede e tudo é configurado nos clientes.

Nos meus testes eu instalei 4 servidores e utilizei 2 máquinas como cliente. Eu até poderia utilizar os 4 servidores como cliente também. Os 4 servidores tem 2 volumes exportados cada. Nos clientes eu configurei para replicar e unificar: configurei 2 AFRs(Automatic File Replication translator) e 1 Unify nos 2 AFRs, assim eu tenho um volume apenas montado nos clientes com tudo replicado.

É impressionante. Você copia arquivos para o /mnt/glusterfs, qdo vai nos servidores, da um ls e vê os arquivos lá. É tudo muito bom e muito transparente. Eu ainda não testei performance, não fiz benchmarks, mas vou fazer e nos próximos posts prometo trazer mais informações.

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

Muito Boa a sua materia achei pesquisando no google estava procurando um manual de como instalar no fedora vc poderia me dar umas dicas não achei nada na net

Deixe um comentário

(obrigatório)

(obrigatório)