A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34."— Transcrição da apresentação:

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

2 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

3 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

4 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

5 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)

6 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?

7 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

8 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

9 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

10 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

11 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

12 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

13 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)

14 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

15 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

16 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

17 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

18 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

19 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)

20 Protocolos de Atualização Definição de quóruns de leitura N R e de escrita N W tal que N W + N R > N, onde N é o número total de servidores Como leituras são muito mais frequentes que escritas, geralmente N R é um número pequeno e N W é 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

21 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

22 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

23 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


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

Apresentações semelhantes


Anúncios Google