23
Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Embed Size (px)

Citation preview

Page 1: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Sistemas de Arquivos Distribuídos

Bruno M. CarvalhoSala: 3F2

Horário: 35M34

Page 2: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Introdução

• Serviço de arquivos – descreve os serviços oferecidos pelo sistema de arquivos aos clientes

• Servidor de arquivos – processo executado em alguma máquina e que implementa o serviço de arquivos

• Mais de um servidor de arquivo pode estar executando simultaneamente, inclusive com serviços diferentes, por exemplo um servidor UNIX e um MS-DOS

Page 3: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Projeto de Sistemas de Arquivos Distribuídos

• Sistema de arquivos pode ser dividido em: – Serviço de arquivos – implementa operações

em arquivos como leitura e escrita– Serviço de diretórios – implementa criação e

manipulação de diretórios e adição e deleção de arquivos de diretórios

Page 4: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Interface do Sistema de Arquivos

• O que é um arquivo? (sequência de bytes)• Um arquivo pode ter atributos, que são pedaços

de informação sobre o arquivo que não são parte dele (tamanho, dono, data)

• Serviço de arquivos descreve primitivas para que se possa alterar algumas das primitivas

• Arquivos podem ou não (imutáveis) ser modificados após criação

• Proteção é implementada usando-se capacidades ou listas de controle de acesso

Page 5: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Interface do Sistema de Arquivos

• Capacidades são tickets que descrevem acesso permitido do usuário para cada objeto

• Listas de controle de acesso são associadas com cada arquivo e descrevem quem pode acessar or arquivos e como (bits de controle do UNIX é uma lista de controle de acesso simplificada)

• Serviços de arquivos podem usar modelos upload/download (arquivos são transferidos por inteiro) ou de acesso remoto (partes dos arquivos são transferidas)

Page 6: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Interface do Servidor de Diretórios

• Serviço de diretórios define um alfabeto e sintaxe para criação de nomes de arquivos e diretórios

• Implementados hierarquicamente, geralmente permitem a criação de links para diretórios ou arquivos arbitrários, que podem gerar grafos de diretórios (isto é, podem conter ciclos)

• O ideal é que todas as máquinas tenham mesma visão do sistema de arquivos. Isso geralmente não é possível quando se usa montagem remota

• Existe ou não um diretório raiz (root) global?

Page 7: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Transparência de Nomes

• A idéia de transparência de localização é que o nome completo do arquivo não tenha nenhuma parte que indique onde o arquivo está fisicamente

• Sistema onde arquivo pode ser relocado sem que mude de nome possui independência de localização

• Abordagens máquina:nome e montagem remota de arquivos são simples mas não implementam espaço único de nomes

Page 8: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Nomes em Dois Níveis

• Arquivos possuem nomes simbólicos e nomes binários, e diretórios são responsáveis por mapear os nomes simbólicos em binários

• Nome binário varia de sistema a sistema, por exemplo, I-nodes em UNIX, ou pode indicar um servidor mais o nome do arquivo (link simbólico)

• Serviço de diretórios pode mapear nome simbólico em uma capacidade, que contém informações de localização

• Mapeamento pode retornar mais de uma localização do arquivo

Page 9: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Semânticas de Compartilhamento de Arquivos

• Necessária sua definição quando mais de um usuário compartilha a mesmo arquivo

• A semântica UNIX diz que leitura de um arquivo deve retornar valor mais recente do arquivo. Pode ser conseguida em um SD se somente um servidor é usado

• Baixa performance. Uso de caches melhora performance mas dificulta a manutenção da semântica UNIX

• Propagar todas as mudanças de volta para o servidor

Page 10: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Semânticas de Compartilhamento de Arquivos

• Pode-se enviar mudanças para o servidor após fechamento do arquivo. Outros processos acessam arquivo antigo enquanto isso não acontece. É a chamada semântica de sessão

• Uso de arquivos imutáveis

• Uso de transações atômicas garante que operações serão efetuadas sem interferências de outras transações

Page 11: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Implementação

• Usos de arquivos em um SD pode dar pistas importantes de como implementar sistema de arquivos

• Experimentos feitos em um sistema acadêmico mostraram que:

1. A maioria dos arquivos são pequenos

2. Leitura é muito mais comum que escrita

3. Acessos randômicos em leituras e escritas são raros

4. A maioria dos arquivos tem uma duração curta

5. Compartilhamento de arquivos não é comum

6. O processo médio usa poucos arquivos

7. Existem classes de arquivos diferentes com propriedades diferentes

Page 12: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Usos de arquivos

• Será que essa observações podem ser extrapoladas para outros tipos de sistemas ou SDs?

• A dominância de pequenos arquivos sugere que podemos transferir arquivos inteiros de uma vez e prover mecanismos para transferência de pedaços de grandes arquivos. (otimize o caso comum!)

• Arquivos criados são mantidos no cliente e caso não sejam deletados, são enviados ao servidor

• Pouco compartilhamento de arquivos sugere uso de caches nos clientes

Page 13: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Estrutura do Sistema

• Como servidores de arquivos e diretórios são organizados internamente

• Pode haver ou não distinção entre servidores e clientes

• Serviços de arquivos e diretórios podem ser combinados em um ou não (menos comunicação x flexibilidade)

• Servidores com ou sem estado (informações dos processos que estão acessando os arquivos)

Page 14: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Estrutura do Sistema

• Servidores sem estado:– Mais tolerantes a falhas– Não precisam de

chamadas OPEN/CLOSE (reduz número de mensagens)

– Não gastam espaço no servidor com tabelas

– Não limitam número de arquivos abertos

– Não tem problema caso cliente falhe

• Servidores com estados armazenados em uma tabela:– Requerem mensagens

menores

– Tem melhor performance

– Podem ler antecipadamente

– São mais fáceis de se implementar idempotência

– Pode-se bloquear arquivos

Page 15: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Caching

• Caching no lado do servidor e do cliente• Qual é a unidade que a cache gerencia?• Qual algoritmo de troca na cache?• Onde colocar a cache ?

– Dentro de cada processo: não permite compartilhamento com outros processos

– No kernel: chamada para o kernel é necessária até em acertos na cache

– Em um processo gerenciador de cache: tem de se evitar que páginas deste processo sejam paged-out

Page 16: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Consistência de Caches

• Métodos para implementar consistência de cache– Caches write-through: funciona mas não afeta tráfego

de escritas

– Escrita retardada: melhor performance mas semântica é ambígua

– Escrita no fechamento: implementa semântica de sessão

– Controle centralizado: implementa semântica UNIX mas não é robusto e não te boa escalabilidade

Page 17: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Replicação

• Arquivos geralmente são mantidos em mais de um servidor, o que exige replicação

• Isso é feito por questões de:– Confiabilidade– Disponibilidade– Eficiência

• Modo de replicação define se sistema é ou não transparente à replicação

• Replicação explícita, prequiçosa ou usando grupos

Page 18: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Replicação

• Na replicação explícita o programador controla o processo de criação de arquivos com o cliente enviando mensagens para os servidores envolvidos

• Na replicação preguiçosa o cliente envia mensagens para um servidor mestre, que quando possível (daí o nome preguiçosa), envia mensagens para os outros servidores

• Na replicação usando grupos, as mensagens para todos os servidores são enviadas simultaneamente

Page 19: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Protocolos de Atualização

• Atualizações dos arquivos criados no processo de replicação podem ser feitas usando-se replicação de cópia primária ou votação

• Todas as atualizações devem ser feitas em um servidor mestre, enquanto que leituras podem ser feitas usando-se qualquer servidor

• No algoritmo de votação cliente tem de adquirir permissões de escrita de vários servidores (mais robusto)

Page 20: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Protocolos de Atualização

• Definição de quóruns de leitura NR e de escrita NW tal que NW + NR > N, onde N é o número total de servidores

• Como leituras são muito mais frequentes que escritas, geralmente NR é um número pequeno e NW é quase N

• Caso alguns servidores não estejam funcionando fica mais difícil de se obter quoruns de escrita, uma variação do algoritmo permite que servidores fantasmas votem em quóruns de escrita, desde que pelo menos um servidor seja real. Ao retornar ao funcionamento, o servidor deve obter um quórum de leitura e se atualizar antes de voltar ao funcionamento normal

Page 21: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Conclusões

• Estações de trabalho tem ciclos disponíveis

• Usar cache quando possível

• Explore as propriedades de uso dos arquivos

• Minimize mudanças que abranjam o sistema todo

• Confie no menor número possível de entidades

• Use batch quando possível

Page 22: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Tendências

• Novo hardware:– Memória mais barata (servidor com armazenamento em

memória? !!!!)

– Backups em meios óticos

– Fibra ótica

• Escalabilidade:– Partição em unidades menores

– Semânticas mais relaxadas, como a semântica de sessão

Page 23: Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Tendências

• Usuários móveis. Como tratar número crescente de usuários com laptops, PDAs interagindo com SD:– Banda estreita ou inexistente

– Caches, como manter consistência

– Ressincronização com sistema

• Tolerância a falhas:– Requerimentos tendem a aumentar com usuários não-

especialistas