Sobre

Este é o Chiron Filesystem. Um sistema de arquivos baeado no framework Fuse. Seu objetivo básico é garantir a disponibilidade de sistemas de arquivos usando replicação. Mas, esta não é uma implementação de RAID. RAID replica DISPOSITIVOS, não SISTEMAS DE ARQUIVOS.

Conforme a figura 1, a maioria das redes atuais segue este modelo simples. Servidores, como Diamond e Sapphire, oferecem seus serviços. Imagine que Diamond é um servidor web e Sapphire é um servidor de arquivos. Dog e Cat são os clientes.

O que acontece se o Diamond ficar indisponível? Significa: sem serviços web. Significa que o telefone logo vai começar a tocar, seus usuários e seu chefe querem sua cabeça, etc, etc ... um daqueles dias!

Claro que você fez seus backups. Bom! Você tem inclusive backup de hardware. Tudo que tem a fazer é restaurar tudo e seu dia vai ficar bom de novo! Mas, quanto tempo você vai levar para restaurar todos os dados?

Você pode fazer a Sapphire ser o backup de hardware do Diamond (sim, o Diamond pode ser backup da Saphire também). E então você pode usar o Heartbeat para fazer cada servidor monitorar o outro e agir como substituto temporário daquele que estiver indisponível.

As coisas estão ficando melhor! Todos os serviços já estão instalados e configurados em todos os servidores: Diamond está preparado para ser servidor de arquivos e Sapphire pode ser o servidor web.

Tudo automatizado! Exceto os dados... Dados escritos em um servidor não estão disponíveis para o outro até que você faça seus backups.


Figure 1: Classical network model.

Figure 2: ChironFS storage network model.

Agora, vamos introduzir mais servidores na rede. Mars, Venus e Mercury serão simples servidores de arquivos. Eu disse SIMPLES! Eles terão apenas uma configuração básica. Eles servirão arquivos apenas para os servidores Diamond e Sapphire. Os clientes Dog e Cat não terão acesso a eles. Eles serão os servidores de servidores. Eles podem servir seus arquivos usando qualquer protocolo que você queira (NFS, SSH, etc), o único requisito é que Diamond e Sapphire montem os sistemas de arquivo servidos por Mars, Venus e Mercury.

E aqui é que o ChironFS inicia seu trabalho. Diamond e Sapphire montam os sistemas de arquivo oferecidos por Mars, Venus e Mercury. Vamos dizer que, por exemplo, eles fiquem em /mars, /venus e /mercury. Assim, você monta o ChironFS como uma combinação de /mars, /venus and /mercury usando o ponto de montagem /chironfs. Daqui em diante, cada escrita na subárvore de /chironfs vai ser replicada para /mars, /venus and /mercury. Qualquer leitura de /chironfs será feita de apenas um dos servidores de servidores (buscando balanceamento de carga).

Neste ponto você percebe que ficou livre de pontos únicos de falha! Se um dos servidores de servidores ficar indisponível, você obtém os dados de outro. ChironFS detecta automaticamente que os dados estão indisponíveis naquele servidor e tenta recuperar de outro. Se Diamond ou Sapphire ficar indisponível, você pode usar o Heartbeat para torná-los o substituto temporário automático. Mas, desta vez você terá acesso a todos os dados escritos pelo servidor que caiu imediatamente antes de cair. Não há necessidade de restaurar nenhum backup!

Mas por quê usar ChironFS? Porque não usar RAID sobre algum dispositivo de bloco em rede? Por que ele é um dispositivo de bloco e se o Diamond montar este dispositivo em modo de leitura e escrita, nenhum outro servidor poderá montá-lo em modo de leitura e escrita também. E este foi somente um exemplo simples, sua rede real pode ter muitos servidores e oferecer uma variedade de serviços. Manter tudo rodando pode se tornar um verdadeiro pesadelo!

Benefícios

Requisitos