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

Post on 07-Apr-2016

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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