• Nenhum resultado encontrado

3.3 SISTEMAS DE ARQUIVOS DISTRIBU´IDOS

3.3.1 Arquiteturas de SAD

Nesta se¸c˜ao, s˜ao demonstrados os tipos de organiza¸c˜oes presen- tes na maioria dos SAD classificados por Tanenbaum (STEEN; TANEN- BAUM, 2007). Estes s˜ao classificados por trˆes tipos: cliente-servidor, baseado em clusters e sistemas sim´etricos.

3.3.1.1 Cliente-Servidor

A arquitetura cliente-servidor, ilustrada na figura 12, ´e o conceito base para o sistema de arquivos distribu´ıdos mais comum de qualquer sistema UNIX quando se trata de compartilhamento de arquivos. A ideia por tr´as da arquitetura cliente-servidor ´e um servidor de dados disponibilizar o acesso a arquivos hospedados por qualquer cliente que esteja suscet´ıvel de utilizar o servi¸co. Os clientes acessam os arquivos como qualquer outro arquivo local, n˜ao importando ao cliente onde eles est˜ao fisicamente. O NFS disponibiliza uma interface de acesso como a dos sistemas de arquivos locais, atrav´es da interface POSIX.

Figura 12 – Arquitetura cliente-servidor

3.3.1.2 Baseada em cluster

A arquitetura baseada em cluster (Figura 13) ´e uma arquitetura voltada para aplica¸c˜oes paralelas, que ´e a base para o surgimento das t´ecnicas de distribui¸c˜ao de dados de um arquivo (file-striping techni- ques). Estas t´ecnicas tˆem como fun¸c˜ao espalhar partes de um arquivo em m´ultiplos servidores, tornando poss´ıvel o acesso de diferentes par- tes em paralelo. Para controlar a integridade dos dados sob m´ultiplos acessos paralelos, normalmente os SAD utilizam o mecanismo chamado de lock, que impossibilita qualquer altera¸c˜ao do conte´udo do dado por parte de outros processos, a menos que nenhum processo o esteja aces- sando.

Todavia, nem sempre ´e efetivo ou de interesse da aplica¸c˜ao pa- ralela distribuir um arquivo em partes. De tal modo, alguns sistemas de arquivos permitem a configura¸c˜ao da distribui¸c˜ao de arquivos como todo, sem a necessidade de dividi-lo.

Os SAD que comportam estas t´ecnicas de distribui¸c˜ao dos dados, permitindo o acesso paralelo entre os servidores de E/S, s˜ao chamados de sistemas de arquivos paralelos (SAP). Este tipo de arquitetura ´e eficiente quando cont´em um gerenciador para tratamentos de falhas e um gerenciador de coerˆencia de dados. Normalmente, cada sistema de arquivo busca desenvolver o seu pr´oprio gerenciador, de modo a servir de melhor maneira para o sistema em quest˜ao.

3.3.1.3 Sim´etrica

A arquitetura sim´etrica (Figura 14) ´e baseada na tecnologia peer- to-peer, em que a proposta utiliza como base uma tabela de hash dis- tribu´ıdo (Distributed Hash Table) para a distribui¸c˜ao de dados, combi-

Figura 13 – Arquitetura baseada em cluster

nado com um mecanismo de pesquisa baseado em chaves. Al´em disso, esta arquitetura pode ser constru´ıda em cima de uma camada de ar- mazenamento distribu´ıdo, ou todos os arquivos s˜ao armazenados local- mente no nodo participante. Um exemplo de um sistema distribu´ıdo que utiliza esta arquitetura ´e o sistema Apache Ivy.

Figura 14 – Arquitetura sim´etrica

3.3.2 Componentes de SAD

Alguns conceitos b´asicos que se aplicam aos sistemas de arqui- vos distribu´ıdos em geral tˆem como base objetivos fundamentais de fornecer ao cliente total transparˆencia nos seus arquivos, n˜ao havendo necessidade de conhecer a localiza¸c˜ao f´ısica do arquivo e garantir dis- ponibilidade. Para prover estas necessidades, os sistemas de arquivos distribuem as tarefas entre diferentes nodos. Esta divis˜ao de tarefas

tende a dificultar o gerenciamento do sistema, contudo, torna o sis- tema mais consistente a fim de garantir um maior controle de falhas do sistema. ´E de importˆancia saber at´e que ponto os mecanismos de consistˆencias e sincroniza¸c˜ao influenciam no desempenho do sistema. Cada tarefa ´e delegada a um ou mais nodos, de modo que cada nodo pode aderir mais de um tipo de tarefa.

Basicamente, s˜ao atribu´ıdos trˆes tipos de tarefas:

• Metadados. Estes s˜ao nodos dos sistemas respons´aveis por con- ter as informa¸c˜oes sobre os arquivos. Estas informa¸c˜oes tratam desde nomes, permiss˜oes, datas de acesso e principalmente as lo- caliza¸c˜oes dos blocos dos dados no sistema. A distribui¸c˜ao dos ar- quivos pode ser dada por blocos fixos enviados de maneira c´ıclica entre os nodos, ou distribui¸c˜ao dinˆamica de acordo com o tipo do sistema ou de acordo com a necessidade da aplica¸c˜ao. S˜ao os primeiros nodos a serem consultados por um cliente, quando o servidor de metadados pode repassar o caminho do arquivo ou ao mapeamento dos dados.

• Servidores de dados. S˜ao aqueles que v˜ao realizar as opera¸c˜oes de entrada e sa´ıda dos blocos dos arquivos em disco. As opera¸c˜oes s˜ao realizadas de acordo com o servidor de metadados do sistema, que este informa o tamanho do bloco de leitura e escrita, e a localiza¸c˜ao do bloco.

• Clientes. Os clientes realizam o acesso aos dados atrav´es de uma interface. No caso dos SAD, basicamente existe dois tipos de acesso, direto e indireto, ilustrados na Figura 15. No acesso di- reto, o cliente acessa os arquivos diretamente ap´os consultar o servidor de metadados, que verifica a permiss˜ao e informa a lo- caliza¸c˜ao dos blocos dos arquivos, para que o cliente acesse esses blocos. No acesso indireto, o cliente envia a opera¸c˜ao ao servidor de metadados, que envia a opera¸c˜ao para os servidores de dados que possuem os blocos do arquivo. Desta maneira, os sistemas com acesso indireto possuem um custo adicional de transmiss˜ao de dados e os metadados tˆem total controle sobre os acessos dos dados.

Independente do tipo de acesso, ambos trocam mensagens com o servidor de metadados, e com o aumento do n´umero de requisi¸c˜oes, pode tornar-se um gargalo de comunica¸c˜ao para o SAD. Alguns SAD como PVFS e Lustre, distribuem os servidores metadados com a fi- nalidade de contornar casos de sobrecarga de requisi¸c˜oes. Para que o

sistema funcione ´e necess´ario prevenir a falta de consistˆencia de da- dos entre os metadados e ´e importante evitar processos desnecess´arios, como por exemplo, uma simples consulta de um cliente necessitando buscar informa¸c˜oes dos dados em todos os metadados (KASSICK, 2010).

Figura 15 – Ilustra¸c˜ao do acesso direto e indireto

3.4 EXEMPLOS DE SAD

Documentos relacionados