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 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 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í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í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?
• 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?
• 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 - 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 - 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 - 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á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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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çã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ção
– 29 –
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 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 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çã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çã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çã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çã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 – Exemplos
• NFS
• GFS(Global FileSystem)
• PVFS (parallel virutal file system)
• AFS (Andrew FileSystem)
• GMAILFS
• DFS
• CODA (Constant Data Availability)
– 36 –
SAD – 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: 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: 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: 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: NFS
• Arquitetura NFS:
– 41 –

Sd08 (si) sistemas de arquivos distribuídos

  • 1.
    Sistemas Distribuídos Parte 08 Sistemas deArquivos 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)
  • 2.
    Sistema 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 –
  • 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.
    Sistema de ArquivosDistribuí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 –
  • 5.
    SAD - Sistemasde 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 –
  • 6.
    Por que adotarSAD? • 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 –
  • 7.
    SAD – Oque 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 –
  • 8.
    SAD - 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 –
  • 9.
    SAD - 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 –
  • 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 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 –
  • 11.
    SAD – ServiçosBá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 –
  • 12.
    SAD – Aspectosde 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 –
  • 13.
    SAD – Aspectosde 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.
    SAD – Aspectosde 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 –
  • 15.
    SAD – Aspectosde 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 –
  • 16.
    SAD – Aspectosde 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 –
  • 17.
    SAD – Aspectosde 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 –
  • 18.
    SAD – Aspectosde 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 –
  • 19.
    SAD – Aspectosde 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.
    SAD – Aspectosde 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.
    SAD – Aspectosde 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 –
  • 22.
    SAD – Aspectosde 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 –
  • 23.
    SAD – Aspectosde 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 –
  • 24.
    SAD – Aspectosde 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 –
  • 25.
    SAD – Aspectosde 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 –
  • 26.
    SAD – Aspectosde 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 –
  • 27.
    SAD – Aspectosde 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 –
  • 28.
    SAD – Aspectosde 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 –
  • 29.
    SAD – Aspectosde Implementação – 29 –
  • 30.
    SAD – Usode 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 –
  • 31.
    SAD – Usode 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 –
  • 32.
    SAD - 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 –
  • 33.
    SAD - 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 –
  • 34.
    SAD - 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 –
  • 35.
    SAD - 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 –
  • 36.
    SAD – Exemplos •NFS • GFS(Global FileSystem) • PVFS (parallel virutal file system) • AFS (Andrew FileSystem) • GMAILFS • DFS • CODA (Constant Data Availability) – 36 –
  • 37.
    SAD – Estudode 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 –
  • 38.
    SAD – Estudode 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 –
  • 39.
    SAD – Estudode 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 –
  • 40.
    SAD – Estudode 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.
    SAD – Estudode Caso: NFS • Arquitetura NFS: – 41 –