projeto e implementação de sistemas de arquivos prof. dr. norian marranghello grupo 14 roger souza...
Post on 07-Apr-2016
217 Views
Preview:
TRANSCRIPT
Projeto e ImplementaçãoProjeto e Implementação
de Sistemas de Arquivosde Sistemas de Arquivos
Prof. Dr. Norian MarranghelloProf. Dr. Norian Marranghello
Grupo 14Grupo 14Roger Souza de PaulaRoger Souza de PaulaMaurício Nigro TroncoMaurício Nigro Tronco
• INTRODUÇÃO
• CARACTERÍSTICAS DE UM SAD
• Arquivos
• Hierarquia
• PROJETO E IMPLEMENTAÇÃO DE UM SAD
• Montagem de Arquivos
• Registro de Servidores
• Servidores Com ou Sem Informações de Estado
• Acesso a Arquivos
• Controle de Coerência
• Semântica de Compartilhamento
• Controle de Versão
EmentaEmenta
IntroduçãoIntrodução
Conceitos em comum dos sistemas distribuídos e sistemas de arquivos distribuídos:
• transparência;
• serviço de diretório;
• performance e disponibilidade;
• controle de acesso e proteção;
Características de um SAD Características de um SAD
• dispersão de arquivos e usuários;
• multiplicidade de arquivos e usuários;
Sistema Distribuído
ArquivosArquivos
• Arquivos são mecanismos de ;
• Consistem de três componentes lógicos:
+Nome +Atributos +Dados
Nome simbólico Seqüência de itens de dados
Posse, tipo, tamanho, timestamp, autorização de acesso
abstração de dados
Hierarquia (1)Hierarquia (1)
• Arranjo dos diretórios (pais) com seus respectivos subdiretórios (filhos)
Sistema de Arquivos Hierárquico
• Operações:
• leitura;• escrita;• anexação de informações;
• criação e remoção de arquivos;• gerência de diretórios;
Serviço de arquivos
Serviço de diretórios
Hierarquia (2)Hierarquia (2)
• A hierarquia pode ser esquematizada de duas formas:
• árvore;
• grafo;
Hierarquia (3)Hierarquia (3)
• Árvore
A
B C
ED
diretório paidiretório pai
diretórios filhosdiretórios filhos
Hierarquia (4)Hierarquia (4)
• Grafo
máquinmáquina 1a 1
máquina 2máquina 2D1
C1
E1
B2
A1
contador do número de diretórios apontando para este diretório
Hierarquia (5)Hierarquia (5)
• Visão de hierarquia
A
B C
D
E F
Servidor de arquivos 1Servidor de arquivos 1 Servidor de Servidor de arquivos 2arquivos 2
• Considere os seguintes servidores de arquivos:
Hierarquia (6)Hierarquia (6)
A
B C
root
D
E F
cliente 1cliente 1 cliente 2cliente 2
• Exemplo 1: um sistema no qual todos os clientes têm a mesma visão do sistema de arquivos.
A
B C
root
D
E F
Hierarquia (7)Hierarquia (7)
A
B C
root
D
E F
cliente 1cliente 1 cliente 2cliente 2
• Exemplo 2: um sistema no qual diferentes clientes têm diferentes visões do sistema de arquivos.
A
B C
root
D
E F
Projeto e Implementação de Projeto e Implementação de um SAD um SAD
• Um SAD possui dois componentes:
• servidor de arquivos;
• servidor de diretórios;
• Problemas no projeto e implementação de um SAD:
• compartilhamento de arquivos;
• replicação de arquivos;
Montagem de Arquivos (1)Montagem de Arquivos (1)
• Montagem de Arquivos
Liga o sistema de arquivos de uma máquina remota em um sistema de arquivos de uma máquina local;
• ponto de montagem;
• Aspectos importantes:
• referências desnecessárias de hosts remotos ou dispositivos locais;
• tabela de montagem;
• uso de nomes de caminho concatenados;
a montagem de servidores é implicitamente feita quando um arquivo é aberto primeiramente por um cliente;
um conjunto de servidores de arquivo é prescrito e todas as montagens são executadas no tempo de boot do cliente;
clientes fazem chamadas de montagem explícita do sistema quando é desejado;
Montagem de Arquivos (2)Montagem de Arquivos (2)
• A montagem de arquivos pode ser feita de três formas:
Montagem de Boot:
Montagem Explícita:
Automontagem:
Montagem de Arquivos (3)Montagem de Arquivos (3)• Exemplo 3: sistemas de arquivo local e remoto.
vmlinux usr
alunos x assistentes
/root
joana
nfs
usuário
gê ana
/root
Servidor de arquivos 1Servidor de arquivos 1 Servidor de Servidor de arquivos 2arquivos 2
ClientClientee
/root
export
pessoas
joão paulapedro
Montagem
Remota
Montagem
Remota
Registro de Servidores (1)Registro de Servidores (1)
Montagem inicial de arquivos
Requer conhecimento da localização dos servidores
de arquivoO protocolo de montagem
não é transparente
Como então localizar os servidores?
Registro de Servidores (2)Registro de Servidores (2)
• Resposta: através do uso de um .
• Assim, um servidor de arquivo pode ser localizado de duas maneiras:
Clientes consultam o registro do servidor antes da montagem;
Servidores de arquivos respondem aos pedidos dos clientes;
protocolo de resolução de endereço
• Conseqüência:
Melhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performanceMelhor performance
Servidores Com ou Sem Servidores Com ou Sem Informações de Estado (1)Informações de Estado (1)
• A cada sessão de arquivo, está associada uma ou mais
Informações de Estado
Arquivos abertos e seus clientes
Descritores e controladores de arquivosPonteiros do arquivo
Montagem de informação
Lock status
Chaves de sessão
Cache ou
Buffer
informação de estado ;
Servidores Sem Informações Servidores Sem Informações de Estado: Stateless (1)de Estado: Stateless (1)
Não mantêm nenhuma informação de estado;
Mais fácil de se implementar;
Mais tolerante a falhas: Falhas no cliente não afetam o servidor; Falhas no servidor são fáceis de se recuperar;
Não há necessidade de chamadas open/close;
Não gasta espaço de memória do servidor para se armazenar tabelas;
Servidores Sem Informações Servidores Sem Informações de Estado: Stateless (2)de Estado: Stateless (2)
Cliente 1
Cliente 2
Cliente 3
Cliente 4
Servidor
Servidores Sem Informações Servidores Sem Informações de Estado: Stateless (3)de Estado: Stateless (3)
Implementação de um servidor Stateless
Gerenciamento de chaves de sessão
Mecanismo de bloqueio do arquivo
Consistência em cache
Necessidade de idempotência
Servidores Com Informações Servidores Com Informações de Estado: Statefullde Estado: Statefull
Mantêm uma ou mais informação de estado;
Mensagens menores para solicitações de serviço;
Possível ler informações adiantadas;
Fácil de se obter idempotência;
É possível bloquear arquivos;
Acesso a Arquivos (1)Acesso a Arquivos (1)
Compartilhamento:
Sobreposição; Intercalação;
Controle de coerência;
Controle de concorrência;
Acesso a Arquivos (2)Acesso a Arquivos (2)
Tempo
EspaçoAcesso Remoto Acesso ao
cache
Acesso de download e
upload
Simples leitura/escrita
Falso compartilhamento
Controle de coerência
Controle de coerência
TransaçãoControle de
concorrênciaControle de
concorrênciaCoerência e concorrência
SessãoNão aplicável Não aplicável Compartilhamento
ignorado
Controle de Coerência (1)Controle de Coerência (1)
• As interpretações (ou definições) a seguir estão listadas em ordem de inflexibilidade:
Todas as réplicas são idênticas em todos os instantes;
Réplicas são percebidas como idênticas apenas em alguns instantes;
Os usuários sempre podem ler os dados ‘mais recentes’ nas réplicas;
Operações de escrita são sempre executadas ‘imediatamente’ e seus resultados são propagados em um estilo de melhor esforço.
Controle de coerência (2)Controle de coerência (2)
• A transação deve ser atômica;
• Para isso, devem satisfazer as propriedades de atomicidade, consistência, isolamento e durabilidade (ACID);
• A função para forçar a se ter atomicidade e consistência em um servidor de arquivo é chamada de serviço de transação.
Semântica de Semântica de Compartilhamento (1)Compartilhamento (1)
• Controla problemas de coerência e concorrência;
• Quatro formas de tratar arquivos compartilhados em sistemas distribuídos:
Semântica UNIX;
Semântica de sessão;
Arquivos imutáveis;
Transações.
Semântica de Semântica de Compartilhamento (2)Compartilhamento (2)
Sistema com um único processador:
X
Y
a b c
a b
arquivo original
A leitura obtém “abc”
Escrita de “c”
Semântica de Semântica de Compartilhamento (3)Compartilhamento (3)
• Sistema distribuído:
a b
a b a b
a b c
X
Cliente 1
Y
Cliente 2
Leitura obtém “ab” Leitura obtém “ab”
Servidor de arquivos
Escrita de “c”
Controle de Versão (1)Controle de Versão (1)
• O que é?
A responsabilidade de forçar semânticas de compartilhamento de arquivo é separada do serviço de arquivo para um serviço de alto nível chamado controle de versão;
Para que serve?
Solução para se obter o compartilhamento de escrita;
Pode pode ser implementado como uma função do serviço de diretório;
Controle de Versão (2)Controle de Versão (2)
• Cada arquivo no diretório é associado a um número de versão;
• O arquivo com o mais alto número de versão é considerado ser o de versão atual do arquivo compartilhado;
• A chamada de abertura a um arquivo sempre retorna a versão atual;
• Operações de leitura/escrita no arquivo aberto são feitas somente no local da cópia em andamento;
Controle de Versão (3)Controle de Versão (3)
• Tentative Version:
• Quando um arquivo é fechado, localmente é modificada a versão do arquivo, uma espécie de versão provisória (tentative version), que é atualizada no controle de versão;
• Se a versão provisória é fundamentada na versão corrente, é feita uma atualização e a versão provisória se torna a versão atual com um novo número de versão;
• Senão, três ações diferentes podem ser realizadas: Desconsiderar conflito; Resolver conflito de versão; Resolver seriabilidade de conflitos;
Controle de Versão (4)Controle de Versão (4) Exemplo 1:
Servidor
Cliente 1
103
103104
mem. cache
modificacopiar
disco
Atualiza
104
Controle de Versão (5)Controle de Versão (5) Exemplo 2:
Servidor
Cliente 1
103Atualização
Cliente x105
103104
mem. cache
modificacopiar
?
?
disco
Controle de Versão (6)Controle de Versão (6)
• Conclusões:
Resoluções mais complexas de conflito ou esquemas de controle de versão podem ser implementadas dependendo das necessidades das aplicações;
O uso de arquivos imutáveis ameniza suas mudanças de responsabilidade do serviço de arquivo para outros sistemas de serviço, permitindo implementações independente dos diferentes modelos de semântica;
top related