REPLICAÇÃO DE ARQUIVOS
Andre Luiz Verucci da Cunha
André Márcio de Lima Curvello
Fernando Pasquini Santos
Isabela Rodrigues do Prado Rossales
Luciene Aparecida Goulart
Sumário
Por que Replicar? Exigências e Dificuldades da Replicação Replicação de Arquivos
Estática X DinâmicaMétodos de Replicação
Estudo de Caso: CODA
Por que Replicar?
Por que Replicar? Desempenho: A replicação permite elevar
o paralelismo no acesso a determinados recursos. (ex.: servidores proxy)Mas quando há pouca latência no acesso aos
arquivos e/ou pouco paralelismo, não há melhoria.
Balanceamento de Carga: Menores chances de se ter um servidor de arquivos sobrecarregado com requisições.
Por que Replicar?
Maior Disponibilidade: Permite o acesso aos arquivos mesmo quando um servidor falhe ou haja particionamento na rede. Fator indispensável em redes móveis.
Tolerância a falhas: Impede que dados sejam desatualizados, adulterados e/ou danificados.
Exigências e Dificuldades da Replicação
Transparência de Replicação: cada cliente não precisa saber com qual réplica ele está lidando, e acessa os servidores de arquivos replicados como se fossem únicos (arquivos lógicos).
Exigências e Dificuldades da Replicação
Transparência de ReplicaçãoPara isto, geralmente usa-se o conceito de
front-end:
C
C
FE
FE
GR GR
GR
Gerenciadores deRéplica
Clientes Front ends
Serviço
Exigências e Dificuldades da Replicação
Consistência de Dados: As operações realizadas sobre os dados (leitura ou escrita) devem produzir resultados que mantenham a corretude dos mesmos.Exige sincronismo e acordo entre os
servidores replicados
Exigências e Dificuldades da Replicação
Sistema de arquivos onde o acesso a alguns dados é maior do que acesso a outro: ao se replicar todos os arquivos, perde-se desempenho.Precisa-se saber quais arquivos podem ser
replicados e quais não precisam.
Replicação de Arquivos
Replicação EstáticaArquivos nos servidores são fixos; ou seja,
não sofrem modificações/atualizações.Implementação fácil.
Replicação DinâmicaArquivos sofrem modificações dos usuários.São o maior problema!
Mecanismos Básicos de Replicação
Replicação Passiva
C
C
FE
FE
GR GR
GR
Primário Backup
Backup
Mecanismos Básicos de Replicação
Replicação Ativa
C FE
GR
GR
GR
FE C
Mecanismos Básicos de Replicação
Algoritmo de Votação
• Quorum de leitura - Nr;
• Quorum de escrita - Nw.
Nr + Nw > N
Mecanismos Básicos de Replicação
Algoritmo de Votação
Mecanismos Básicos de Replicação
Algoritmo de Votação com Fantasmas
Servidores caídos são tratados como fantasmas;
Gerenciadores fantasmas podem participar de quorums de escrita, mas não de leitura;
Quando o servidor voltar, ele deve montar um quorum de leitura e se atualizar.
Estudo de Caso: CODA
Sistema de Arquivos CodaOrigem: Carnegie-Mellon University, 1987Modificações em relação ao Andrew File
System:○ operação desconectada (computação móvel)○ replicação (otimista)
Estudo de Caso: CODA Arquitetura Coda
Processo Vice: servidoresProcesso Venus: clientes
Estudo de Caso: CODA Arquitetura
CodaVSG: volume
storage groupAVSG: available
volume storage group
Estudo de Caso: CODA
Estratégia de ReplicaçãoCVV: Coda version vectorCada arquivo possui um CVV
representando o número de modificações feitas a um arquivo em cada servidor do VSG○ CVV (F1,S1) = {NS1, ... , NSn}
Identifica Conflitos
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 1)
C1
S1
[1,1,1]
S2
[1,1,1]
VSG
S3
[1,1,1]
C2
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 1)
C1
S1
[2,2,1]
S2
[2,2,1]
VSG
S3
[1,1,3]
C2opencloseopen
close openclose
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 1)
C1
S1
[2,2,1]
S2
[2,2,1]
VSG
S3
[1,1,3]
C2
conflito
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 2)
C1
S1
[1,1,1]
S2
[1,1,1]
VSG
S3
[1,1,1]
C2
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 2)
C1
S1
[2,2,1]
S2
[2,2,1]
VSG
S3
[1,1,1]
C2
openclose
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 2)
C1
S1
[2,2,1]
S2
[2,2,1]
VSG
S3
[1,1,1]
C2
openclose
atualização
Estudo de Caso: CODA Estratégia de Replicação (Exemplo 2)
C1
S1
[2,2,2]
S2
[2,2,2]
VSG
S3
[2,2,2]
C2
Estudo de Caso: CODA Coerência de cache
Callback promise: o servidor garante que notificará ao cliente a ocorrência uma modificação no arquivo
Callback break: mensagem de invalidação do callback
Estudo de Caso: CODA
Coerência de cacheDetecção de alteração do AVSG
○ Aumento: anula todos os callback promises referentes aos arquivos desse servidor
○ Diminuição: caso o servidor preferido esteja indisponível, anula os callback promises dos arquivos desse servidor
Detecção de atualizações perdidas○ Envio de uma mensagem de probe○ Recebe os CVVs dos arquivos
Estudo de Caso: CODA
Desconexão
Dúvidas?
Bibliografia CODA File System, Carnegie Mellon
University. Disponível em <http://www.coda.cs.cmu.edu/> Acesso em: 22 Nov 2010.
TANENBAUM, Andrew S.; STEEN, Maarten van. Distributed Systems: Principles and Paradigms. 2002
COULOURIS, DOLLIMORE E KINDBERG, Sistemas Distribuídos - Conceitos e Projeto, Bookman Editora.,4a. Ed., 2007.