Sei sulla pagina 1di 3
Capitulo 12 Sistemas de Arquivos Distiibuidos 527. As operagdes UNIX sao baseadas em um modelo de programagao no qual algumas informagées sobre o estado do arquivo so armazenadas pelo sistema de arquivos para cada programa em execugao. Elas consistem, entre outros, em uma lista de arquivos corentemente abertos ¢ um. ponteiro de leitura e escrita que fornece a posigao dentro do arquivo na qual ser aplicada a proxima operagao de leitura ou de escrita sistema de arquivos € responsdvel por realizar 0 controle de acesso para os ar~ quivos. Em sistemas de arquivos locais, como o UNIX, ele faz isso quando cada arquivo € aberto, verificando os direitos permitidos & identidade do usustio na lista de controle de acesso em relago ao modo de acesso solicitado na chamada de sistema open. Se os direitos corresponderem a0 modo, o arquivo sera aberto, € 0 modo € armazenado nas informagées de estado de arquivo aberto. 12.1.2 Requisitos do sistema de arquivos distribuido Muitos dos requisitos e das armadilhas em potencial no projeto de servigos distribuidos foram detectados pela primeira vez no desenvolvimento inicial dos sistemas de arquivos distribufdos. Inicialmente, eles ofereciam transparéncia de acesso e de localizacao; sur- giram requisitos de desempenho, escalabilidade, controle de concorréncia, tolerancia a falhas e seguranga, ¢ eles foram atendidos em fases subsequentes de desenvolvimento. ‘Vamos discutir esses ¢ outros requisitos nas subsegdes a seguir. Transparéncia + O servigo de arquivo normalmente é o mais usado em uma intranet; por- tanto, sta funcionalidade e seu desempenho sZo criticos. O projeto do servigo de arquivos deve suportar muitos dos requisitos de transparéncia dos sistemas distribuidos, identificados na Secio 1.5.7. O projeto deve contrabalancar a flexibilidade e a escalabilidade derivadas da transparéncia, com a complexidade ¢ o desempenho do sofware. As seguintes formas de transparéncia sio parcialmente, ou totalmente, tratadas pelos servigos de arquivos atuais Transparéncia do acesso: os programas clientes nao devem conhecer a distribui- ¢40 de arquivos. Um tinico conjunto de operagbes € fornecido para acesso a arqui- vos locais e remotos. Os programas escritos para operar sobre arquivos locais si0 capazes de acessar arquivos remotos sem modificagao. Transparéncia de localizagdo: os programas clientes devem ver um espago de no- mes de arquivos uniforme. Os arquivos, ou grupos de arquivos, podem ser desloca- dos de um servidor a outro sem alteragao de seus nomes de caminho, e os programas de usuério devem ver o mesmo espago de nomes onde quer que sejam executados. Transparéncia de mobitidade: ‘nem os programas clientes, nem as tabelas de admi- nistragao de sistema nos computadores clientes precisam ser alterados quando os arquivos s40 movidos. Isso permite a mobilidade do arquivo — arquivos ou, mais comumente, conjuntos ou volumes de arquivos podem set movidos, ou pelos admi- nistradores de sistema ou automaticamente. Transparéncia de desempenho: os programas clientes devem continuar a funcionar satisfatoriamente, enquanto a carga sobre o servigo varia dentro de um intervalo especificado. Transparéncia de mudanga de escala: 0 sexvigo pode ser expandido de forma pau- latina, para lidar com uma ampla variedade de cargas e tamanhos de rede. ‘Atualizagées concorrentes de arquivos + As alteragdes feitas em um arquivo por um nico cliente nao devem interferir na operagao de outros clientes que estejam acessando, ou 528 Sistemas Distribuidos, Conceitos ¢ Projeto alterando, © mesmo arquivo simultaneamente, Esse € conhecido problema do controle de concorréncia, discutido em detalhes no Capitulo 16. Em muitos aplicativos, a neces- sidade de controle de concorréncia para acesso a dados compartilhados & amplamente aceita, e so conhecidas técnicas para sua implementago, mas elas sao dispendiosas. A maior parte dos servigos de arquivo atuais segue os padrGes UNIX modemnos, fornecendo travamento (Jocking) em nivel de arquivo ou em nivel de registro. Replicagao de arquivos + Em um servico de arquivos que suporta replicago, um arquivo pode ser representado por varias c6pias de set contetido em diferentes locais. Isso tem duas van- tagens — permite que varios servidores compartilhem a carga do fornecimento de um servigo para clientes que acessam o mesmo conjunto de arquivos, melhorando a escalabilidade do ser- vvigo, e melhora a tolerancia a falhas, permitindo que, em caso de falhas, os clientes localizem outro servidor que contenha uma e6pia do arquivo. Poucos servigos de arquivo suportam re- plicago completa, mas a maioria suporta o armazenamento de arquivos, ou de porgdes de ar- quivos, em caches locais, que € uma forma limitada de replicagao. A replicagao de dados seré discutida no Capitulo 18, que inclui uma descrigao do servigo de arquivos replicado Coda. Heterogeneidade do hardware e do sistema operacional + As interfaces de servigo devem ser definidas de modo que o software cliente ¢ servidor possa ser implementado para diferentes sistemas operacionais e computadores. Esse requisito € um aspecto importante de sistemas abertos. Tolerancia a falhas + Por ser parte essencial nos sistemas distribufdos, ¢ essencial que 0 servigo de arquivo distribufdo continue a funcionar diante de falhas de clientes e servi- dores. Felizmente, um projeto moderadamente tolerante a falhas é fécil para servidores simples, Para suportar falhas de comunicagao transientes, 0 projeto pode ser baseado na semintica de invocagao no maximo uma vez (veja a Segao 5.3.1). Ou, entdo, ele pode usar ‘uma seméntica mais simples, como pelo menos uma vez, com um protocolo de servidor projetado em termos de operacGes idempotentes, garantindo que pedidos duplicados nio resultem em atualizagGes invélidas nos arquivos. Os servidores podem ser sem estado (sta- teless), para que aps uma falha o servigo possa ser reiniciado ¢ restaurado sem necessida- de de recuperar o estado anterior. A tolerdncia a falha de desconexao, ou de servidor, exige replicagao de arquivo, a qual ¢ mais dificil de obter (¢ seré discutida no Capitulo 18), Consisténcia + Os sistemas de arquivos convencionais, como o fornecido no UNIX, ofe- recem semantica de atualizagdo de cépia tinica (one-copy). Isso se refere a um mode- lo de acesso concorrente a arquivos, no qual 0 contetido do arquivo visto por todos os processos que estao acessando, ou atualizando determinado arquivo, é aquele que eles veriam se existisse apenas uma c6pia do contetido do arquivo. Quando os arquivos sio replicados, ou armazenados em cache, em diferentes sites, hé um atraso inevitével na propagacao das modificagées feitas em um site para os outros sites que contém cépias, ¢ isso pode resultar em certo desvio da semantica de e6pia inica. Seguranga + Praticamente todos os sistemas de arquivos fornecem mecanismos de con- trole de acesso baseados no uso de listas de controle de acesso. Nos sistemas de arquivos distribufdos, h& necessidade de autenticar as requisigdes dos clientes para que o controle de acesso no servidor seja baseado nas identidades corretas de usuério e para proteger 0 contetido das mensagens de requisi¢ao-resposta com assinaturas digitais e (opcionalmen- te) criptografia de dados secretos. Vamos discutir 0 impacto desses requisitos em nossas. descrigdes de estudo de caso. Eficiéncia Um servigo de arquivo distribuido deve oferecer recursos que tenham pelo menos o mesmo poder e generalidade daqueles encontrados nos sistemas de arquivos Capitulo 12 Sistemas de Arquivos Distiibuides 529 convencionais, ¢ deve obter um nivel de desempenho compardvel. Birrell e Needham [1980] expressaram seus objetivos de projeto para o CFS (Cambridge File Server) nos seguintes termos: Desejarfamos ter um servidor de arquivos simples, de baixo nivel, para compartilhar um recurso dispendioso, a saber, o disco, que nos deixasse livres para projetar um. sistema de arquivos mais apropriado para um cliente em particular, ao mesmo tempo em que disponibilizasse um sistema de alto nivel compartilhado entre os clientes. ‘A queda no custo do armazenamento em disco reduziu a importancia do primeiro obje- tivo, mas a percepeao da necessidade de uma gama de servigos tratando dos requisitos dos clientes com diferentes objetivos permanece e pode ser melhor resolvida por meio de uma arquitetura modular, do tipo esbogado anteriormente. ‘As técnicas usadas para a implementagio de servigos de arquivos representam uma parte importante do projeto de sistemas distribufdos. Um sistema de arquivos distribuido deve fornecer um servigo que seja compardvel aos sistemas de arquivos locais (ou melhor que eles), em termos de desempenho e confiabilidade. Ele deve ser conveniente para administrar, com operagdes ¢ ferramentas que permitam aos administradores de sistema instalé-1o ¢ operi-lo adequadamente. 12.1.3 Estudos de caso Construitemos um modelo abstrato para um servigo de arquivos, para aluar como um exem- plo introdutério, separando as preocupagées com a implementacio e fornecendo um modelo simplificado, Descreveremos 0 Sun Network File System com alguns detalhes, recorrendo 20 nosso modelo abstrato mais simples para esclarecer sua arquitetura. O Andrew File S; tem serd descrito em seguida, fornecendo uma visio de um sistema de arquivos distribuido que adota uma estratégia diferente para escalabilidade e manutengao da consisténcia Arquitetura do servigo de arquivos + Trata-se de um modelo abstrato de arquitetura que serve tanto para o NFS como para o AFS. Ele € baseado em uma divisdo de responsabi- lidades entre trés médulos ~ um médulo cliente, que simula uma interface de sistema de arquivos convencional para programas aplicativos, e dois médulos servidores que efetu- am operagdes em diretérios e em arquivos. A arquitetura € projetada para permitir uma implementagao sem estado (stateless) dos médulos servidores. Sun NFS + © NFS (Network File System) da Sun Microsystem foi amplamente adotado na indistria e nos ambientes académicos, desde sua introdugao, em 1985. O projeto e desenvolvimento do NFS foram feitos pelo pessoal da Sun Microsystems, em 1984 [San- dberg er al. 1985; Sandberg 1987, Callaghan 1999]. Embora varios servigos de arquivo distribuidos ja tivessem sido desenvolvidos, e usados em universidades e laboratérios de pesquisa, o NES foi o primeiro servigo de arquivo projetado como um produto. O projeto e aimplementacdo do NES obtiveram sucesso tanto técnico como comercial. Para estimular sua adogo como padrio, as definigdes das principais interfaces foram colocadas em dominio piblico [Sun 1989], permitindo que outros fomecedores produzissem implementagdes, ¢ o c6digo-fonte de uma implementagao de referéncia foi disponibilizado, sob licenga, para outros fabricantes de computadores. Atwalmente, ele é suportado por mui- tos fornecedores, e 0 protocolo NFS (versio 3) é um padraio da Internet, definido no RFC 1813 [Callaghan et al, 1995]. O livto de Callaghan sobre o NFS [Callaghan 1999] € uma ex- celente fonte sobre 0 projeto e desenvolvimento do NFS e a respeito de (6picos relacionados. O NFS fornece acesso transparente a arquivos remotos para programas clientes executando em UNIX ¢ outros sistemas operacionais. O relacionamento cliente-servidor 6 simétrico: cada computador em uma rede NFS pode atuar como cliente e como servi-

Potrebbero piacerti anche