SlideShare uma empresa Scribd logo
1 de 41
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 –

Mais conteúdo relacionado

Mais procurados

Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxFábio dos Reis
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Permissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos LinuxPermissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos LinuxWellington Oliveira
 
Aula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoAula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoCarlos Veiga
 
Modelo documentacao-rede
Modelo documentacao-redeModelo documentacao-rede
Modelo documentacao-redeRod Deville
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Trabalho - Projeto redes
Trabalho - Projeto redesTrabalho - Projeto redes
Trabalho - Projeto redesValdir Junior
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoJean Carlos
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Instalação e configuração - Servidor DHCP
Instalação e configuração - Servidor DHCPInstalação e configuração - Servidor DHCP
Instalação e configuração - Servidor DHCPJoeldson Costa Damasceno
 
Modelo OSI - Camada Física
Modelo OSI - Camada FísicaModelo OSI - Camada Física
Modelo OSI - Camada FísicaRicardo Montania
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosLuiz Arthur
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 

Mais procurados (20)

Slide disco rigido
Slide disco rigidoSlide disco rigido
Slide disco rigido
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Permissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos LinuxPermissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos Linux
 
Aula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoAula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicação
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Aula 06 comandos linux
Aula 06   comandos linuxAula 06   comandos linux
Aula 06 comandos linux
 
Modelo documentacao-rede
Modelo documentacao-redeModelo documentacao-rede
Modelo documentacao-rede
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
06 - Servidor Apache
06 - Servidor Apache06 - Servidor Apache
06 - Servidor Apache
 
Trabalho - Projeto redes
Trabalho - Projeto redesTrabalho - Projeto redes
Trabalho - Projeto redes
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informação
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Instalação e configuração - Servidor DHCP
Instalação e configuração - Servidor DHCPInstalação e configuração - Servidor DHCP
Instalação e configuração - Servidor DHCP
 
Modelo OSI - Camada Física
Modelo OSI - Camada FísicaModelo OSI - Camada Física
Modelo OSI - Camada Física
 
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
 
Apresentação sobre ipv6
Apresentação sobre ipv6Apresentação sobre ipv6
Apresentação sobre ipv6
 
Rede de computadores
Rede de computadoresRede de computadores
Rede de computadores
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 

Destaque (8)

Cadernodequestes ano2011
Cadernodequestes ano2011Cadernodequestes ano2011
Cadernodequestes ano2011
 
Questesdetecnologia ano2003
Questesdetecnologia ano2003Questesdetecnologia ano2003
Questesdetecnologia ano2003
 
Poscomp-Cadernodequestes ano2010
Poscomp-Cadernodequestes ano2010Poscomp-Cadernodequestes ano2010
Poscomp-Cadernodequestes ano2010
 
Material de estudo arquilovogia conteudo2011
Material de estudo arquilovogia conteudo2011 Material de estudo arquilovogia conteudo2011
Material de estudo arquilovogia conteudo2011
 
Poscomp-Cadernodequestes ano2011
Poscomp-Cadernodequestes ano2011Poscomp-Cadernodequestes ano2011
Poscomp-Cadernodequestes ano2011
 
poscomp-Gabarito ano2011
poscomp-Gabarito ano2011poscomp-Gabarito ano2011
poscomp-Gabarito ano2011
 
Resumao Arquivologia
Resumao ArquivologiaResumao Arquivologia
Resumao Arquivologia
 
Tecnicas de arquivamento
Tecnicas de arquivamentoTecnicas de arquivamento
Tecnicas de arquivamento
 

Semelhante a Sd08 (si) sistemas de arquivos distribuídos

Apostila 8 sistema de arquivos
Apostila 8   sistema de arquivosApostila 8   sistema de arquivos
Apostila 8 sistema de arquivosPaulo Fonseca
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos DistribuídosFrederico Madeira
 
Banco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dadosDanielRibeiro136663
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1Universal.org.mx
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Lucas A. Romão
 
T@rget Trust - Formação: Administrador e Suporte Linux
T@rget Trust - Formação: Administrador e Suporte LinuxT@rget Trust - Formação: Administrador e Suporte Linux
T@rget Trust - Formação: Administrador e Suporte LinuxTargettrust
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdM Serafim
 
Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Evandro Júnior
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Unidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxUnidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxJuan Carlos Lamarão
 
FileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchFileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchMarcos Freccia
 
FileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchFileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchMarcos Freccia
 
FileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchFileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchMarcos Freccia
 
Aula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptx
Aula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptxAula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptx
Aula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptxRicardoCristovao2
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memóriaMaria194536
 

Semelhante a Sd08 (si) sistemas de arquivos distribuídos (20)

Apostila 8 sistema de arquivos
Apostila 8   sistema de arquivosApostila 8   sistema de arquivos
Apostila 8 sistema de arquivos
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
SI - SAD - Sistemas de Arquivos Distribuídos
SI - SAD  - Sistemas de Arquivos DistribuídosSI - SAD  - Sistemas de Arquivos Distribuídos
SI - SAD - Sistemas de Arquivos Distribuídos
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Banco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dadosBanco de dados
Banco de dadosBanco de dadosBanco de dados
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
 
T@rget Trust - Formação: Administrador e Suporte Linux
T@rget Trust - Formação: Administrador e Suporte LinuxT@rget Trust - Formação: Administrador e Suporte Linux
T@rget Trust - Formação: Administrador e Suporte Linux
 
TA1 - Slides Acessibilidade.pdf
TA1 - Slides Acessibilidade.pdfTA1 - Slides Acessibilidade.pdf
TA1 - Slides Acessibilidade.pdf
 
Redes e Servidores
Redes e ServidoresRedes e Servidores
Redes e Servidores
 
1.1.apresentação
1.1.apresentação1.1.apresentação
1.1.apresentação
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bd
 
Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Unidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxUnidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios Linux
 
FileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchFileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic Search
 
FileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchFileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic Search
 
FileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic SearchFileTable, Full Text Search e Semantic Search
FileTable, Full Text Search e Semantic Search
 
Aula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptx
Aula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptxAula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptx
Aula 5 - Sistemas Operacionais - Sistema de Arquivos (1).pptx
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória
 

Mais de Computação Depressão (20)

Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 
Gabarito ano2011
Gabarito ano2011Gabarito ano2011
Gabarito ano2011
 
Gabarito ano2010
Gabarito ano2010Gabarito ano2010
Gabarito ano2010
 

Sd08 (si) sistemas de arquivos distribuídos

  • 1. 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)
  • 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 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 –
  • 5. 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 –
  • 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 bem estruturado. – Espaço em disco. – Administração compartilhada. – Cada maquina não tem que armazenar arquivos que irá acessar. – 6 –
  • 7. 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 –
  • 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ç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 –
  • 12. 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 –
  • 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. 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 –
  • 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 de arquivo básico – Pode gerenciar cache local – 15 –
  • 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 (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 – 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 –
  • 18. 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 –
  • 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. 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. 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 –
  • 22. 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 –
  • 23. 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 –
  • 24. 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 –
  • 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 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 – 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 –
  • 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 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 – 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 –
  • 29. SAD – Aspectos de Implementação – 29 –
  • 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 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 – 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 –
  • 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 – 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 –
  • 38. 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 –
  • 39. 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 –
  • 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. SAD – Estudo de Caso: NFS • Arquitetura NFS: – 41 –