Notas de Aula - MAC 5755 - Sistemas Operacionais Distribuídos
Aula 14 - 28/9/2001
Sistemas de Arquivos Distribuídos (continuação)
Servidores com estado vs. servidores sem estado
-
servidores com estado funcionam como um servidor de arquivos centralizado
mantendo tabelas de quais arquivos estão abertos e quais processos
(clientes) estão usando cada arquivo e em qual ponto do arquivo
estão mexendo.
-
Vantagens de servidores sem estado
-
tolerância a falhas
-
não exige chamadas open/close
-
não desperdiça espaço e processador no servidor para
manter tabelas dos clientes
-
não há limite no número de arquivos abertos e no número
de clientes simultâneos
-
não há problema se um cliente cai ou se desconecta repentinamente
-
Vantagens de servidores com estado
-
mensagens mais curtas
-
maior velocidade no tratamento das requisições
-
mais fácil de obter idempotência (tratar bem o caso no qual
o cliente manda duas mensagens de APPEND porque a primeira deu timeout)
-
torna possível garantir acesso restrito a arquivos (file locking
é impossível em servidores sem estado).
Caching
-
do lado do servidor
-
do lado do cliente
-
sem cache
-
com cache dentro do processo do cliente (biblioteca)
-
com cache dentro do kernel da máquina cliente
-
com cache em um processo separado (broker, espécie de agente
negociador)
-
políticas de consistência do cache do cliente
-
controle centralizado
-
semântica UNIX perfeita
-
pode ser muito ineficiente dependendo do jeito que é implementado
-
write on close
-
semântica de sessão
-
mais eficiente, funciona bem em sistemas de grande área quando comunicação
com servidor é muito cara
-
write through
-
bom desempenho em redes locais
-
diminui (mas não elimina) inconsistências
-
para diminuir inconsistências pode-se determinar que o cliente verifica
com o servidor se o arquivo mudou toda vez que um processo do cliente faz
um open neste arquivo
-
delayed write
-
equivalente a cache tanto para leitura como para escrita
-
melhor desempenho possível
-
pior consistência possível
Replicação
-
Vantagens de replicação:
-
aumento da confiabilidade, se um servidor quebra, existem cópias
dos arquivos
-
aumento da disponibilidade, se um servidor sai fora do ar, existem outros
servidores
-
distribuição de carga entre os vários servidores
-
evitar congestionamento de redes locais ou linhas de transmissão
-
replicação transparente vs. replicação não
transparente
-
exemplo: backup na rede IME:
-
cópia é transparente (para usuário, não para
admin)
-
recuperação não é transparente
-
3 modelos de replicação (Tanenbaum, Fig 5.12, pag. 269)
-
replicação explícita (a cargo do processo (biblioteca)
cliente)
-
replicação preguiçosa (lazy)
-
replicação usando comunicação de grupo
-
modelo de cópia primária
-
diferentes parte do SA podem adotar nós diferentes para ser a cópia
primária
-
se o servidor primário sai do ar, pode-se fazer uma eleição;
mas isso pode levar a inconsistências se a rede se particiona
-
modelo de votos
-
assumindo N cópias em máquinas
-
para ler, é necessário obter o voto de Nr nós
-
para escrever, é necessário obter o voto de Nw nós
-
restrição: Nr + Nw > N
-
o voto pode ser simplesmente uma indicação do número
da versão mais recente do arquivo
-
exemplos com N = 12:
-
Nr = 3, Nw = 10
-
Nr = 7, Nw = 6
-
Nr = 1, Nw = 12
-
outra abordagem comum: replicar arquivos só para leitura (read-only
files)
Padrões de utilização de sistemas de arquivos
-
a grande maioria dos arquivos é pequena ( < 10K)
-
leitura é muito mais freqüênte que escrita
-
leituras e escritas são seqüências; acesso aleatório
é raro
-
a maioria dos arquivos tem uma vida muito pequena (poucos segundos)
-
compartilhamento de arquivos simultâneo é raro
-
o processo médio usa só alguns arquivos
-
existem diferentes classes de arquivos com propriedades diferentes
Referências
Tanenbaum, seção 5.2; Galli, seção 8.2 (incompleto);
Silberschatz 5a ed. cap 17; monografia sobre SAD na página
de leituras recomendadas.
Próxima Aula
Aula Anterior
Página de MAC 5755
Página do Fabio
Página do DCC