Projeto e Implementação
de Sistemas de Arquivos
Prof. Dr. Norian Marranghello
Grupo 14
Roger Souza de Paula
Maurício Nigro Tronco
Ementa
• 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
Introduçã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
• dispersão de arquivos e usuários;
• multiplicidade de arquivos e usuários;
Sistema Distribuído
Arquivos
• Arquivos são mecanismos de abstração de dados ;
• Consistem de três componentes lógicos:
Seqüência de itens
de dados
Nome simbólico
Nome
+
Atributos
+
Dados
+
Posse, tipo, tamanho, timestamp, autorização de acesso
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;
Serviço de arquivos
• criação e remoção de arquivos;
• gerência de diretórios;
Serviço de diretórios
Hierarquia (2)
• A hierarquia pode ser esquematizada de duas formas:
• árvore;
• grafo;
Hierarquia (3)
• Árvore
diretório pai
A
diretórios filhos
C
B
D
E
Hierarquia (4)
• Grafo
contador do número de diretórios
apontando para este diretório
A
B
D
1
1
2
C
E
1
1
máquina
1
máquina 2
Hierarquia (5)
• Visão de hierarquia
• Considere os seguintes servidores de arquivos:
Servidor de arquivos 1
Servidor de arquivos
2
D
A
B
C
E
F
Hierarquia (6)
• Exemplo 1: um sistema no qual todos os clientes têm a mesma visão do
sistema de arquivos.
cliente 1
cliente 2
root
root
A
B
A
D
C
E
F
B
D
C
E
F
Hierarquia (7)
• Exemplo 2: um sistema no qual diferentes clientes têm diferentes
visões do sistema de arquivos.
root
cliente 1
cliente 2
A
root
B
A
C
D
D
B
C
E
F
E
F
Projeto e Implementação de
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
Liga o sistema de arquivos de uma máquina
remota em um sistema de arquivos de uma
máquina local;
• Aspectos importantes:
• tabela de montagem;
• ponto de montagem;
• uso de nomes de caminho concatenados;
• referências desnecessárias de hosts remotos ou
dispositivos locais;
Montagem de Arquivos (2)
• A montagem de arquivos pode ser feita de três formas:
 Montagem Explícita: clientes fazem chamadas de montagem explícita
do sistema quando é desejado;
 Montagem de Boot: um conjunto de servidores de arquivo é prescrito
e todas as montagens são executadas no tempo de boot do cliente;
 Automontagem: a montagem de servidores é implicitamente feita
quando um arquivo é aberto primeiramente por um cliente;
Montagem de Arquivos (3)
• Exemplo 3: sistemas de arquivo local e remoto.
Servidor de arquivos 1
Servidor de arquivos
2
/root
Cliente
/root
/root
export
vmlinux
Montagem
alunos
pessoas
Remota
pedro joão paula
usr
x
nfs
Montagem
assistentes
usuário
Remota
joana gê
ana
Registro de Servidores (1)
Requer conhecimento da
localização dos servidores
de arquivo
O protocolo de montagem
não é transparente
Montagem inicial
de arquivos
Como então
localizar os
servidores?
Registro de Servidores (2)
• Resposta: através do uso de um protocolo de resolução de endereço .
• 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;
• Conseqüência:
Melhorperformance
performance
Melhor
performance
Melhor
Melhor
performance
Servidores Com ou Sem
Informações de Estado (1)
•
A cada sessão de arquivo, está associada uma ou mais
informação de estado ;
Arquivos abertos e seus clientes
Montagem de informação
Chaves de sessão
Informações de Estado
Cache
ou
Buffer
Lock status
Ponteiros do arquivo
Descritores e controladores de arquivos
Servidores Sem Informações
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
de Estado: Stateless (2)
Cliente 1
Cliente 2
Cliente 3
Cliente 4
Servidor
Servidores Sem Informações
de Estado: Stateless (3)
Necessidade de idempotência
Mecanismo de bloqueio do arquivo
Implementação de um servidor Stateless
Consistência em cache
Gerenciamento de chaves de sessão
Servidores Com Informações
de 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)

Compartilhamento:
 Sobreposição;
 Intercalação;

Controle de coerência;

Controle de concorrência;
Acesso a Arquivos (2)
Tempo
Acesso Remoto
Acesso ao
cache
Acesso de
download e
upload
Simples
leitura/escrita
Falso
compartilhamento
Controle de
coerência
Controle de
coerência
Transação
Controle de
concorrência
Controle de
concorrência
Coerência e
concorrência
Não aplicável
Não aplicável
Compartilhamento
ignorado
Espaço
Sessão
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)
• 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
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
Compartilhamento (2)

Sistema com um único processador:
arquivo original
X
a
b
a
b
c
Y
Escrita de “c”
A leitura obtém “abc”
Semântica de
Compartilhamento (3)
•
Sistema distribuído:
X
a
b
a
b
a
c
Cliente 1
Cliente 2
Leitura obtém “ab”
Escrita de “c”
b
Leitura obtém “ab”
a
b
Servidor de arquivos
Y
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)
•
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)
•
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)
 Exemplo 1:
103
104
disco
Servidor
Atualiza
104
103
modifica
copiar
Cliente 1
mem. cache
Controle de Versão (5)
 Exemplo 2:
Atualização
? 103
105
Cliente x
disco
Servidor
104
103
modifica
copiar
Cliente 1
mem. cache
?
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;
Download

05 de junho