Sd08 (si) sistemas de arquivos distribuídos
-
Upload
computacao-depressao -
Category
Documents
-
view
237 -
download
3
description
Transcript of Sd08 (si) sistemas de arquivos distribuídos
Sistemas Distribuídos
Sistemas Distribuídos
Parte 08
Sistemas de Arquivos Distribuídos
Conteúdo adaptado a partir do material dos professores Luís Fernando Friedrich (Universidade Federal de Santa Catarina) e Frederico Madeira (Faculdade Maurício de
Nassau – PE)
Sistema de ArquivoSistema de Arquivo
• Parte importante dos sistemas operacionais, pois ele fornece:– Visão abstrata dos dados persistentes– Controle sobre o serviço de nomes– Acesso à arquivos e sua organização geral.
– 2 –
Sistema de ArquivoSistema 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 –
Sistema de Arquivos DistribuídoSistema de Arquivos Distribuído
• “Permite aos programas armazenarem e acessarem arquivos remotos exatamente como se fossem locais, possibilitando que os usuários acessem arquivos a partir de qualquer computador em uma rede. O desempenho e a segurança no acesso aos arquivos armazenados em um servidor devem ser comparáveis aos arquivos armazenados em discos locais.”– [Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas Distribuídos
Conceitos e Projeto] – Cap 7.
– 4 –
SAD - Sistemas de Arquivos DistribuídosSAD - Sistemas de Arquivos Distribuí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 –
Por que adotar SAD?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 bem estruturado.
– Espaço em disco.– Administração compartilhada.– Cada maquina não tem que armazenar arquivos que irá
acessar.
– 6 –
SAD – O que se busca?SAD – O que se busca?
• Tolerância a Falhas– Se um servidor cair ou ficar fora do ar ou da rede, o sistema de
arquivos não pode perder informações e nem ficar indisponível total ou parcialmente
• Acesso Concorrente– Vários usuários podem acessar vários arquivos, ou os mesmos
arquivos, sem sofrer danos, perda de performance ou quaisquer outras restrições
• Replicação de Arquivos– Com esta funcionalidade, a confiança e a eficiência do serviço
de arquivos é aumentada significativamente
– 7 –
SAD - RequisitosSAD - Requisitos
• Transparência de...– Acesso: clientes tratam arquivos como locais– Localização: espaço de nomes uniforme e sem mudança
quando arquivos mudarem– Concorrência: operações dos clientes não devem interferir
umas com as outras– Falha: servidores devem operar normalmente na falha dos
clientes, e vice-versa– Desempenho: não deve variar com a carga
– 8 –
SAD - RequisitosSAD - Requisitos
• Usabilidade depende de...– Heterogeneidade de HW e SW
• Interfaces definidas de forma que possam ser implementadas por vá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 esse fato
– Transparência de migração• Arquivos podem mudar de lugar e isso não deve alterar os clientes
– 9 –
SAD - RequisitosSAD - 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 outros
processos 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 –
SAD – Serviços BásicosSAD – Serviços Básicos• Serviço de Nomes Distribuído
– O serviço de nomes cuida de indicar a localização de um determinado arquivo dado o seu nome ou caminho.
• Serviço de Arquivos Distribuído– Responsável por fornecer operações sobre os arquivos que compõe o
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 armazenados no
sistema. – Ele fornece uma interface para que os usuários possam arranjar seus
arquivos num formato hierárquico, que é estruturado em diretórios e subdiretórios.
– 11 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Componentes– Para preencher os requisitos e
implementar serviços, ajuda bastante se o SA for implementado com três componentes:• Serviço de arquivo básico• Serviço de diretório• Módulo de cliente
– Quem faz o que?
– 12 –
SAD – Aspectos de ImplementaçãoSAD – 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 –
SAD – Aspectos de ImplementaçãoSAD – 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 pelo
SAB• Hierarquia de diretórios
– 14 –
SAD – Aspectos de ImplementaçãoSAD – 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 de arquivo básico
– Pode gerenciar cache local
– 15 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Interface do Serviço de Arquivo Basico (SAB) – Aspectos dessa interface• Não tem open/close; manipula usando IA (identificador
de arquivo)• Servidor sem estado (stateless)– Clientes são responsáveis por saber onde estão
lendo/escrevendo– No caso de falha, depois do retorno não há
procedimento especial
– 16 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Apenas relembrando...– Stateless• Servidor não guarda informação sobre clientes nem
sobre 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 precisa
localizar o IA do arquivo
– 17 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Geraçao de IAs– Devem ser gerados de forma única no
espaç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 –
SAD – Aspectos de ImplementaçãoSAD – 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 –
SAD – Aspectos de ImplementaçãoSAD – 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 –
SAD – Aspectos de ImplementaçãoSAD – 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 com
permissões concedidas ao usuário– 21 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Modelos de Arquivos– Arquivos estruturados e não-estruturados • Arquivos estruturados (sequência ordenada de
registros) são raramente utilizados, podendo ser indexado ou não-indexado. A maioria dos SO’s modernos utilizam arquivos não-estruturados.
– Arquivos modificáveis e não-modificáveis• O modelo mais usado é o modificável. Alguns sistemas
atuais utilizam o modelo não-modificável que permite um compartilhamento consistente e assim facilita caching e replicas.
– 22 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Semântica de Compartilhamento– Quando há mais de um processo lendo e/ou
escrevendo 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 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Semântica UNIX– Um read que segue um write vê o valor escrito
pelo 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 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Semântica de sessão• – Relaxamento na semântica UNIX– Mudanças em um arquivo aberto são visíveis apenas
ao processo que modifica o arquivo– Quando o arquivo é fechado, as mudanças são visíveis
para outros processos. O arquivo fechado é enviado de volta para o servidor
– Está errado?• Não• Amplamente implementado
– 25 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
• Semântica de sessão (continuação)• Servidor centralizado trás problemas de gargalo e ponto
central 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 modificando um mesmo arquivo em suas caches?– O resultado final depende do último close– Pode-se usar uma regra arbitrária para decidir
– 26 –
SAD – Aspectos de ImplementaçãoSAD – 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 novo
de forma atômica– Arquivos são imutáveis, mas diretórios não
• Problema : se dois clientes desejam trocar um arquivo no mesmo tempo?– Usa-se o último ou adota-se qualquer regra não determinística
– 27 –
SAD – Aspectos de ImplementaçãoSAD – 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 por
um Begin e um End transaction• Dois processos ao mesmo tempo?– Transações permitem concorrência– Sistema faz serialização
– 28 –
SAD – Aspectos de ImplementaçãoSAD – Aspectos de Implementação
– 29 –
SAD – Uso de Memória CacheSAD – 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 ante
suas 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 –
SAD – Uso de Memória CacheSAD – 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 de
timing[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 –
SAD - ReplicaçãoSAD - Replicação
• SDs geralmente oferecem alguma forma de replicação de dados– Múltiplas cópias do mesmo objeto
• Por que?– Aumentar confiabilidade - a quebra de um servidor não
implica na perda de dados– Permitir acesso mesmo na caso de falha mesmo que um
servidor não esteja disponível o acesso continua– Divisão de carga entre servidores espalhar a carga de
trabalho em vários servidores
• Principal problema: transparência – 32 –
SAD - ReplicaçãoSAD - Replicação
• Replicação explícita– Programador faz todo o “trabalho
sujo”– Serviço de diretório pode permitir
múltiplos IAs por arquivo• Recupera todos no lookup• Quando for manipular, tenta
sequencialmente um por um dos IAs, até conseguir
– Funciona, mas é muito trabalhoso, e nada transparente
– 33 –
SAD - ReplicaçãoSAD - Replicação
• Replicação atrasada– Apenas uma cópia é feita em um
servidor– O servidor é responsável por...• Propagar atualizações• Selecionar outro servidor para
atender, se ele não puder
– 34 –
SAD - ReplicaçãoSAD - Replicação
• Replicação em grupos– Operação de escrita é feita ao
mesmo 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 –
SAD – ExemplosSAD – Exemplos
• NFS• GFS(Global FileSystem)• PVFS (parallel virutal file system)• AFS (Andrew FileSystem)• GMAILFS• DFS• CODA (Constant Data Availability)
– 36 –
SAD – Estudo de Caso: NFSSAD – Estudo de Caso: NFS
• O sistema NFS (Network File System)– Desenvolvido inicialmente pela Sun Microsystems, (1985)– Objetivo:• Compartilhar arquivos e diretórios entre computadores
conectados em rede, formando assim um diretório virtual.• Intuito de permitir a montagem de uma partição que
pertence a uma máquina remota, como se fosse uma partição local.
– É um método rápido e eficaz de compartilhar arquivos e espaço em disco entre máquinas distintas em uma rede.
– 37 –
SAD – Estudo de Caso: NFSSAD – Estudo de Caso: NFS
• Vantagens do NFS:– Os dados acessados por todos os usuários podem ser
mantidos numa máquina central, com os clientes montando 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 os diretórios pessoais /home a partir daquela máquina (um típico servidor de arquivos).
• Dados que consomem muito espaço em disco podem ser mantidos em uma única máquina.
• Dados Administrativos podem ser mantidos em uma única máquina, não sendo necessário mais utilizar cópias remotas para instalar o mesmo arquivo em várias máquinas diferentes.
– 38 –
SAD – Estudo de Caso: NFSSAD – Estudo de Caso: NFS
• A implementação do NFS oferece cinco tipos de transparê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 –
SAD – Estudo de Caso: NFSSAD – 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 –
SAD – Estudo de Caso: NFSSAD – Estudo de Caso: NFS
• Arquitetura NFS:
– 41 –