projeto e implementação de sistemas de arquivos prof. dr. norian marranghello grupo 14 roger souza...

37
Projeto e Projeto e Implementação Implementação de Sistemas de de Sistemas de Arquivos Arquivos Prof. Dr. Norian Marranghello Prof. Dr. Norian Marranghello Grupo 14 Grupo 14 Roger Souza de Paula Roger Souza de Paula Maurício Nigro Tronco Maurício Nigro Tronco

Upload: lidia-chagas-clementino

Post on 07-Apr-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 2: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurí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

Page 3: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 4: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 5: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 6: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 7: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

Hierarquia (2)Hierarquia (2)

• A hierarquia pode ser esquematizada de duas formas:

• árvore;

• grafo;

Page 8: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

Hierarquia (3)Hierarquia (3)

• Árvore

A

B C

ED

diretório paidiretório pai

diretórios filhosdiretórios filhos

Page 9: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 10: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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:

Page 11: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 12: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 13: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 14: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 15: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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:

Page 16: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 17: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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?

Page 18: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 19: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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 ;

Page 20: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 21: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 22: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 23: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 24: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

Acesso a Arquivos (1)Acesso a Arquivos (1)

Compartilhamento:

Sobreposição; Intercalação;

Controle de coerência;

Controle de concorrência;

Page 25: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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

Page 26: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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.

Page 27: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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.

Page 28: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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.

Page 29: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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”

Page 30: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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”

Page 31: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 32: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 33: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 34: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

Controle de Versão (4)Controle de Versão (4) Exemplo 1:

Servidor

Cliente 1

103

103104

mem. cache

modificacopiar

disco

Atualiza

104

Page 35: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

Controle de Versão (5)Controle de Versão (5) Exemplo 2:

Servidor

Cliente 1

103Atualização

Cliente x105

103104

mem. cache

modificacopiar

?

?

disco

Page 36: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco

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;

Page 37: Projeto e Implementação de Sistemas de Arquivos Prof. Dr. Norian Marranghello Grupo 14 Roger Souza de Paula Maurício Nigro Tronco