Você está na página 1de 36

Sistemas

Distribudos
Parte 09

Sistemas de Arquivos
Distribudos
Contedo adaptado a partir do material dos professores
LusFernando Friedrich (Universidade Federal de Santa Catarina) e
Frederico Madeira (Faculdade Maurcio de Nassau PE)

Sistema de Arquivo
Parte importante dos sistemas
operacionais, pois ele fornece:
Viso abstrata dos dados persistentes
Controle sobre o servio de nomes
Acesso arquivos e sua organizao
geral.

Sistema de Arquivo
Conceitos
Arquivo
Uma sequencia de bytes.
Um sistema especifico de uma estrutura
interna.
Atributos Tamanho, acesso, datas, dono.

Diretrio (arquivo especial)


Mapeia os nomes para os identificadores.
Pode conter subdiretrios (arvore).
3

Sistema de Arquivos
Distribudo
Permite aos programas armazenarem e
acessarem arquivos remotos exatamente
como se fossem locais, possibilitando
que os usurios acessem arquivos a
partir de qualquer computador em uma
rede. O desempenho e a segurana no
acesso aos arquivos armazenados em
um servidor devem ser comparveis aos
arquivos armazenados em discos locais.
[Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas
Distribudos Conceitos e Projeto] Cap 7.
4

SAD - Sistemas de Arquivos


Distribudos
Oferecem:
Acesso remoto aos arquivos armazenados em um
servidor
Acesso aos dispositivos de E/S de outras mquinas
Controle de verso e restaurao de cpias de
segurana

Os sistemas de arquivos distribudos devem


prover:

Confiabilidade
Redundncia
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.
Espao em disco.
Administrao compartilhada.
Cada maquina no tem que armazenar arquivos que
ir acessar.
6

SAD O que se busca?


Tolerncia a Falhas
Se um servidor cair ou ficar fora do ar ou da rede,
o sistema de arquivos no pode perder informaes
e nem ficar indisponvel total ou parcialmente

Acesso Concorrente
Vrios usurios podem acessar vrios arquivos, ou os
mesmos arquivos, sem sofrer danos, perda de
performance ou quaisquer outras restries

Replicao de Arquivos
Com esta funcionalidade, a confiana e a
eficincia do servio de arquivos aumentada
significativamente
7

SAD - Requisitos
Transparncia de...
Acesso: clientes tratam arquivos como locais
Localizao: espao de nomes uniforme e
sem mudana quando arquivos mudarem
Concorrncia: operaes dos clientes no
devem interferir umas com as outras
Falha: servidores devem operar normalmente
na falha dos clientes, e vice-versa
Desempenho: no deve variar com a carga

SAD - Requisitos
Usabilidade depende de...
Heterogeneidade de HW e SW
Interfaces definidas de forma que possam ser implementadas
por vrios HW e SW

Escalabilidade
Servio deve ser extensvel para acomodar mudanas de escala do SD

Se escalabilidade envolver muitos hosts...


Transparncia de replicao
Arquivos podem estar fisicamente replicados e cliente ignora
esse fato

Transparncia de migrao
Arquivos podem mudar de lugar e isso no deve alterar os
clientes
9

SAD - Requisitos
E ainda...
Compartilhamento
Toda operao em um arquivo deve ser visvel a todos
processos
Semntica de sesso: nenhuma modificao visvel aos
outros processos at que o arquivo seja fechado.

Arquivos imutveis:
Modificaes no so possveis;
Simplifica compartilhamento e replicao;
Modificaes ocorrem apenas em diretrios

Transaes:
Todas as modificaes tm a propriedade do tudo-ou-nada
(atomicidade);
Serializao
10

SAD Servios Bsicos


Servio de Nomes Distribudo
O servio de nomes cuida de indicar a localizao de
um determinado arquivo dado o seu nome ou caminho.

Servio de Arquivos Distribudo


Responsvel por fornecer operaes sobre os arquivos que
compe o sistema.
Os arquivos podem ser armazenados de diferentes
formas, dependendo do seu tipo e uso.

Servio de Diretrios Distribudo


Responsvel por manter a organizao dos arquivos
armazenados no sistema.
Ele fornece uma interface para que os usurios possam arranjar
seus arquivos num formato hierrquico, que estruturado
em diretrios e subdiretrios.
11

SAD Aspectos de
Implementao
Componentes

Para preencher os
requisitos e implementar
servios, ajuda bastante
se o SA for implementado
com trs componentes:
Servio de arquivo
bsico
Servio de diretrio
Mdulo de cliente
Quem faz o que?
12

SAD Aspectos de
Implementao
Servio de arquivos bsico

Implementa operaes nos arquivos


Arquivos so referenciados por seus FIDs (File
Ids)
FIDs devem ser nicos no SD
Criao de um novo arquivo?
Gera um FID e devolve ao requisitante

13

SAD Aspectos de
Implementao
Servio de Diretorio

Responsvel por converter nomes textuais em

FIDs
Diretrio
Conjunto de FIDs e nomes textuais
Cliente do servio de arquivo bsico
Arquivos de diretrio so arquivos, e
gerenciados pelo SAB
Hierarquia de diretrios

14

SAD Aspectos de
Implementao
Modulo Cliente

Chamadas de sistema para manipulao de


arquivos
Criar, ler, escrever...
Armazena localizao na rede do servio de
diretrio e de arquivo bsico
Pode gerenciar cache local

15

SAD Aspectos de
Implementao

Interface do Servio de Arquivo Basico


(SAB)
Aspectos dessa interface
No tem open/close; manipula usando IA
(identificador de arquivo)
Servidor sem estado (stateless)
Clientes so responsveis por saber onde
esto lendo/escrevendo
No caso de falha, depois do retorno no h
procedimento especial
16

SAD Aspectos de
Implementao
Apenas relembrando...
Stateless

Servidor no guarda informao sobre clientes


nem sobre arquivos (IAs)
Responsabilidade do cliente em manter o
estado

Stateful
Mantm informao de qual cliente abriu qual
arquivo, e em que bloco est
Requisies so atendidas mais rpido, pois no
precisa localizar o IA do arquivo
17

SAD Aspectos de
Implementao
Geraao de IAs

Devem ser gerados de forma nica no


espao/tempo e difcil de forjar
Arquivo removido, IA descartado

IA no endereo
No contm informaes sobre localizao
do arquivo

18

SAD Aspectos de
Implementao
Geraao de IAs

Como garantir unicidade e integridade?


Usar um espao de nmeros pouco
populoso
Unicidade
IA = ID do grupo + inteiro (no reutilizvel)

Integridade
Acrescentar uma parte aleatria ao inteiro
Tornar a distribuio de IAs vlidos esparsa
Parte aleatria inacessvel aos clientes
19

SAD Aspectos de
Implementao
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 permisso no IA proposto
20

SAD Aspectos de
Implementao
Modos de Acesso

Bits adicionais indicando permisso

Leitura
Escrita/truncamento
Remover
Obter/definir permisses

Na criao, usurio pode tudo


Durante Lookup (busca), IA retorna apenas
com permisses concedidas ao usurio
21

SAD Aspectos de
Implementao
Modelos de Arquivos

Arquivos estruturados e no-estruturados


Arquivos estruturados (sequncia ordenada de
registros) so raramente utilizados, podendo ser
indexado ou no-indexado. A maioria dos SOs
modernos utilizam arquivos no-estruturados.

Arquivos modificveis e no-modificveis


O modelo mais usado o modificvel. Alguns
sistemas atuais utilizam o modelo nomodificvel que permite um compartilhamento
consistente e assim facilita caching e rplicas.
22

SAD Aspectos de
Implementao

Semntica de Compartilhamento
Quando h mais de um processo lendo
e/ou escrevendo em um arquivo
Controle de concorrncia (ok!)
Semntica de compartilhamento

Quatro tipos bsicos de semntica

Semntica UNIX
Semntica de sesso
Arquivos imutveis
Transaes
23

SAD Aspectos de
Implementao
Semntica UNIX

Um read que segue um write v o valor


escrito pelo write
Obrigatoriedade de ordenao total
Sempre retorna o valor mais atual

Implementao fcil
Servidor central que processa requisies na
ordem (lgica)

24

SAD Aspectos de
Implementao
Semntica de sesso

Relaxamento na semntica UNIX


Mudanas em um arquivo aberto so visveis
apenas ao processo que modifica o arquivo
Quando o arquivo fechado, as mudanas so
visveis para outros processos. O arquivo
fechado enviado de volta para o servidor
Est errado?
No
Amplamente implementado
25

SAD Aspectos de
Implementao

Semntica de sesso (continuao)


Servidor centralizado traz 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 verso antiga do arquivo
O que acontece se dois ou mais clientes esto
modificando um mesmo arquivo em suas caches?
O resultado final depende do ltimo close
Pode-se usar uma regra arbitrria para decidir
26

SAD Aspectos de
Implementao

Semntica de arquivos no modificados


Por que se preocupar?
Arquivos no 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 atmica
Arquivos so imutveis, mas diretrios no

Problema : se dois clientes desejam trocar um


arquivo no mesmo tempo?
Usa-se o ltimo ou adota-se qualquer regra no
determinstica
27

SAD Aspectos de
Implementao

Semntica de transao
Tratar operaes de forma atmica
Uma transao
Todas modificaes nos arquivos so
delimitados por um Begin e um End
transaction
Dois processos ao mesmo tempo?
Transaes permitem concorrncia
Sistema faz serializao

28

SAD Aspectos de
Implementao

29

SAD Uso de Memria


Cache
Na memria do servidor

Elimina transferncia de/para disco em cada acesso


Unidade de cache: arquivos inteiros; blocos
Quando a cache est cheia Descartar informao mais
antiga
Transparente para clientes Sem problemas com
consistncia ante suas requisies

Na memria do cliente
Reduz volume de acesso via rede
Esquemas:

Cache direto no processo do usurio


Cache no ncleo do S.O.
Cache em um processo separada a nvel de usurio
30

SAD Uso de Memria


Cache
Mtodos de consistncia de cache
Write through

Operao de escrita propagada instantaneamente

Delayed write
Operaes de escrita so propagadas em bloco (aps tempo x).
Melhor desempenho, mas risco de ambiguidade na semntica
(depende de timing[x])

Write on close:
Semntica de sesso equivalente a sistemas centralizados

Centralized control
Semntica UNIX Toda operao pode ser vista instantaneamente
Performance e escalabilidade comprometidas;
31

SAD - Replicao
SDs geralmente oferecem alguma forma de
replicao de dados
Mltiplas cpias do mesmo objeto

Por que?
Aumentar confiabilidade - a quebra de um servidor no
implica na perda de dados
Permitir acesso mesmo na caso de falha mesmo que
um servidor no esteja disponvel o acesso continua
Diviso de carga entre servidores espalhar a carga
de trabalho em vrios servidores

Principal problema: transparncia


32

SAD - Replicao
Replicao explcita
Programador faz todo o
trabalho sujo
Servio de diretrio pode
permitir mltiplos 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 - Replicao
Replicao atrasada
Apenas uma cpia feita
em um servidor
O servidor responsvel
por...
Propagar atualizaes
Selecionar outro servidor
para atender, se ele no
puder

34

SAD - Replicao
Replicao em grupos
Operao de escrita
feita ao mesmo tempo em
todos os ns
Multicast atmico (tudo-ounada)

Atrasada x grupo
Um servidor x grupo
Segundo plano x atmica
35

SAD Exemplos

NFS
GFS(Global FileSystem)
PVFS (parallel virutal file system)
AFS (Andrew FileSystem)
GMAILFS
DFS
CODA (Constant Data Availability)
36