Sistemas Distribuídos Parte 09
Sistemas de Arquivos Distribuídos Conteúdo adaptado a partir do material dos professores professores Luís Fernando Friedrich (Universidade Federal de Santa Catarina) e
Sistema de $r%ui $r%uivo vo •
"arte importante dos sistemas operacionais& pois ele fornece' iso abstrata dos dados persistentes Controle sobre sobre o servi*o de nomes $cesso + ar%uivos e sua or,ani-a*o ,eral. –
–
–
– 2 –
Sistema de $r%ui $r%uivo vo •
Conceitos –
$r%uivo •
•
•
–
Uma se%uencia de b/tes. Um sistema especi0co de uma estrutura interna. $tributos 1amanho& amanh o& acesso& a cesso& datas& da tas& dono.
Diret2rio Diret2rio (ar%uivo especial) •
•
Mapeia os nomes para os identi0cadores. identi0cadores. "ode conter subdiret2rios (arvore). – 3 –
Sistema de $r%ui $r%uivos vos Distribuído •
3"ermite aos pro,ramas arma-enarem e acessarem ar%uivos remotos e4atamente como se fossem locais& possibilitando %ue os usu5rios acessem ar%uivos a partir de %ual%uer computador em uma rede. 6 desempenho e a se,uran*a no acesso aos ar%uivos arma-enados em um servidor devem ser compar5veis aos ar%uivos arma-enados em discos locais.7 –
8Coulourus& 9.: Dollimore& ;.: ! Cap ?. – 4 –
S$D @ Sistemas de $r%uivos $r%uivos Distribuídos •
6ferecem' –
–
–
•
$cesso remoto aos ar%uivos arma-enados em um servidor $cesso aos dispositivos de #AS de outras m5%uinas Controle de verso e restaura*o de c2pias de de se,uran*a
6s sistemas de ar%uivos distribuídos devem prover' –
–
–
–
Con0abilidade Bedundncia Disponibilidade #scalabilidade – 5 –
"or %ue adotar S$D •
–
–
–
•
–
–
–
Compartilhamento de recursos E sempre um desa0o. Clientes dispersos "onto de vista centrali-ado Mobilidade e e4ibilidade
S$D oferece um es%uema de compartilhamento bem estruturado. #spa*o em disco. $dministra*o compartilhada. Cada ma%uina no tem %ue arma-enar ar%uivos %ue ir5 acessar. acessar. – 6 –
S$D ! 6 %ue se busca •
Tolerância a Falhas –
•
Se um servidor cair ou 0car fora do ar ou da rede& o sistema siste ma de ar%uivos no pode p ode perder informa*Ges e nem 0car indisponível total ou parcialmente parcialmente
Acesso Concorrente –
•
–
5rios usu5rios podem acessar v5rios ar%uivos& ou os mesmos ar%uivos& sem sofrer s ofrer danos& d anos& perda de performance ou %uais%uer outras restri*Ges
Replicação de Arquivos Com esta funcionalidade& a con0an*a e a e0ciHncia do servi*o de ar%uivos E aumentada si,ni0cativamente
S$D @ Be%uisitos •
1ransparHncia 1ransparHncia de... –
–
–
–
–
Acesso' clientes tratam ar%uivos como locais Localização' espa*o de nomes uniforme e sem mudan*a %uando %ua ndo ar%uivos mudarem Concorrência' opera*Ges 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 car,a
– 8 –
S$D @ Be%uisitos •
Usabilidade depende de...
–
Heteroeneidade de H! e "! •
–
Interfaces de0nidas de forma %ue possam ser implementadas por v5rios JK e SK
#scala$ilidade •
Servi*o deve ser e4tensível para acomodar mudan*as de escala do SD
•
Se escalabilidade envolver muitos hosts...
–
Transparência de replicação •
–
$r%uivos podem estar 0sicamente replicados e cliente i,nora i,nor a esse fato
Transparência de miração •
$r%uivos podem mudar de lu,ar e isso no deve alterar os clientes – 9 –
S$D @ Be%uisitos –
# ainda... •
Compartilhamento –
–
•
Arquivos imut%veis& –
–
–
•
1oda 1oda opera*o em um ar%uivo deve ser visível visíve l a todos processos Semntica de sesso' nenhuma modi0ca*o E visível aos outros processos atE %ue o ar%uivo se=a fechado. Modi0ca*Ges no so possíveis: Simpli0ca compartilhamento e replica*o: Modi0ca*Ges ocorrem apenas em diret2rios
Transaç'es& –
–
1odas 1odas as modi0ca*Ges tHm tH m a propriedade do tudo@ou@nada tudo@ou@ nada (atomicidade): Seriali-a*o – 10 –
S$D ! Servi*os 5sicos •
"erviço de (omes Distri$u)do –
•
"erviço de Arquivos Distri$u)do –
–
•
6 servi*o de nomes cuida de indicar a locali-a*o de um determinado ar%uivo dado o seu nome ou caminho. Bespons5vel Bespons5vel por fornecer opera*Ges sobre os ar%uivos %ue compGe o sistema. 6s ar%uivos podem ser arma-enados arma-enados de diferentes formas& dependendo do seu tipo e uso.
"erviço de Diret*rios Distri$u)do –
–
Bespons5vel Bespons5vel por manter a or,ani-a*o or,ani-a*o dos ar%uivos arma-enados no sistema. #le fornece fornece uma interface interface para %ue os usu5rios usu5rios possam arran=ar seus ar%uivos num formato hier5r%uico& %ue E estruturado em diret2rios diret2rios e subdiret2rios. – 11 –
S$D ! $spectos de Implementa*o •
Componentes –
"ara preencher os re%uisitos re%uisitos e implementar servi*os& a=uda bastante se o S$ for implementado com trHs componentes' Servi*o de ar%uivo b5sico Servi*o de diret2rio diret2rio M2dulo de cliente uem fa- o %ue •
•
•
–
– 12 –
S$D ! $spectos de Implementa*o •
Servi*o de ar%uivos b5sico –
–
Implementa opera*Ges nos ar%uivos $r%uivos so referenciados por seus FIDs (File Ids) FIDs devem ser únicos no SD Cria*o de um novo ar%uivo 9era um FID e devolve ao re%uisitante •
–
•
– 13 –
S$D ! $spectos de Implementa*o •
Servi*o de Diretorio Diretorio –
Bespons5vel por converter nomes te4tuais em
FIDs –
Diret2rio Con=unto de FIDs e nomes te4tuais Cliente do servi*o de ar%uivo b5sico $r%uivos de diret2rio so ar%uivos& e ,erenciados ,erenciados pelo S$ S $ Jierar%uia de diret2rios •
–
•
•
– 14 –
S$D ! $spectos de Implementa*o •
Modulo Cliente –
Chamadas de sistema para manipula*o de ar%uivos Criar& ler& escrever... $rma-ena locali-a*o na rede do servi*o de diret2rio e de ar%uivo b5sico "ode ,erenciar cache local •
–
–
– 15 –
S$D ! $spectos de Implementa*o •
Interface do Servi*o de $r%uivo asico (S$) –
$spectos dessa interface o tem openAclose: manipula usando I$ (identi0cador de ar%uivo) Servidor sem estado (stateless) Clientes so respons5veis por saber onde esto lendoAescrevendo o caso de falha& depois do retorno retorno no h5 procedimento especial •
•
–
–
– 16 –
S$D ! $spectos de Implementa*o •
$penas relembrando... Stateless –
•
Servidor no ,uarda informa*o sobre clientes nem sobre ar%uivos (I$s) Besponsabilidade do cliente em manter o estado –
–
Stateful •
•
MantEm informa*o de %ual cliente abriu %ual ar%uivo& e em %ue bloco est5 Be%uisi*Ges so atendidas mais r5pido& pois no precisa locali-ar o I$ do ar%uivo – 17 –
S$D ! $spectos de Implementa*o •
9era*ao de I$s –
Devem ser ,erados de forma única no espa*oAtempo e difícil de for=ar •
–
$r%uivo removido& I$ descartado
I$ no E endere*o •
o contEm informa*Ges sobre locali-a*o do ar%uivo
– 18 –
S$D ! $spectos de Implementa*o •
9era*ao de I$s –
Como ,arantir unicidade e inte,ridade Usar um espa*o de números pouco populoso Unicidade •
•
–
•
I$ N ID do ,rupo O inteiro (no reutili-5vel)
! Inte,ridade $crescentar $crescentar uma parte aleat2ria ao inteiro 1ornar 1ornar a distribui*o de I$s v5lidos esparsa "arte aleat2ria inacessível ina cessível aos clientes
–
–
–
– 19 –
S$D ! $spectos de Implementa*o •
Modos de $cesso –
Controle Controle de acesso tem por base o I$ •
•
–
# ar%uivo compartilhado •
–
Uma chave ou 3capacidade7 (capabilit/) S2 fornecer I$ a %uem tem direito de acesso Dono precisa de direitos especiais
Incorporar seletividade na capacidade do I$ •
Incluir campo de permisso permisso no I$ proposto proposto – 20 –
S$D ! $spectos de Implementa*o •
Modos de $cesso –
its adicionais indicando permisso •
•
•
•
–
–
Leitura #scritaAtruncamento Bemover 6bterAde0nir permissGes
a cria*o& usu5rio pode tudo Durante LooPup (busca)& I$ retorna apenas com permissGes concedidas ao usu5rio – 21 –
S$D ! $spectos de Implementa*o •
Modelos de $r%uivos –
$r%uivos estruturados e no@estruturados •
–
$r%uivos estruturados (se%uHncia ordenada de re,istros) so raramente utili-ados& podendo ser inde4ado ou no@inde4ado. $ maioria dos S6Qs modernos utili-am ar%uivos no@estruturados.
$r%uivos modi0c5veis e no@modi0c5veis •
6 modelo mais usado E o modi0c5vel. $l,uns sistemas atuais utili-am o modelo no@ modi0c5vel %ue permite um compartilhamento consistente e assim facilita cachin, e rEplicas. – 22 –
S$D ! $spectos de Implementa*o •
Semntica de Compartilhamento –
uando h5 mais de um processo lendo eAou escrevendo em um ar%uivo •
•
–
Controle de concorrHncia (oPR) Semntica de compartilhamento
uatro tipos b5sicos de semntica •
•
•
•
Semntica UI Semntica de sesso $r%uivos imut5veis 1ransa*Ges 1ransa*Ges – 23 –
S$D ! $spectos de Implementa*o •
Semntica UI –
Um read %ue se,ue um Trite vH o valor escrito pelo Trite •
•
–
6bri,atoriedade de ordena*o total Sempre retorna o valor mais atual
Implementa*o f5cil •
Servidor central %ue processa re%uisi*Ges na ordem (l2,ica)
– 24 –
S$D ! $spectos de Implementa*o •
–
–
–
–
Semntica de sesso Bela4amento na semntica UI Mudan*as em um ar%uivo aberto so visíveis apenas ao processo %ue modi0ca o ar%uivo a r%uivo uando o ar%uivo E fechado& as mudan*as so visíveis para outros processos. 6 ar%uivo fechado E enviado de volta para o servidor #st5 errado •
•
o $mplamente implementado – 25 –
S$D ! $spectos de Implementa*o •
Semntica de sesso (continua*o) •
•
Servidor centrali-ado tra- problemas p roblemas de ,ar,alo e ponto central de falha 9ar,alo pode ser aliviado com uso de caches nos clientes Cliente@ lH o ar%uivo (coloca no cache) e altera al tera Cliente@V lH o ar%uivo verso anti,a do ar%uivo 6 %ue acontece se dois ou mais clientes esto modi0cando um mesmo ar%uivo em suas caches 6 resultado 0nal depende do último close "ode@se usar uma re,ra arbitr5ria para decidir –
–
•
–
–
– 26 –
S$D ! $spectos de Implementa*o •
Semntica de ar%uivos no modi0cados •
•
"or %ue se preocupar $r%uivos no podem ser alterados –
•
# para alterar um ar%uivo –
–
•
$penas B#$D e CB#$1# enhum ar%uivo pode& ser alterado& mas pode@se criar um novo de forma atWmica $r%uivos so imut5veis& mas diret2rios no
"roblema "roblema ' se dois clientes dese=am dese =am trocar um ar%uivo no mesmo tempo –
Usa@se o último ou adota@se %ual%uer re,ra no determinística – 27 –
S$D ! $spectos de Implementa*o •
Semntica de transa*o •
1ratar 1ratar opera*Ges de forma forma atWmica Uma transa*o 1odas 1odas modi0ca*Ges nos ar%uivos so delimitados por um e,in e um #nd transaction Dois processos ao mesmo tempo 1ransa*Ges 1ransa*Ges permitem permitem concorrHncia concorrHncia Sistema fa- seriali-a*o –
–
•
–
–
– 28 –
S$D ! $spectos de Implementa*o
– 29 –
S$D ! Uso de Mem2ria Cache •
a mem2ria do servidor –
–
–
–
•
a mem2ria do cliente –
–
•
•
•
#limina transferHncia deApara disco em cada acesso Unidade de cache' ar%uivos inteiros: blocos uando a cache est5 cheia Descartar informa*o mais anti,a 1ransparente 1ransparente para clientes Sem problemas com consistHncia ante suas re%uisi*Ges Bedu- volume de acesso via rede #s%uemas'
Cache direto no processo do usu5rio Cache no núcleo do S.6. Cache em um processo separada a nível de usu5rio – 30 –
S$D ! Uso de Mem2ria Cache •
MEtodos de consistHncia de cache !rite throuh –
•
6pera*o de escrita E propa,ada instantaneamente –
•
•
6pera*Ges de escrita so propa,adas propa,adas em bloco (ap2s tempo 4). Melhor desempenho& mas risco de ambi,uidade na semntica (depende de timin,84>) –
•
•
!rite on close&
Semntica de sesso e%uivalente a sistemas centrali-ados centrali-ados –
•
Dela+ed ,rite
Centralized control
Semntica UI 1oda opera*o pode ser vista instantaneamente "erformance e escalabilidade comprometidas:
– 31 –
S$D @ Beplica*o •
SDs ,eralmente oferecem al,uma forma de replica*o de dados –
•
"or %ue –
–
–
•
Múltiplas c2pias do mesmo ob=eto $umentar con0abilidade @ a %uebra de um servidor no implica na perda de dados "ermitir "ermitir acesso mesmo na caso de falha mesmo %ue um servidor no este=a disponível o acesso continua Diviso de car,a entre servidores espalhar a car,a de trabalho em v5rios servidores
"rincipal problema' transparHn tr ansparHncia cia – 32 –
S$D @ Beplica*o •
Beplica*o e4plícita –
–
"ro,ramador "ro,ramador fa- todo o 3trabalho su=o7 Servi*o de diret2rio pode permitir múltiplos I$s por ar%uivo Becupera todos no looPup uando for manipular& tenta se%uencialmente um por um dos I$s& atE conse,uir Funciona& mas E muito trabalhoso& e nada transparente •
•
–
– 33 –
S$D @ Beplica*o •
Beplica*o atrasada –
–
$penas uma c2pia E feita em um servidor 6 servidor E respons5vel por... "ropa,ar atuali-a*Ges Selecionar outro servidor para atender& se ele no puder •
•
– 34 –
S$D @ Beplica*o •
Beplica*o em ,rupos –
6pera*o de escrita E feita ao mesmo tempo em todos os n2s •
–
Multicast atWmico (tudo@ou@ nada)
$trasada 4 ,rupo •
•
Um servidor 4 ,rupo Se,undo plano 4 atWmica – 35 –
S$D ! #4emplos •
•
•
•
•
•
•
FS 9FS(9lobal FileS/stem) "FS (parallel virutal 0le s/stem) $FS ($ndreT FileS/stem) 9M$ILFS DFS C6D$ (Constant Data $vailabilit/) – 36 –