O documento apresenta o ChironFS, um sistema de arquivos tolerante a falhas com replicação de dados que permite armazenar cópias redundantes de dados em diferentes servidores para garantir a disponibilidade dos dados mesmo em caso de falha de hardware. O ChironFS balanceia as leituras entre as réplicas e permite a reintegração de réplicas sem necessidade de remontagem do sistema de arquivos. Futuras versões trarão melhorias como gravação assíncrona, suporte a atributos estendidos e estatísticas para balanceamento de le
2. ChironFS
Sistema de Arquivos Tolerante a Falhas
com Replicação de Dados
http://www.furquim.org/chironfs/
Luis Otávio de Colla Furquim
3. Exemplo de Rede Típica
Serviços:
safira.dummy.net
diamante.dummy.net Arquivos
WWW
Web
Arquivos
Backups:
todas as noites
em fita
4. Falha em uma Rede Típica
Serviço inoperante:
safira.dummy.net
diamante.dummy.net
WWW
Arquivos Compartilhamento
de arquivos
Contingência:
Servidor web
acumulará os
serviços
Será restaurado o
último backup
5. Previsão de Reoperacionalização
backup:
safira.dummy.net
diamante.dummy.net Arquivos
?
WWW
tempo do restore
Disco rígido:
tempo de
manutenção do
servidor
OU
nunca (perda dos
dados)
6. Rede com Redundância de Dados
urano.dummy.net netuno.dummy.net
Serviços:
Web
Arquivos
diamante.dummy.net
WWW safira.dummy.net
Arquivos
Storage:
redundante
fisicamente
separada dos
serviços
7. Falha de um Serviço
urano.dummy.net netuno.dummy.net
Serviço inoperante:
Compartilhamento
de arquivos
diamante.dummy.net
Contingência:
WWW safira.dummy.net
Arquivos
Servidor web
acumulará os
serviços
Dados estão
imediatamente
disponíveis em
qualquer dos nodos
do storage
8. Falha de um Nodo do Storage
urano.dummy.net netuno.dummy.net
Serviços operantes
Contingência:
Dados disponíveis
no nodo operante
diamante.dummy.net safira.dummy.net
WWW Arquivos
9. Previsão de Reoperacionalização
☺
urano.dummy.net netuno.dummy.net
Usuários:
não percebem a falha
diamante.dummy.net safira.dummy.net
Arquivos Gerentes de rede:
WWW
reoperacionalização do
hardware
sincronia dos dados
10. Arquitetura
Filesystem virtual:
replica filesystems
Aplicação ADM sem limite de réplicas
réplicas em filesystems diferentes
leitura balanceada
tolerante a falhas
ChironFS Chirctl
protocolo: qualquer um
autenticação: qualquer uma
simplicidade de uso
NFS SSHFS EXT3
simplicidade de código
Filesystem auxiliar para tarefas
administrativas
11. Rede com Redundância de Dados
urano.dummy.net netuno.dummy.net
mkdir /real1 /real2 /virtual /ctl
/etc/fstab:
urano:/data /real1 nfs auto 0 0
netuno:/data /real2 nfs auto 0 0
diamante.dummy.net chironfs#/real1=/real2 /virtual fuse
WWW safira.dummy.net allow_other,log=/var/log/chironfs.log,ctl=/ctl 0 0
Arquivos
12. Redundância sem Storage
safira.dummy.net
diamante.dummy.net Arquivos cópia local
WWW
cópia remota em outro servidor
de aplicação
mkdir /real1 /real2 /virtual /ctl
Safira:/etc/fstab
diamante:/real1 /real1 nfs auto 0 0
chironfs#/real2=:/real1 /virtual fuse
allow_other,log=/var/log/chironfs.log,ctl=
/ctl 0 0
Diamante:/etc/fstab
safira:/real2 /real2 nfs auto 0 0
chironfs#/real1=:/real2 /virtual fuse
allow_other,log=/var/log/chironfs.log,ctl=
/ctl 0 0
13. Redundância Mista: Storage e Local
urano.dummy.net netuno.dummy.net
cópia local
cópias nos nodos do
storage
diamante.dummy.net
WWW safira.dummy.net mkdir /real1 /real2 /real3 /virtual /ctl
Arquivos
/etc/fstab:
urano:/data /real1 nfs auto 0 0
netuno:/data /real2 nfs auto 0 0
chironfs#/real3=:/real2=:/real1 /virtual fuse
allow_other,log=/var/log/chironfs.log,ctl=/c
tl 0 0
14. Download Balanceado
Estação distribui a
diamante.dummy.net
WWW
safira.dummy.net
WWW mirror carga entre os mirrors
Combinação com
sistemas de arquivos
de FTP e HTTP
mkdir /real1 /real2 /virtual /ctl
/etc/fstab:
curlftpfs#ftp://ftp1.dummy.net/ /real1 fuse auto 0 0
curlftpfs#ftp://ftp2.dummy.net/ /real2 fuse auto 0 0
chironfs#/real1=/real2 /virtual fuse log=/var/log/chironfs.log,ctl=/
ctl 0 0
15. Backup de Desktop em Rede
cópia local
diamante.dummy.net safira.dummy.net
WWW Arquivos
cópia em
servidores de
arquivo (LAN/WAN)
cache local (v1.2)
mkdir /real1 /real2 /real3 /virtual /ctl
/etc/fstab:
nfs1:/data /real1 nfs auto 0 0
curlftpfs#ftp://ftp2.dummy.net/ /real2 fuse auto 0 0
/dev/sdc1 /real3 ext3 defaults 0 1
chironfs#:/real1=:/real2=/real3 /virtual fuse log=/var/log/
chironfs.log,ctl=/ctl 0 0
16. Deficiências
Ressincronia das réplicas falhas a cargo do administrador
Reintegração da réplica falha via remontagem do filesystem
Gravação síncrona das réplicas:
Tempo 1 2 3 4 5 6 7 8 9 10 11
/real1
/real2
/real3
/real1
/real2
/real3
17. Solução: versão 1.2
Interface de controle semelhante a /proc:
Maior flexibilidade na ressincronia de réplicas falhas
Acesso concorrente
Reintegração de réplicas sem remontagem do filesystem
Realização de consultas
Gravação assíncrona das réplicas:
Tempo 1 2 3 4 5 6 7 8 9 10 11
/real1
/real2
/real3
/real1
/real2
/real3
18. Outras versões
Suporte a atributos extendidos
Sistema de plugins para algoritmo de baleceamento de leitura
Estatísticas de acesso disponíveis ao plugin de balanceamento
Tamanho/espaço livre com réplicas de diferentes tamanhos
Reportar o menor tamanho: evita desabilitar réplica menor
Reportar o maior tamanho: réplica menor = canário