Você está na página 1de 8

Sistemas de Arquivos Distribudos: Networking File System (NFS) e Andrews File System (AFS)

Elias Lopes liclopes@gmail.com lbs.topcities.com 1. Introduo Como o sistema de arquivos distribudo a camada de abstrao que recebe a maior quantidade de dados sobre o ambiente como um todo dentre todas as outras camadas (sejam fsicas ou lgicas), ela acaba reunindo valiosas informaes que podem ajudar a montar estratgias de distribuio de carga para melhor desempenho sob alta demanda. Devido s vantagens de se usar sistemas de arquivos mais velozes e confiveis, vrios projetos foram iniciados e muitos produtos foram lanados. Infelizmente nem todas as solues foram desenvolvidas para fornecerem todas as qualidades desejveis em um sistema de arquivos. Assim, surge a necessidade de mostrar que j existem solues viveis, quais os problemas que elas podem resolver, usos mais comuns e servios que elas disponibilizam. O artigo est organizado da seguinte forma: a seo 2 apresenta uma abordagem geral sobre os Sistemas de Arquivos Distribudos, descrevendo seus vrios conceitos e representaes. Na seo 3, so relacionados as implementaes, caractersticas e utilizao que os Network File System (NFS) possuem. J na seo 4, so relacionados as implementaes, caractersticas e utilizao que os Andrew File System (AFS) possuem. Na seo 5, mostrada uma tabela de comparao entre o NFS e o AFS. As concluses so apresentadas na seo 6. 2. Sistema de Arquivos Distribudos Esses sistemas so responsveis por: organizao, armazenamento, recuperao, nomeao, compartilhamento, proteo, autorizao e tipo de acesso aos arquivos . Fornecendo: Conjunto de operaes para programador (API, desconhecimento dos detalhes) Chamadas do sistema relacionadas: open, close, read, write, dup, lseek, chmod, umask. Estrutura de Dados (i-node): armazena timestamp de criao, de alterao, de acesso, tamanho, proprietrio e lista de acesso rwx (ready-write exclusive) para Ugo. Define-se sintaxe para os arquivos (caracteres invlidos, extenso, etc.). 2.1. Diretrio Tipo especial de arquivo que fornece mapeamento entre nome textual e identificador interno. Pode-se incluir nome de outros diretrios (atualmente conhecido como pastas). Possui a hierarquia de estrutura em rvore, formando os pathnames cujo diretrio raiz global representado por /. As rvores dispem das seguintes operaes com diretrio: criar, remover, nomear, renomear e mover. Havendo tambm a possibilidade de criar vnculos (software, hardware e links) com outros diretrios.

2.2. Sistema de Arquivos Distribudo: O principal objetivo do DFS (Distributed File System) proporcionar facilidade ao compartilhamento de informao (impacto global em sistemas distribudos SDs) Esses tipos de servios devem oferecer facilidades semelhantes aos sistemas convencionais com nvel comparvel de desempenho. Possuem dois componentes distintos para lidar com arquivos ou diretrios. Sistema de Arquivo: operao em arquivos individuais (leitura, escrita, concatenao, remoo) Servio de Diretrio: criao e gerncia de diretrios, manipulao de arquivos em diretrios. Existem dois modelos de Projeto do Servio de Arquivos: upload/download (apenas leitura e escrita) e acesso remoto. Upload/Download: simplicidade, o cliente precisa dispor do mesmo espao do servidor, causando overhead em alteraes mnimas. Acesso Remoto: amplo nmero de operaes, requer pouco espao nos clientes por isso tornou-se um modelo consagrado O Projeto do Servio de Arquivos deve suportar parcial ou completamente os requisitos de transparncia. 2.3. Nomeao e Transparncia A nomeao um mapeamento entre objetos lgicos e fsicos. Por exemplo, usurios lidam com objetos lgicos de dados representados por nomes de arquivos, enquanto que o sistema manipula blocos fsicos de dados, armazenados em trilhas de discos. Geralmente, um usurio faz referncia a um arquivo por meio de um nome textual. Este mapeamento um identificador numrico de baixo nvel que, por sua vez, mapeado em blocos de disco. Esse mapeamento em vrios nveis fornece aos usurios uma abstrao de um arquivo que oculta os detalhes de como e onde no disco o arquivo est de fato armazenado. Em um DFS transparente, uma nova dimenso adicionada abstrao: a de ocultar o local na rede onde o arquivo se encontra. Em um sistema de arquivos convencional, o intervalo de mapeamento de nomeao um endereo em um disco. Esse intervalo aumentado para incluir a mquina especfica em cujo disco o arquivo est armazenado. Tambm existe a possibilidade de replicao de arquivos. Dado um nome de arquivo, o mapeamento retorna um conjunto das posies das rplicas desse arquivo. Nessa abstrao, as existncias de vrias cpias e suas posies ficam ocultas. 2.4. Estruturas de Nomeao Existem duas noes correlatadas no contexto de mapeamento de nomes em um DFS que precisam ser diferenciadas: Transparncia de posio: o nome de um arquivo no revela qualquer indcio da posio do arquivo no armazenamento fsico. Independncia de posio: o nome de um arquivo no precisa ser alterado quando muda da posio do arquivo no armazenamento fsico. As duas definies so relativas ao nvel de nomeao discutida anteriormente, j que os arquivos tm nomes diferentes em nveis diferentes (ou seja, nomes textuais no nvel de usurio e identificadores numricos no nvel do sistema). Um esquema de nomeao independente de posio um mapeamento dinmico, j que pode mapear o mesmo nome de arquivo em posies diferentes em dois momentos diferentes. Na prtica, a maioria dos DFS atuais fornece um mapeamento esttico e transparente em

posio para os nomes no nvel de usurio. Esses sistemas, no entanto, no fornecem suporte migrao de arquivos; ou seja, alterar a posio de um arquivo automaticamente impossvel. Portanto, a noo de independncia de posio irrelevante para esses sistemas. Os arquivos so associados de forma permanente a um conjunto especfico de blocos de disco. Apenas o Andrew File System e alguns sistemas de arquivos experimentais suportam a independncia de posio e a mobilidade de arquivos. 2.5. Semntica do Compartilhamento de Arquivos Quando dois ou mais usurios compartilham o mesmo arquivo, necessrio definir a semntica de leitura e escrita precisamente. Se o sistema possui um nico processador, ele forado a uma ordenao em todas as operaes e sempre retorna o valor mais recente (chama-se semntica UNIX). 2.5.1. Semntica UNIX em Sistemas Distribrudos Em um sistema distribudo a semntica UNIX pode ser atingida facilmente se existe um nico servidor de arquivos e os clientes no guardam arquivos em cache. Todas as leituras e escritas vo diretamente para o servidor os quais processam todas elas de maneira estritamente seqencial. Esta abordagem garante a semntica UNIX. Na prtica, entretanto, no interessante ter todas as chamadas para um nico servidor. Esse gargalo s vezes resolvido com caching dos arquivos mais utilizados: se um cliente modifica localmente um arquivo na cache e pouco tempo depois um outro cliente l do servidor, o segundo cliente obter um arquivo obsoleto. Uma maneira de solucionar propagar todas as trocas aos arquivos de cache imediatamente. 2.5.2. Semntica de Seo Uma soluo alternativa deixar a semntica do compartilhamento de arquivos mais flexvel. Ao invs de requerer que um read veja todos os efeitos dos writes anteriores, podem instalar uma nova regra: trocas a um arquivo aberto so inicialmente visveis somente ao processo que modificou o arquivo. Problema 1: o que acontece se dois ou mais clientes esto com o mesmo arquivo na cache e o modificando ao mesmo tempo? O resulto final depende de quem fecha por ltimo. Problema 2: no Unix, est associado com cada arquivo aberto um ponteiro que indica a posio corrente no arquivo. read pega o dado comeando na posio dada e o write deposita o dado na mesma. Este ponteiro compartilhado por todos os processos que abrem o arquivo e por todos os filhos. Com a semntica de seo se um filho roda em uma mquina diferente, esse compartilhamento no atingido. Por exemplo: run > out Onde run um script que executa dois programas, a e b, um depois do outro. Se ambos os programas produzem sada, esperado que a sada produzida por b ir diretamente seguir a sada de a seguida por out. O seu funcionamento ocorre da seguinte forma: quando b iniciado, recebe o ponteiro de arquivo de a, o qual compartilhado pelo shell e pelos dois processos. Desta maneira, o primeiro byte que b escreve segue diretamente o ltimo byte escrito por a... O que acontece quando dois processos tentam substituir o mesmo arquivo ao mesmo tempo? A semntica de seo escolhe um deles para executar primeiro. 2.6. Utilizao de Cache: Existem quatro locais em dois grupos para armazenamento de dados: memria ou disco

do servidor e memria ou disco do cliente. Utilizando apenas disco do servidor: poder ocorrer de desempenho. Assim o cache aperfeioa este acesso mantendo os arquivos mais acessados na memria do servidor sendo assim precisa de algoritmo para escolher o que manter. O uso de cache no servidor implementa a transparncia, porm ainda h problema de acesso a rede. Sempre necessrio atualizar o cache sempre que houver um Put-Block pois gera um problema de coerncia do cache onde dirty flag indica desatualizao da cache; blocos na cache devem ter timestamp para quando memria estiver cheia o LRU (Least Recent Used) entra em ao e descarta dados antigos. Entre a cache na memria do servidor ou no disco do cliente, normalmente prefere-se no servidor. O uso de cache no cliente necessita de alta complexidade. Sendo assim necessrio mecanismos de evitar atraso devido acesso a rede. Existem trs opes: dentro do processo de usurio (mais simples), no kernel ou em separado num processo gerenciador de cache. Um problema comum em uso de cache no cliente a inconsistncia da cache. Ocorre quando dois clientes lem simultaneamente um arquivo e o modificam. Utilizam o algoritmo write-through: quando a entrada na cache modificada, o novo valor (mantido na cache) imediatamente enviado ao servidor. 2.7. Os Primeiros SADs Grande parte dos trabalhos em sistemas de arquivos distribudos se iniciou no final dos anos80. Porm, o primeiro SAD que se tem notcia usava a ARPANET, rede construda pelo Departamento de Defesa dos Estados Unidos em 1969, e entrou em funcionamento em 1973. Ele disponibilizava um repositrio de dados para computadores que no possuam capacidade de armazenamento adequada. Era chamado de Datacomputer, e usava um servio parecido com o FTP atual. Depois dele, veio o Interim File Server (IFS), criado por pesquisadores do Xerox Palo Alto Research Center (PARC). Ele j organizava os arquivos privados e compartilhados em uma rvore de diretrios. Um sistema subsequente foi o Woodstock File Server (WFS), criado tambm pelo PARC, que permitia enviar aos clientes somente pginas dos arquivos, ao invs de enviar o arquivo completo, possibilitando trabalhar assim com mquinas sem discos locais. Em 1977, o PARC criou o Xerox Distributed File System, destinado a oferecer uma base para a implementao de sistemas administradores de banco de dados. Ele j implementava transaes atmicas envolvendo vrios arquivos e servidores, usando um protocolo de duas fases, e o acesso a pequenos trechos de arquivos. Depois dele vieram o LOCUS (1980) que j implementava transparncia de localizao, replica o e transaes atmicas aninhadas; o SWALLOW (incio dos anos 80) do MIT, que usava uma tcnica de controle de acesso concorrente baseado em timestamps; o Acorn File Server (incio dos anos 80), desenvolvido para implantao de uma rede de microcomputadores em escolas a um custo muito baixo; e o VICE (1984), ancestral do AFS e do CODA. 3. Implementao: Network File System (NFS) Desenvolvido pela Sun Microsystems (1985), sendo o primeiro servio de arquivos projetado como produto com suporte a estaes diskless (sem disco rgidos, quando eram caros). Alcanando seu sucesso tcnico e comercial em 1989 (RFC1094) suas interfaces foram disponibilizadas em domnio pblico (openess). Atualmente existe NFS para qualquer variao de UNIX. Os mdulos do NFS (cliente e

servidor) fazem parte do kernel o qual utiliza o VFS (Virtual File System) para diferenciar chamadas locais de remotas. Um dos objetivos do NFS o suporte a sistemas heterogneos, onde clientes e servidores possam rodar sistemas operacionais diferentes. O NFS resolve essa meta definindo dos protocolos cliente-servidor. 3.1. Caractersticas: Transparncia de Acesso: Os programas clientes no se preocupam com a distribuio dos arquivos. Um nico conjunto de operaes acessa arquivos locais e remotos assim programas devem atuar local e remotamente sem modificao Transparncia de Localizao: Servidor exporta (compartilha) o sistema de arquivo para onde o cliente escolheu o ponto de montagem e visualiza como se fosse local. Espao de nomes global pode ser estabelecido criando realocao de grupo de arquivos sem modificao do nome da pasta. Transparncia de Falha: Uso de servidores stateless , onde falha no cliente no o afeta, podendo ser reinicializado com recuperao de contexto de cada cliente. Possui vrios comandos idempotentes: os clientes podem repetir requisio at obter resposta (read e write), requisies duplicadas no resultam em atualizaes invlidas. Transparncia de Desempenho: Tem como objetivo trabalhar satisfatoriamente na variao de carga, onde o cliente e o Servidor empregam cache para melhorar desempenho. Transparncia de Migrao: O servio de montagem (mount) roda em cada n e fornece interface via RPC para montagem e desmontagem Utilizado no boot das mquinas No totalmente resolvida pelo NFS: mudana da localizao do FS requer atualizao de tabelas locais Automontagem (automounter) permite distribuio de carga por servidores de arquivos somente leitura (read-only) Transparncia de Replicao: O sistema no fornece esse tipo de replicao - Fornecido apenas por Servio separado: Yellow Pages service, Network Information System (NIS) com o modelo de replicao mestre-escravo (master-slave), mudanas pouco freqentes que no precisam ocorrer simultaneamente Transparncia de Concorrncia: O sistema no fornece esse tipo de transparncia, dispe apenas do lock rudimentar do Unix. Escalabilidade: O sistema no fornece uma escalabilidade, ou seja, ela limitada, projetada para suportar de 5 a 10 Clientes, onde o gargalo passa a ser o desempenho do Servidor o qual utiliza UDP (User Datagram Protocol) para transporte (default) e o portmap para servio de registro para programas que utilizam RPC. 3.1.Concluses O NFS no possua controle de estado de acesso aos seus arquivos por parte dos clientes, o que tornava a reabilitao aps uma queda do servidor muito mais rpida. Na verso 4 essa tarefa se tornou mais complexa, pois o NFS passou a ter controle de estado dos arquivos que esto sendo acessados. Assim, a impossibilidade de se controlar a consistncia dos arquivos que esto nos caches dos clientes, o controle de bloqueios atravs de sistemas terceiros, etc, passou a no existir mais e foram todos encapsulados no mesmo protocolo, simplificando assim o seu uso e manuteno.

O controle da segurana no acesso aos arquivos era muito simplificada e frgil, permitindo com que clientes no confiveis pudessem acessar arquivos de maneira desonesta. Isso foi resolvido na verso 4 do protocolo, onde mecanismos avanados de segurana e autenticao foram incorporados. Outro grande problema que existia era que as operaes entre cliente e servidor consumiam muitos recursos da rede (devido interface RPC/XDR). Dessa forma, associado poltica de uso de cache, o NFSv3 no muito recomendado para aplicaes que necessitam de acesso contnuo a arquivos. A verso 4 resolve esse problema pois possvel agora enviar mltiplos pedidos ao servidor atravs da mesma chamada RPC, alm da poltica de uso do cache ter melhorado por causa do controle de estado no acesso aos arquivos. Uma excelente caracterstica sua a transparncia que o sistema de arquivos d para o usurio final, que nem sequer percebe estar lidando com arquivos remotos, ainda mais na verso 4 onde os controles de bloqueios e estado existem, o que torna o acesso aos arquivos mais transparentes ainda, dando a impresso de estarem no sistema de arquivos local. Alm disso, o fato de ter sua especificao aberta para que qualquer um possa implementar seu servidor ou cliente permitiu que ele se tornasse o sistema de arquivos distribudo mais utilizado no mundo. 4. Implementao: Andrew File System (AFS) AFS um produto de sistemas de arquivos distribudos que oferece uma arquitetura do cliente-servidor de arquivos compartilhados, fornecendo independncia de posio, escalabilidade, segurana e potencial transparecia de migrao de dados. Um sistema usando AFS organizado em clulas, que so compostas de mquinas clientes e servidores. As mquinas servidoras executam diversos programas servidores, onde cada um deles cuida de um servio diferente, como servio de cache, servio de arquivos, segurana, localizao de arquivos, dentre outros. Uma clula um agrupamento de administrao independente, onde um administrador de uma clula no necessita conhecer ou compartilhar da configurao de outras clulas. 4.1. Caractersticas: O Volume : Embora possam variar em tamanho, em geral so menores que uma partio. Seu tamanho reduzido facilita sua movimentao entre parties e at entre servidores (a fim de aumentar a cincia do sistema e tambm para manter a carga balanceada entre os servidores). Cada volume corresponde logicamente a um diretrio na rvore de arquivos. Assim pode-se manter um volume para cada diretrio raiz de um usurio. Desempenho e Cache: Nas mquinas clientes so mantidos caches dos arquivos em utilizao, visando melhora na desempenho do sistema. Recursos de rede so economizados quando um cliente obtm um arquivo diretamente do seu cache, sem necessidade de obt-lo remotamente. O sistema mantm um mecanismo de callback para garantir que os caches dos clientes estejam atualizados em caso de alteraes feitas por outros clientes. Segurana: Um mecanismo de autenticao mtua garante aos servidores que eles apenas disponibilizam os arquivos aos clientes autorizados, e garante aos clientes que ele esto obtendo os arquivos tambm dos servidores corretos. O sistema tambm mantm lista de controle de acessos mantido pelos usurios que permitem uma configurao mais precisa do controle de acesso. Transparncia de Localizao: Os arquivos disponveis em um sistema AFS fazem parte de um espao de nomes nico e global. completamente transparente aos clientes a

localizao fsica de um arquivo. Os clientes acessam os arquivos como se eles estivessem efetivamente em seu computador local. Alm disto, o espao de nomes uniforme entre os diversos clientes. - Todos os seus arquivos e diretrios sero contidos em uma hierarquia em seu diretrio home (ju33). O nome do caminho para seu diretrio home longo e pode ser incmodo digitar. O atalho para seu diretrio home o til ~, onde ~ = /afs/andrew.cmu.edu/usr#/userID e userID = ju33. 4.2. Concluses O AFS um sistema de arquivos distribudos que evoluiu muito desde sua primeira verso. Pensando sempre em escalabilidade, transparncia de localizao e segurana, ele foi implementado usando-se conceitos simples, mas que so de extrema importncia para se atingir tais objetivos. Ele oferece um servio altamente escalvel e seguro, atravs da adoo de semntica de sesso no acesso concorrente a arquivos, na utilizao de grandes caches no disco local do cliente e no uso de listas de controle de acesso, juntamente com o protocolo de autenticao mtua Kerberos. Por causa do cache e da iniciativa de no se compartilhar arquivos temporrios, os clientes necessitam obrigatoriamente de disco local. O espao de nomes, para a parte remota dos arquivos, mantida e organizada pelos servidores atravs de um banco de dados de localizao. A replicao dos arquivos do AFS muito simples, permitindo apenas manter replicao dos dados s para leitura ou realizar cpias de segurana. 4.3. Coda File System uma evoluo do AFS, onde um sistema de arquivo distribudo permite operaes desconectadas, e a replicao do servidor e cache se d pelo cliente. 5. Comparao: AFS versus NFS Neste captulo visualizaremos uma anlise comparativa detalhada das caractersticas mais importantes dos sistemas AFS e NFS, conforme demonstrado na abaixo. - Arquitetura: AFS: Servidores de arquivos e clientes formam a clula de uma unidade administrativa lgica; Administrao por colees de arquivos chamados volumes; Comum espao globalmente conhecido, onde visto por todas as mquinas; Posio automtica dos arquivos via processos do sistema e por base de dados de posio de volume; Usurios de mquinas stateful NFS: Cada servidor de arquivo tem controle independentemente; Administrao por arquivos individuais; Espao conhecido nem sempre visto consistentemente por todas as mquinas; Pontos de montagem que seguem a posio fsica de arquivos ajustada por administradores e por usurios; Usurios de mquinas em parte so stateless. - Desempenho: AFS: Cache de disco robusta, reduz chamada do servidor de arquivo e a carga de rede; Chamada aos servidores garante consistncia de cache. Semnticas open-to-close. Atributos armazenados por horas; As Replicas espalham a carga entre servidores mais acessados. Nenhuma replicao para reduo de carga; Desempenho excelente em configuraes da grande rea; Escalabilidade, mantm o desempenho em qualquer tamanho de instalao.

NFS: Memria de cache com buffers pequenos; Cache baseada em tempo o qual pode sofrer inconsistncias. Tempo de armazenados de atributos entre 3 e 30 segundos; Nenhuma replicao para reduo de carga; Ineficincia em configuraes da grande rea; Melhor em instalaes de pequeno e mdio porte. - Avaliabilidade: AFS: Replicao do volume de somente leitura. Switchover automtico para rplica disponvel; Os arquivos se mantm disponveis aos usurios durante o reconfigurao. Os nomes dos arquivo se mantm os mesmos. NFS: Nenhuma replicao padro de dados; Os usurios perdem o acesso s arquivos durante o reconfigurao. Os movimentos do arquivo requerem mudanas do ponto de montagem para ajustar nomes do arquivo. - Gerncia: AFS: Gerncias de tarefas podem ser executadas de qualquer mquina; Cotas de disco baseados em volumes; facilidade para que o usurio verifique o status; Nenhum downtime do sistema com Sistema de Backup AFS; Os clones de Backup podem ser usados frequentemente para usurio controlar recuperaes. NFS: A gerncia de tarefas requererem freqentemente o telnet s mquinas designadas; Cotas de disco baseados no ID de usurio, dificuldade para que o usurio verifique o status; O backup padro do UNIX requer o downtime do sistema; Todas as recuperaes requerem o assistente do administrador. - Segurana: AFS: Possui autenticao da verso 4 do Kerberos; Lista de controle para o ajuste fino de acesso aos diretrios. UNIX Mode Bits para o proprietrio; Grupos definidos pelo usurio; Autenticao mtua por processos de sistemas e banco de dados. Sempre necessrio o uso de RPC seguro. NFS: Usurio IDs no encriptados, usurios verdadeiros e hosts. Pode ser kerberized; Controle de acesso com UNIX Mode Bits padro em arquivos e em diretrios; Grupos definidos pelo administrador do sistema; Permite o uso de RPC seguro.

Você também pode gostar