Notas de Aula - MAC 5755 - Sistemas Operacionais Distribuídos
Aula 16 - 5/10/2001
Andrew File System (AFS)
- SAD voltado para redes de grande área
- Satyanarayanan (1983 a 1990, CMU)
- Objetivo:
- oferecer um sistema distribuído integrado a todos alunos e
professores da CMU
- escalabilidade de 5 mil a 10 mil estações de trabalho
- Modelo de sistema:
- várias redes locais interligadas por ligações
de longa distância
- na rede local: alta largura de banda e pequena latência
- na rede de longa distância: pequena largura de banda e grande
latência
- Princípios básicos:
- Estações tem ciclos prá queimar; servidores
e rede são preciosos
- Cachear sempre que possível
- Explorar os diferentes tipo de acesso a arquivos (1/3 dos arquivos
são temporários, arquivos do sistema são só para
leitura)
- Minimizar conhecimento global em um único ponto e mudanças
globais síncronas
- Confiar no menor número possível de entidades
- Agrupar o trabalho sempre que possível
- Abordagem:
- Implementação inicial em cima do UNIX 4.3 BSD
- Cache de arquivos inteiros nos discos locais dos clientes no diretório
/cache
- Arquivos temporários armazenados no disco local em /tmp
- Arquivos remotos no diretório /afs
- Espaço de nomes global
- Banco de dados de localização
- mapeia volumes em servidores
- cada arquivo possui um identificador fid: 32 bits p/ número
do volume, 32 bits p/ vnode, 32 bits p/ número único
- cada servidores da rede local mantém uma cópia completa
- ao contrário do NFS, toda a informação sobre
a localização dos arquivos é armazenada no servidor
local (e não nos clientes)
- Escalabilidade
- uma rede local é considerada um cluster e tem algumas
dezenas de clientes e um servidor local
- um conjunto de clusters é uma célula e pode
conter várias centenas de máquinas
- células são agrupadas mas sem transparência de
localização:
- caminho válido em qualquer lugar do mundo: /afs/cs.cmu.edu/users/<nome_do_usuario>
- Segurança
- sistema não confia nos clientes
- confia totalmente nos servidores que são configurados pelos
admins; usuários comuns não podem logar neles
- usa o protocolo kerberos para autenticação mútua
entre clientes e servidores
- Cache
- armazenado nos discos dos clientes
- nas primeiras versões o arquivo inteiro era trazido para o
cliente
- posteriormente, no AFS-3, passaram a ser cacheados em blocos de 64KB
- semântica de sessão: arquivo inteiro é devolvido
ao servidor depois do close se foi alterado
- servidor mantém lista de todos os clientes que possuem cópias
locais de arquivos
- se o servidor recebe uma versão nova de um arquivo, manda
um "callback" para os clientes avisando que a versão deles não
é mais válida.
- assim, a cópia local de um arquivo pode ser usada várias
vezes sem a necessidade de contactar o servidor
- Em 1988, foi lançado como produto comercial, compatível
com o VFS
- Hoje em dia existem versões abertas, e.g. para Linux
Coda File System
- Extensão do AFS para dar suporte a computadores portáteis
e operações desconectadas
- Existe versão para Linux (parece que não é estável)
- Abordagem:
- quando laptops estão conectados à rede funcionam de
forma similar ao AFS
- antes de se desconectar, usuário dá um comando avisando
que vai desconectar
- algoritmo misto para decidir quais arquivos são armazenados
no disco do laptop:
- arquivo de configuração perfil de salvaguarda
indica quais arquivos o usuário normalmente usa
- um algoritmo adaptativo monitora quais arquivos têm sido
mais usados recentemente
- quando o espaço no disco local, o arquivo com menor prioridade
(levando em conta os dois critérios) é descartado
- Operações desconectadas
- desconexão pode ser avisada pelo usuário ou pode surgir
repentinamente
- em ambos os casos, o sistema continua funcionando normalmente usando
os arquivos no cache para emular arquivos remotos
- alterações nos arquivos cacheados são armazenadas
em um replay-log
- Reintegração
- as operações no replay-log são enviadas
para os respectivos servidores
- conflitos são apontados e resolvidos manualmente pelos usuários
Comparação de desempenho entre NFS, Sprite e AFS
- Feita por Ousterhout (Sprite) 1988 usando o Andrew Benchmark
- Fig. 2.12 na tese Kon94
Zebra
- Aplicação da idéia de RAIDs em um SAD
- Extensão do Sprite com listras para aumentar desempenho e tolerância
a falhas
Outros Sistemas de Arquivos Distribuídos
- HARP do MIT: replicação automática; alta confiabilidade
e disponibilidade
- Frolic: mecanismo de replicação dinâmica: alta escalabilidade
para redes de grande área
- Locus: transações atômicas
- Soda (Kon94): usa leases para obter um desempenho ainda maior que o
Sprite mas mantendo a semântica UNIX
Referências
Próxima Aula
Aula Anterior
Página de MAC 5755
Página do Fabio
Página do DCC