Successfully reported this slideshow.

Sd08 (si) sistemas de arquivos distribuídos

861 views

Published on

  • Be the first to comment

  • Be the first to like this

Sd08 (si) sistemas de arquivos distribuídos

  1. 1. SistemasDistribuídosParte 08Sistemas de Arquivos DistribuídosConteúdo adaptado a partir do material dos professores Luís Fernando Friedrich(Universidade Federal de Santa Catarina) e Frederico Madeira (Faculdade Maurício deNassau – PE)
  2. 2. Sistema de Arquivo• Parte importante dos sistemas operacionais, pois elefornece:– Visão abstrata dos dados persistentes– Controle sobre o serviço de nomes– Acesso à arquivos e sua organização geral.– 2 –
  3. 3. Sistema de Arquivo• Conceitos– Arquivo• Uma sequencia de bytes.• Um sistema especifico de uma estrutura interna.• Atributos Tamanho, acesso, datas, dono.– Diretório (arquivo especial)• Mapeia os nomes para os identificadores.• Pode conter subdiretórios (arvore).– 3 –
  4. 4. Sistema de Arquivos Distribuído• “Permite aos programas armazenarem eacessarem arquivos remotos exatamente comose fossem locais, possibilitando que os usuáriosacessem arquivos a partir de qualquercomputador em uma rede. O desempenho e asegurança no acesso aos arquivos armazenadosem um servidor devem ser comparáveis aosarquivos armazenados em discos locais.”– [Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas DistribuídosConceitos e Projeto] – Cap 7.– 4 –
  5. 5. SAD - Sistemas de ArquivosDistribuídos• Oferecem:– Acesso remoto aos arquivos armazenados em um servidor– Acesso aos dispositivos de E/S de outras máquinas– Controle de versão e restauração de cópias de segurança• Os sistemas de arquivos distribuídos devem prover:– Confiabilidade– Redundância– Disponibilidade– Escalabilidade– 5 –
  6. 6. Por que adotar SAD?• Compartilhamento de recursos é sempre um desafio.– Clientes dispersos– Ponto de vista centralizado– Mobilidade e flexibilidade• SAD oferece um esquema de compartilhamento bemestruturado.– Espaço em disco.– Administração compartilhada.– Cada maquina não tem que armazenar arquivos que iráacessar.– 6 –
  7. 7. SAD – O que se busca?• Tolerância a Falhas– Se um servidor cair ou ficar fora do ar ou da rede, o sistema dearquivos não pode perder informações e nem ficar indisponíveltotal ou parcialmente• Acesso Concorrente– Vários usuários podem acessar vários arquivos, ou os mesmosarquivos, sem sofrer danos, perda de performance ou quaisqueroutras restrições• Replicação de Arquivos– Com esta funcionalidade, a confiança e a eficiência do serviçode arquivos é aumentada significativamente– 7 –
  8. 8. SAD - Requisitos• Transparência de...– Acesso: clientes tratam arquivos como locais– Localização: espaço de nomes uniforme e sem mudançaquando arquivos mudarem– Concorrência: operações dos clientes não devem interferirumas com as outras– Falha: servidores devem operar normalmente na falha dosclientes, e vice-versa– Desempenho: não deve variar com a carga– 8 –
  9. 9. SAD - Requisitos• Usabilidade depende de...– Heterogeneidade de HW e SW• Interfaces definidas de forma que possam ser implementadas porvários HW e SW– Escalabilidade• Serviço deve ser extensível para acomodar mudanças de escala do SD• Se escalabilidade envolver muitos hosts...– Transparência de replicação• Arquivos podem estar fisicamente replicados e cliente ignora essefato– Transparência de migração• Arquivos podem mudar de lugar e isso não deve alterar os clientes– 9 –
  10. 10. SAD - Requisitos– E ainda...• Compartilhamento– Toda operação em um arquivo deve ser visível a todos processos– Semântica de sessão: nenhuma modificação é visível aos outrosprocessos até que o arquivo seja fechado.• Arquivos imutáveis:– Modificações não são possíveis;– Simplifica compartilhamento e replicação;– Modificações ocorrem em diretórios apenas• Transações:– Todas as modificações têm a propriedade do tudo-ou-nada(atomicidade);– Serialização– 10 –
  11. 11. SAD – Serviços Básicos• Serviço de Nomes Distribuído– O serviço de nomes cuida de indicar a localização de umdeterminado arquivo dado o seu nome ou caminho.• Serviço de Arquivos Distribuído– Responsável por fornecer operações sobre os arquivos que compõeo sistema.– Os arquivos podem ser armazenados de diferentes formas,dependendo do seu tipo e uso.• Serviço de Diretórios Distribuído– Responsável por manter a organização dos arquivos armazenadosno sistema.– Ele fornece uma interface para que os usuários possam arranjar seusarquivos num formato hierárquico, que é estruturado emdiretórios e subdiretórios. – 11 –
  12. 12. SAD – Aspectos de Implementação• Componentes– Para preencher os requisitos eimplementar serviços, ajudabastante se o SA forimplementado com trêscomponentes:• Serviço de arquivo básico• Serviço de diretório• Módulo de cliente– Quem faz o que?– 12 –
  13. 13. SAD – Aspectos de Implementação• Serviço de arquivos básico– Implementa operações nos arquivos– Arquivos são referenciados por seus FIDs (File Ids)• FIDs devem ser únicos no SD– Criação de um novo arquivo?• Gera um FID e devolve ao requisitante– 13 –
  14. 14. SAD – Aspectos de Implementação• Serviço de Diretorio– Responsável por converter nomes textuais em FIDs– Diretório• Conjunto de FIDs e nomes textuais– Cliente do serviço de arquivo básico• Arquivos de diretório são arquivos, e gerenciados peloSAB• Hierarquia de diretórios– 14 –
  15. 15. SAD – Aspectos de Implementação• Modulo Cliente– Chamadas de sistema para manipulação de arquivos• Criar, ler, escrever...– Armazena localização na redes do serviço de diretório e dearquivo básico– Pode gerenciar cache local– 15 –
  16. 16. SAD – Aspectos de Implementação• Interface do Serviço de Arquivo Basico (SAB)– Aspectos dessa interface• Não tem open/close; manipula usando IA (identificadorde arquivo)• Servidor sem estado (stateless)– Clientes são responsáveis por saber onde estãolendo/escrevendo– No caso de falha, depois do retorno não háprocedimento especial– 16 –
  17. 17. SAD – Aspectos de Implementação• Apenas relembrando...– Stateless• Servidor não guarda informação sobre clientes nemsobre arquivos (IAs)– Responsabilidade do cliente em manter o estado– Stateful• Mantém informação de qual cliente abriu qual arquivo,e em que bloco está• Requisições são atendidas mais rápido, pois não precisalocalizar o IA do arquivo– 17 –
  18. 18. SAD – Aspectos de Implementação• Geraçao de IAs– Devem ser gerados de forma única noespaço/tempo e difícil de forjar• Arquivo removido, IA descartado– IA não é endereço• Não contém informações sobre localização do arquivo– 18 –
  19. 19. SAD – Aspectos de Implementação• Geraçao de IAs– Como garantir unicidade e integridade?• Usar um espaço de números pouco populoso• Unicidade– IA = ID do grupo + inteiro (não reutilizável)• – Integridade– Acrescentar uma parte aleatória ao inteiro– Tornar a distribuição de IAs válidos esparsa– Parte aleatória inacessível aos clientes– 19 –
  20. 20. SAD – Aspectos de Implementação• Modos de Acesso– Controle de acesso tem por base o IA• Uma chave ou “capacidade” (capability)• Só fornecer IA a quem tem direito de acesso– E arquivo compartilhado?• Dono precisa de direitos especiais– Incorporar seletividade na capacidade do IA• Incluir campo de permissão no IA proposto– 20 –
  21. 21. SAD – Aspectos de Implementação• Modos de Acesso– Bits adicionais indicando permissão• Leitura• Escrita/truncamento• Remover• Obter/definir permissões– Na criação, usuário pode tudo– Durante Lookup (busca), IA retorna apenas compermissões concedidas ao usuário– 21 –
  22. 22. SAD – Aspectos de Implementação• Modelos de Arquivos– Arquivos estruturados e não-estruturados• Arquivos estruturados (sequência ordenada deregistros) são raramente utilizados, podendo serindexado ou não-indexado. A maioria dos SO’smodernos utilizam arquivos não-estruturados.– Arquivos modificáveis e não-modificáveis• O modelo mais usado é o modificável. Alguns sistemasatuais utilizam o modelo não-modificável que permiteum compartilhamento consistente e assim facilitacaching e replicas.– 22 –
  23. 23. SAD – Aspectos de Implementação• Semântica de Compartilhamento– Quando há mais de um processo lendo e/ouescrevendo em um arquivo• Controle de concorrência (ok!)• Semântica de compartilhamento– Quatro tipos básicos de semântica• Semântica UNIX• Semântica de sessão• Arquivos imutáveis• Transações– 23 –
  24. 24. SAD – Aspectos de Implementação• Semântica UNIX– Um read que segue um write vê o valor escritopelo write• Obrigatoriedade de ordenação total• Sempre retorna o valor mais atual– Implementação fácil• Servidor central que processa requisições na ordem(lógica)– 24 –
  25. 25. SAD – Aspectos de Implementação• Semântica de sessão• – Relaxamento na semântica UNIX– Mudanças em um arquivo aberto são visíveis apenasao processo que modifica o arquivo– Quando o arquivo é fechado, as mudanças sãovisíveis para outros processos. O arquivo fechado éenviado de volta para o servidor– Está errado?• Não• Amplamente implementado– 25 –
  26. 26. SAD – Aspectos de Implementação• Semântica de sessão (continuação)• Servidor centralizado trás problemas de gargalo e pontocentral de falha• Gargalo pode ser aliviado com uso de caches nos clientes– Cliente-1 lê o arquivo (coloca no cache) e altera– Cliente-2 lê o arquivo  versão antiga do arquivo• O que acontece se dois ou mais clientes estão modificandoum mesmo arquivo em suas caches?– O resultado final depende do último close– Pode-se usar uma regra arbitrária para decidir– 26 –
  27. 27. SAD – Aspectos de Implementação• Semântica de arquivos não modificados• Por que se preocupar?• Arquivos não podem ser alterados– Apenas READ e CREATE• E para alterar um arquivo?– Nenhum arquivo pode, ser alterado, mas pode-se criar um novode forma atômica– Arquivos são imutáveis, mas diretórios não• Problema : se dois clientes desejam trocar um arquivo nomesmo tempo?– Usa-se o último ou adota-se qualquer regra não determinística– 27 –
  28. 28. SAD – Aspectos de Implementação• Semântica de transação• Tratar operações de forma atômica– Uma transação– Todas modificações nos arquivos são delimitados porum Begin e um End transaction• Dois processos ao mesmo tempo?– Transações permitem concorrência– Sistema faz serialização– 28 –
  29. 29. SAD – Aspectos de Implementação– 29 –
  30. 30. SAD – Uso de Memória Cache• Na memória do servidor– Elimina transferência de/para disco em cada acesso– Unidade de cache: arquivos inteiros; blocos– Quando a cache está cheia Descartar informação mais antiga– Transparente para clientes  Sem problemas com consistência antesuas requisições• Na memória do cliente– Reduz volume de acesso via rede– Esquemas:• Cache direto no processo do usuário• Cache no núcleo do S.O.• Cache em um processo separada a nível de usuário– 30 –
  31. 31. SAD – Uso de Memória Cache• Métodos de consistência de cache– Write through• Operação de escrita é propagada instantaneamente– Delayed write• Operações de escrita são propagadas em bloco (após tempo x).• Melhor desempenho, mas risco de ambiguidade na semântica (depende detiming[x])– Write on close:• Semântica de sessão equivalente a sistemas centralizados– Centralized control• Semântica UNIX  Toda operação pode ser vista instantaneamente• Performance e escalabilidade comprometidas;– 31 –
  32. 32. SAD - Replicação• SDs geralmente oferecem alguma forma dereplicação de dados– Múltiplas cópias do mesmo objeto• Por que?– Aumentar confiabilidade - a quebra de um servidor nãoimplica na perda de dados– Permitir acesso mesmo na caso de falha  mesmo queum servidor não esteja disponível o acesso continua– Divisão de carga entre servidores  espalhar a carga detrabalho em vários servidores• Principal problema: transparência– 32 –
  33. 33. SAD - Replicação• Replicação explícita– Programador faz todo o “trabalhosujo”– Serviço de diretório pode permitirmúltiplos IAs por arquivo• Recupera todos no lookup• Quando for manipular, tentasequencialmente um por umdos IAs, até conseguir– Funciona, mas é muito trabalhoso,e nada transparente– 33 –
  34. 34. SAD - Replicação• Replicação atrasada– Apenas uma cópia é feita em umservidor– O servidor é responsável por...• Propagar atualizações• Selecionar outro servidor paraatender, se ele não puder– 34 –
  35. 35. SAD - Replicação• Replicação em grupos– Operação de escrita é feita aomesmo tempo em todos os nós• Multicast atômico (tudo-ou-nada)– Atrasada x grupo• Um servidor x grupo• Segundo plano x atômica– 35 –
  36. 36. SAD – Exemplos• NFS• GFS(Global FileSystem)• PVFS (parallel virutal file system)• AFS (Andrew FileSystem)• GMAILFS• DFS• CODA (Constant Data Availability)– 36 –
  37. 37. SAD – Estudo de Caso: NFS• O sistema NFS (Network File System)– Desenvolvido inicialmente pela Sun Microsystems, (1985)– Objetivo:• Compartilhar arquivos e diretórios entre computadoresconectados em rede, formando assim um diretóriovirtual.• Intuito de permitir a montagem de uma partição quepertence a uma máquina remota, como se fosse umapartição local.– É um método rápido e eficaz de compartilhar arquivos eespaço em disco entre máquinas distintas em uma rede.– 37 –
  38. 38. SAD – Estudo de Caso: NFS• Vantagens do NFS:– Os dados acessados por todos os usuários podem sermantidos numa máquina central, com os clientesmontando seus diretórios no momento da inicialização.• Por exemplo: pode-se manter todas as contas de usuários em umaúnica máquina e ter-se todas as máquinas da rede montando osdiretórios pessoais /home a partir daquela máquina (um típicoservidor de arquivos).• Dados que consomem muito espaço em disco podem sermantidos em uma única máquina.• Dados Administrativos podem ser mantidos em uma únicamáquina, não sendo necessário mais utilizar cópias remotas parainstalar o mesmo arquivo em várias máquinas diferentes.– 38 –
  39. 39. SAD – Estudo de Caso: NFS• A implementação do NFS oferece cinco tipos detransparência:– Tipos de sistemas de arquivos– Localização dos sistemas de arquivos– Tipo de sistema operacional– Tipo de máquina (hardware)– Tipo de rede– 39 –
  40. 40. SAD – Estudo de Caso: NFS• Montagem de diretórios– Montagem estática ou dinâmica• A opção dinâmica introduz alguma tolerância a falha• Permite várias entradas para mesmo ponto de montagem– Dois clientes podem montar o mesmo diretório• Eles podem se comunicar através de arquivos desse diretório– Simplicidade é o principal atrativo– 40 –
  41. 41. SAD – Estudo de Caso: NFS• Arquitetura NFS:– 41 –

×