Notas de Aula - MAC 5755 - Sistemas Operacionais
Distribuídos
Aula 15 - 15/10/2003
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 (identifica o arquivo dentro
do
volume), 32 bits p/ número único (possibilita
reutilização do vnode)
- cada servidor 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
(OpenAFS)
Coda File System
- Extensão do AFS para dar suporte a computadores
portáteis e operações desconectadas
- Existe versão para Linux
- Abordagem:
- quando computadores portáteis (e.g., 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 acaba, 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
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