Вы находитесь на странице: 1из 5

Processamento Distribudo 2003/2:

09 Sistemas de Arquivos Distribudos


Prof. Gerson Cavalheiro
(http://inf.unisinos.br/~gersonc)
Cincia da Computao / UNISINOS
Contedos:
Requisitos para Sistemas de Arquivos Distribudos
Arquitetura do Servio de Arquivos
Interface de Sistemas de Arquivos
Interface do Servidor de Diretrios
Semntica de Compartilhamento de Arquivos
Implementao de Sistema de Arquivos Distribudo
NFS Network File System
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 1/29

Requisitos para Sistemas de Arquivos


Distribudos
Transparncia (Coulouris):
acesso: clientes no percebem localizao dos arquivos;
mesmas operaes disponveis para arquivos locais e remotos
localizao: programas cliente devem perceber espao
uniforme de nome de arquivos, mesmo aps relocao de
arquivos ou processos
mobilidade: tabelas de programas clientes ou de
administrao do sistema no precisam ser modificadas
quando arquivos so movidos (do ponto de vista do
administrador ou do usurio final?)
desempenho: clientes mantm desempenho satisfatrio
(desde que carga oscile dentre de certos parmetros)
escalabilidade: sistema pode ser expandido atravs de
crescimento incremental, de forma a lidar com diversas cargas
e tamanhos de 30/11/2003
redes - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 4/29

Sistemas de Arquivos Convencionais

Funes: organizao, armazenamento, recuperao,


nomeao, compartilhamento e proteo de arquivos
Oferecem API que implementa abstrao de arquivos,
livrando programadores de detalhes de layout alocao
de armazenamento
Arquivos contm
dados: sequncias de bytes acessveis com operaes de
read/write
atributos: registro com nome, id do dono, data de ltimo
acesso, etc.

Diretrios so a base para organizao de arquivos


diretrios tambm so arquivos
fornecem mapeamento entre nomes-texto e ids de arquivos
(ex.: inodes)

Metadados: informaes
extra
armazenadas
no- Computao
sistema
30/11/2003 - Prof. Gerson
CavalheiroProcessamento Distribudo 2003/2
Unisinos 2/29

Requisitos para Sistemas de Arquivos


Controle de concorrncia em atualizaes de um arquivo:
Distribudos
mudanas feitas por um programa cliente no deveriam
interferir com a operao de outros clientes
acessando/alterando o mesmo arquivo
maioria dos sistemas de arquivos segue padro Unix de
advisory locks ou mandatory locks em nvel de arquivo ou
registro

Replicao de arquivos:
em um SAD que suporta replicao, um arquivo pode ser
representado por diversas cpias do seu contedo em
diferentes localizaes
possibilita compartilhamento de carga entre servidores que
oferecem acesso para clientes a um mesmo conjunto de
arquivos, aumentando escalabilidade
aumenta resistncia a falhas, como colapso ( crash ) de
servidores
a maioria dos sistemas
de
arquivos
distribudos
30/11/2003 - Prof.
Gerson
Cavalheiro- Processamento
Distribudo suporta
2003/2 - Computao Unisinos 5/29

Requisitos para Sistemas de Arquivos


Distribudos
Maioria dos requisitos e problemas tpicos no projeto de
sistemas de arquivos distribudos foram observados logo
de incio
Sistemas de arquivos distribudos ofereciam inicialmente
transparncia de acesso e de localizao
Outras questes, como desempenho, escalabilidade,
controle de concorrncia, tolerncia a falhas,
consistncia, heterogeneidade de hardware e software,
segurana entre outros, emergiram com o uso e foram
(ou ainda esto sendo) tratadas em verses
subsequentes
a serem comentados...

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 3/29

Requisitos para Sistemas de Arquivos


Consistncia:
Distribudos
semntica Unix convencional: one-copy update semantics

contedo do arquivo visto por todos os processos acessando


ou atualizando concorrentemente equivalente a existncia de
uma nica cpia
quando arquivos se encontram replicados ou em cache,
inevitvel que atrasos ocorram na propagao de modificaes,
desviando da semntica de uma cpia

Tolerncia a Falhas:
grande maioria dos sistemas computacionais dependem da
disponibilidade e funcionamento correto do sistema de arquivos
servio deve necessariamente operar apesar de falhas de
clientes; servio deve, idealmente, operar apesar da falha de
servidores
um design moderado em termos de TF relativamente
simples
servidores sem 30/11/2003
estado
(Gerson
stateless
) permitem
que
- Prof.
Cavalheiro- Processamento
Distribudo
2003/2servidores
- Computao Unisinos 6/29

Processamento Distribudo 2003/2 - Prof. Gerson Cavalheiro- Unisinos - 1

Requisitos para Sistemas de Arquivos


Distribudos
Heterogeneidade de sistema operacional e de hardware:
interface deveria ser definida de forma que software cliente e
servidor possam ser implementados para diferentes sistemas e
computadores
interface aberta, pblica ( openness )
protocolo padro para comunicao entre cliente e servidor

Segurana (security):
sistemas de arquivos tipicamente oferecem controle de acesso
por lista de permisses
necessidade de autenticar requisies de clientes no servidor
(id est correto?) e para proteger o contedo das mensagens
de requisio e resposta com assinaturas digitais e
potencialmente cifragem

Arquitetura do Sistema de Arquivos


Distribudo

Podem arquivos ser modificados aps sua criao?


servios de arquivos imutveis simplificam armazenamento em
cache e replicao

Dois tipos de sistemas de arquivos distribudos:


Arquitetura de sistema de arquivos aberto e configurvel
tipicamente separa claramente funcionalidade entre
um servio de arquivos e um servio de diretrios
Separa tambm o que interface e o que
implementao

Eficincia
facilidades equivalentes
a sistema de arquivos convencional
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 7/29
(flexibilidade), com desempenho pelo menos comparvel

Modelos de Servidor de Arquivos


Distribudo

move arquivo para cliente


opera sobre cpia local
remete cpia de volta ao servidor
CLIENTE

SERVIDOR

CLIENTE

SERVIDOR

arquivo velho

arquivo novo

3
Modelo Upload/Download

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 8/29

Interface do Servio de Diretrios

requisies do cliente
para acessar arquivo
remoto

Modelo de Acesso Remoto

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 10/29

Interface
do Servio de Arquivos
Operaes para ler e alterar atributos de arquivos

Operaes para criar, mover e remover entradas em


diretrios (criar, mover e remover arquivos/diretrios),
alterar seus atributos em sistema de arquivos hierrquico
Define a forma atravs da qual arquivos/diretrios so
nomeados por usurios, ou se arquivos possuem
extenso de tipo, etc.
Links para diretrios podem criar ciclos, e simples
contabilizao de referncias a diretrio pode deixar
partes da hierarquia sem acesso
localmente, acesso ao sistema de arquivos pode ser suspenso,
e o grafo percorrido de forma a encontrar e marcar todos os
diretrios alcanveis, tratando depois os no marcados
em um sistema distribudo, mltiplas mquinas esto
envolvidas e muito mais difcil par-las e obter um
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 11/29
snapshot

modelo upload/download
download arquivo inteiro (read) e upload arquivo inteiro
(write)
arquivos so armazenados em disco local no cliente ou em
memria
conceitualmente simples (pode ser ineficiente transferir
arquivo inteiro)
modelo de acesso remoto
servidor exporta uma gama de operaes sobre arquivos
servios so implementados no servidor, no nos clientes
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 9/29
no demanda
espao adicional nos clientes, e transfere

Interface do Servidor de Diretrios:


transparncia
x independncia
Transparncia de localidade
pathname
no
indica
(Tanenbaum) onde o arquivo est localizado
por exemplo, /gobo/home/burlesco.png poderia indicar
gobo como o nome do servidor de arquivos que armazena o
arquivo de imagem
entretanto, o pathname no indica a localizao de gobo
portanto gobo poderia ser livremente movido na rede

Independncia de localidade
suponha que arquivo burlesco.png seja extremamente
grande, e que o servidor gobo esteja sem espao em disco
o sistema poderia automaticamente migrar burlesco.png de
gobo para, digamos, fibo , onde haveria grande quantidade
de disco livre
no entanto, essa mudana acarretaria a troca de pathname, o
que poderia afetar as aplicaes que possuem codificado o
pathname com gobo
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 12/29
com independncia de localidade, h completa separao do

Processamento Distribudo 2003/2 - Prof. Gerson Cavalheiro- Unisinos - 2

Semntica de Compartilhamento de
Arquivos
Quando dois ou mais processos compartilham um
arquivo, necessrio definir precisamente a semntica
de leitura e escrita para evitar surpresas para o usurio
Unix: read() logo aps write() retorna o que o write()
escreveu
fcil de implementar em um sistema de arquivos distribudo
centralizado que recebe requisies de read e write que os
processa sequencialmente
read que ocorreu temporalmente logo aps um write pode
ainda assim retornar o valor pr-escrita, porque o read chegou
antes do write
enviar todas as requisies para o servidor afeta
negativamente desempenho uso de cache
com cache, demais clientes podem ler verso presente no
servidor, antiga30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 13/29

Semntica de Compartilhamento de
Arquivos
Outra abordagem tornar arquivos imutveis

um arquivo no pode ser aberto para escrita


as nicas operaes so read e create
possvel substituir um arquivo, pois arquivos so imutveis,
diretrios no
questes:
e quando dois processos tentam trocar o mesmo arquivo ao
mesmo tempo? (apenas um pode suceder, deixar o
segundo perdurar)
se o arquivo substituido enquanto o processo est lendo o
arquivo? manter uma cpia temporria?

Transaes atomicas distribudas tambm so uma


opo
conjunto de operaes de read e write delimitados por
Gerson
CavalheiroProcessamento Distribudo 2003/2 - Computao Unisinos 16/29
marcadores de30/11/2003
incio- Prof.
e fim
de
transao

Semntica de Compartilhamento de
Arquivos:
exemplo
CLIENTE 1

SERVIDOR
ab

READ

CLIENTE 2

??

ab

Problemas de semntica de sesso:

READ

abc
ab

WRITE c

Semntica de sesso:
modificaes em arquivo so vistas inicialmente apenas por
processo que o manipula
aps fechar, modificaes disponibilizadas a outros processos
ou mquinas

ab
WRITE c

Semntica de Compartilhamento de
Arquivos

ab

abc
WRITE d

WRITE d

abd

abd
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 14/29

Implementao de Sistema de Arquivos


Distribudo: Satyanarayanan e o uso de
A maioria dos arquivos pequena: transferncia de
arquivos
arquivo C/S
Leitura muito mais comum do que escrita: use cache
nos clientes
Leituras e escritas so sequenciais, acessos aleatrios
raros: use tcnica de leitura a frente ( read-ahead )
A maioria dos arquivos tem um tempo de vida curto
arquivos temporrios, de compiladores: criar e manter
arquivo no cliente at o arquivo ser removido
Compartilhamento de arquivos incomum: use cache
A maioria dos processos usa apenas alguns arquivos:
otimize para os mesmos
Existem diferentes classes de arquivos, com
propriedades distintas:
binrios, temporrios, mailbox,
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 17/29
etc.

e se dois usurios esto alterando o arquivo ao mesmo tempo,


como resolver conflitos?
ltimo que fecha
um dos que fecha arquivo determina estado final do mesmo
e quanto ao compartilhamento de apontadores entre processo
pai que abriu arquivo e processos filhos, caso os mesmos
pudessem rodar em mquinas remotas?
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 15/29

Implementao de Sistema de Arquivos


Distribudo:
do sistema
Questo bsica:estrutura
cliente e servidor
so iguais?
em alguns casos, so idnticos e parte do mesmo software, em
uma arquitetura simtrica, peer-to-peer, onde cada mquina
pode exportar arquivos
em outro extremo, cliente e servidor so diferentes em termos
de software e hardware, mesmo sistemas operacionais

Separao entre servidor de diretrio e servidor de


arquivos?
separados: mais flexvel
dois servidores demandam mais comunicao, menor
desempenho

Busca de arquivo iterativa ou automtica


exemplo: a/b/c , onde cada diretrio est em uma mquina
duas opes no primeiro servidor responder localizao de b
ao cliente, ou continuar
a busca em b e mais tarde responder
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 18/29
ao cliente (DNS?)

Processamento Distribudo 2003/2 - Prof. Gerson Cavalheiro- Unisinos - 3

Implementao de Sistema de Arquivos


Distribudo: exemplos de busca
procura
a/b/c

procura a/b/c

diretrio no
servidor 1

Cliente
procura
b/c

Implementao de Sistema de Arquivos


Distribudo: recordando prs/contras de
stateless

Cliente
b

diretrio no

Vantagens de Stateless

Vantagens de Statefull

Tolerncia a falhas

Mensagens mais curtas

servidor 2

procura c
resposta
com c

No h necessidade de open/close
diretrio no

servidor 3

resposta
com c

No h desperdcio de espao no
servidor com tabelas

arquivo

Melhor desempenho
Read-ahead possvel

No h limite no nmero de arquivos Idempotncia facilitada


abertos
arquivo

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 19/29

Implementao de Sistema de Arquivos


Distribudo:
consistncia da cache
Write-through : cada modificao na cache faz com
que uma atualizao seja enviada ao servidor, mantendo
cache
desempenho em escrita como se no houvesse cache
otimizao: atraso de operaes de atualizao para envio em
bloco

Write-on-close (semntica de sesso): escreve ao


fechar, ou 30s aps o fechamento para ter certeza que o
arquivo no ser removido...
essa semntica no to ruim, pois seria possvel que 2
processos em uma nica mquina lessem um arquivo e o
reescrevessem

Outra soluo algoritmo centralizado: um servidor


mantm controle de que arquivos esto abertos, por
- Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 22/29
quem e em que30/11/2003
modo

No h problemas se um cliente faz


um crash

Travamento de arquivos possvel

Implementao de Sistema de Arquivos


Distribudo: onde armazenar arquivo?
Disco do servidor: simples, mas ineficiente
(transferncia do disco para a memria do servidor, e
ento via rede para a memria do cliente)
Memria do servidor: uso de caching, mantm os
arquivos mais recentemente usados na memria principal
do servidor
Disco do cliente: no muito comum, melhor na
memria do servidor ou do cliente
Memria do cliente: h trs opes de onde manter
arquivos, que so no espao do processo usurio
(biblioteca, mais simples), no kernel (quando a cache
sobrevive a morte de processos), ou em um processo
servidor gerente da cache local

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 20/29

Replicao:
pode
ser feita de trs maneiras
Replicao de arquivos explcita

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 21/29

NFS
Network File System
Objetivo:

programador controla todo o processo


processo cria arquivos em servidores especficos
pode-se associar o endereo de rede com a posio do arquivo
sistema de arquivos distribudo deve proporcionar replicao
transparente

Replicao de arquivos lenta (Lazy file replication)


somente uma cpia de cada arquivo criada em um servidor
posteriormente, servidor replica arquivo de forma automtica
sistema deve prover mecanismos para recuperar as cpias

Replicao de arquivos utilizando grupo


cliente enderea grupo, no servidor nico
operaes de write so propagadas ao grupo, que replica
processamento
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 23/29
sncrono ou assncrono?

permitir acesso transparente a arquivos remotos para


programas clientes rodando em Unix e outros

Detalhes:
SUN NFS : introduzido pela Sun Microsystems
RISC/SunOS em 1985
primeiro servidor de arquivos projetado como um produto
normalmente usado em redes locais, mas no
necessariamente (?)

Padronizao:
Sun abriu as especificaes das interfaces em 1989, permitindo
que outros fabricantes produzissem suas verses, e liberou o
cdigo fonte de uma implementao referncia (sob licena)
existem implementaes para praticamente todos os sistemas
existentes
30/11/2003 - Prof.
Gerson
Cavalheiro- Processamento
Distribudo 2003/2 - Computao Unisinos 24/29
RFC 1813: protocolo
NFS
Version
3

Processamento Distribudo 2003/2 - Prof. Gerson Cavalheiro- Unisinos - 4

NFS Network File System:


arquitetura

NFS Network File System

Mtodo bsico:
exportar diretrios (parties, sistemas de arquivos) para
mquinas que os montaro

Simplicidade:
exemplo: duas mquinas clientes que montam o mesmo
sistema de arquivos remoto podem se comunicar atravs do
mesmo
processos podem ler e escrever em arquivos que so
acessados em diferentes mquinas

NFS define dois protocolos baseados:


de montagem de diretrios: fornece diretrio na requisio, ao
que o servidor retorna uma file handle
de acesso a arquivos, que permite que clientes leiam e
escrevam em arquivos e/ou diretrios

Protocolos so baseados
em RPC, e independentes de
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 25/29
sistema

Bibliografia

Protocolo que implementa acesso a arquivos e diretrios


manipular diretrios
ler de arquivos e escrever em arquivos
acessar atributos de arquivos

Client computer
NFS
Application
program Client

Client computer

A maioria das chamadas do sistema para arquivos so


implementadas pelo NFS, a excesso de open e close...
Razo para isso: NFS stateless
lookup ao invs de open; lookup retorna uma handle;
mensagem de read contm handle, offset e nmero de bytes
(mensagens auto-contidas)
mais simples e confivel, mas, por exemplo, no consegue
implementar travamento de arquivos

NIS - Network Information Server (ex yellow-pages):


usado para autenticao,
armazena
paresDistribudo
(chave,
30/11/2003 - Prof. Gerson
Cavalheiro- Processamento
2003/2valor)
- Computao Unisinos 26/29

Application
program

Application
program

Server computer

Application
program

Kernel

UNIX
system calls
UNIX kernel

Virtual file system

Operations

Operations

on local files

on

UNIX
file
system

Other
file system

NFS Network File System

NFS
client

remote files

Virtual file system

NFS
server

NFS
Client

UNIX
file
system

NFS
protocol
(remote operations)
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 27/29

Copyright

Leituras adicionais
G. Coulouris, J. Dollimore, T. Kindberg, Distributed Systems
Concepts and Design
NFS e Andrew (Cap. 8)
Coda (Cap. 14) - mantm rplicas persistentes de arquivos
visando confiabilidade, disponibilidade e trabalho
desconectado
Tiger Video File Server (Cap. 15) - entrega de streams em
tempo real para grande nmero de clientes
RFCs que descrevem design do sistema e protocolos, NFS v3
e v4 (RFC3010bis, out 2002)

Este material copyright de Marinho Barcellos e da Unisinos. Ele pode ser livremente empregado com fins
educacionais, desde que:
(1) esta nota seja mantida;
(2) verses modificadas do material sejam prontamente encaminhadas de volta ao "primeiro autor", Prof. Marinho
Pilla Barcellos, em marinho@exatas.unisinos.br;
(3) verses deste material continuem sendo distribudas em formato livre, aberto (no deve exigir que usurios
adquiram solues proprietrias para abrir os arquivos);
(4) a livre distribuio do material modificado seja permitida de acordo com as clusulas aqui colocadas, por seus
autores, incluindo-se referncias aos mesmos como "autores adicionais".
Os termos dessa licena visam permitir a distribuio de material didtico de forma livre, em formato original, aberto e
no-proprietrio. Similarmente ao Software Livre, objetiva-se ao mesmo tempo: preservar a autoria (inicial e
contribuies); e permitir que professores e alunos desta e outras Instituies de Ensino Superior faam uso do
material, agregando valor ao mesmo nesse processo.
O material didtico composto por slides, textos, etc. foi preparado com OpenOffice em um sistema GNU/Linux.

Andrew Tanenbaum, Distributed Operating Systems


G. Coulouris, J. Dollimore, T. Kindberg, Distributed
Systems Concepts and Design
30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 28/29

Autores Adicionais: Nome/Instituio, ...

30/11/2003 - Prof. Gerson Cavalheiro- Processamento Distribudo 2003/2 - Computao Unisinos 29/29

Processamento Distribudo 2003/2 - Prof. Gerson Cavalheiro- Unisinos - 5

Вам также может понравиться