Gerência de arquivos distribuidos
Prof: Diovani Milhorim
Gerência de arquivos distribuidos
Em um sistema de arquivos distribuídos os arquivos
se encontram armazenados e um ou mais servidores, e
se tornam disponíveis a clientes da rede que os enxerga
de forma transparente.
Gerência de arquivos distribuidos
Razões para uso de arquivos distribuídos.




Deseja adicionar servidores de arquivos ou modificar a
localização de arquivos.
Os usuários que acessam destinos estão distribuídos por
um ou vários locais.
A maioria dos usuários requer acesso a vários destinos.
O equilíbrio da carga do servidor pode ser melhorado
com a redistribuição de destinos.
Gerência de arquivos distribuidos
Os sistemas de arquivos distribuídos devem prover:




Confiabilidade
Redundância
Disponibilidade
Escalabilidade
Gerência de arquivos distribuidos
Os sistemas de arquivos distribuídos devem prover:




Confiabilidade
Redundância
Disponibilidade
Escalabilidade
Gerência de arquivos distribuídos
Esses sistemas são responsáveis por organizar
armazenar, recuperar, nomear, compartilhar, proteger,
autorizar acesso a arquivos e rede. Fornecendo:




Conjunto de operações 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
criação, de alteração, de acesso, tamanho, proprietário e
lista de acesso rwx (ready-write exclusive).
Define-se sintaxe para os arquivos (caracteres inválidos,
extensão, etc.).
Gerência de arquivos distribuídos
Diretório
Tipo especial de arquivo que fornece mapeamento entre nome
textual e identificador interno. Pode-se incluir nome de outros
diretórios (atualmente conhecido como pastas). Possui a hierarquia
de estrutura em árvore, formando os pathnames cujo diretório raiz
global é representado por “/”.
As árvores dispõem das seguintes operações com diretório: criar,
remover, nomear, renomear e mover. Havendo também a
possibilidade de criar vínculos (com outros diretórios.
Gerência de arquivos distribuídos
DFS Possuem dois componentes distintos para lidar
com arquivos ou diretórios.

Sistema de Arquivo: operação em arquivos individuais
(leitura, escrita, concatenação, remoção)

Serviço de Diretório: criação e gerência de diretórios,
manipulação de arquivos em diretórios.
Gerência de arquivos distribuídos
Existem dois modelos de Projeto do Serviço de
Arquivos:

Upload/Download: simplicidade, o cliente precisa dispor
do mesmo espaço do servidor, causando overhead em
alterações mínimas.

Acesso Remoto: amplo número de operações, requer
pouco espaço nos clientes por isso tornou-se um
modelo consagrado
Gerência de arquivos distribuidos
a) Modelo de acesso remoto
b) Upload/download
Gerência de arquivos distribuídos
Nomeação
A nomeação é um mapeamento entre objetos lógicos e físicos.
Usuários lidam com objetos lógicos de dados representados por
nomes de arquivos, enquanto que o sistema manipula blocos
físicos de dados, armazenados em trilhas de discos. Geralmente,
um usuário faz referência a um arquivo por meio de um nome
textual. Este mapeamento é um identificador numérico de baixo
nível que, por sua vez, é mapeado em blocos de disco. Esse
mapeamento em vários níveis fornece aos usuários uma abstração
de um arquivo que oculta os detalhes de como e onde no disco o
arquivo está de fato armazenado.
Gerência de arquivos distribuídos
Transparência:
Em um DFS transparente, uma nova dimensão é adicionada à
abstração: a de ocultar o local na rede onde o arquivo se encontra.
sistema de arquivos convencional: mapeamento = endereço em disco
Esse intervalo é aumentado para incluir a máquina específica em
cujo disco o arquivo está armazenado.
Também existe a possibilidade de replicação de arquivos. Dado um
nome de arquivo, o mapeamento retorna um conjunto das posições
das réplicas desse arquivo.
Gerência de arquivos distribuídos
Estruturas de Nomeação
Existem duas noções no contexto de mapeamento de
nomes em um DFS que precisam ser diferenciadas:

Transparência de posição: o nome de um arquivo não
revela qualquer indício da posição do arquivo no
armazenamento físico.

Independência de posição: o nome de um arquivo não
precisa ser alterado quando muda da posição do
arquivo no armazenamento físico.
(raro de ser encontrado. AFS e sistemas experimentais)
Gerência de arquivos distribuídos
Semântica
Quando dois ou mais usuários compartilham o mesmo
arquivo, é necessário definir a semântica de leitura e
escrita precisamente. Se o sistema possui um único
processador, ele é forçado a uma ordenação em todas
as operações e sempre retorna o valor mais recente
(chama-se semântica UNIX).
Em um sistema distribuído a semântica UNIX pode ser
atingida facilmente se existe um único servidor de
arquivos e os clientes não guardam arquivos em cache.
(pode ocorrer problema de gargalo)
Gerência de arquivos distribuídos
Semântica
Para diminuir gargalos podemos usar políticas de cache.
Problema de cache:

Uso simultâneo de mesmo arquivo por diferentes usuários.
Solução do problemas:


Propagação instantânea de toda modificação no arquivo.
Compartilhamento do ponteiro de escrita do arquivo.
Gerência de arquivos distribuídos
História








O primeiro SAD que se tem notícia usava a ARPANET, chamava-se
datacomputer, e entrou em funcionamento em 1973.
O Interim File Server (IFS), criado por pesquisadores do Xerox
Palo Alto Research Center (PARC).
Woodstock File Server (WFS), criado também pelo PARC.
Em 1977, o PARC criou o Xerox Distributed File System
O LOCUS (1980) que já implementava transparência de
localização, replicação
O SWALLOW (início dos anos 80) do MIT, que usava uma técnica
de controle de acesso concorrente baseado em timestamps.
Acorn File Server (início dos anos 80), desenvolvido para
implantação de uma rede de microcomputadores em escolas a um
custo muito baixo
o VICE (1984), ancestral do AFS e do CODA
Gerência de arquivos distribuídos
Principais DFS em uso comercial:



Network File System (NFS)
Andrew File System (AFS)
Coda
Gerência de arquivos distribuídos
NFS (network file system)
Desenvolvido pela Sun Microsystems (1985), sendo o
primeiro serviço de arquivos projetado como produto
com suporte a estações diskless (sem disco rígidos,
quando eram caros). Alcançando seu sucesso técnico e
comercial em 1989 (RFC1094) suas interfaces foram
disponibilizadas em domínio público (openess).
Gerência de arquivos distribuidos
Arquitetura NFS
Gerência de arquivos distribuídos
NFS (network file system)
Características:

Transparência de Acesso: Os programas clientes não se
preocupam com a distribuição dos arquivos. Um único conjunto
de operações acessa arquivos locais e remotos.

Transparência de Localização: Servidor exporta (compartilha) o
sistema de arquivo para onde o cliente escolheu o ponto de
montagem e visualiza como se fosse local.

Transparência de Falha: Uso de servidores stateless , onde
falha no cliente não o afeta, podendo ser reinicializado com
recuperação de contexto de cada cliente.
Gerência de arquivos distribuídos.
NFS (network file system)

Transparência de Desempenho: Tem como objetivo trabalhar
satisfatoriamente na variação de carga, onde o cliente e o Servidor
empregam cache para melhorar desempenho

Transparência de Migração: O serviço de montagem (mount) roda
em cada nó e fornece interface via RPC para montagem e
desmontagem
– Utilizado no boot das máquinas
– Não é totalmente resolvida pelo NFS: mudança da localização do
FS requer atualização de tabelas locais
– Automontagem (automounter) permite distribuição de carga por
servidores de arquivos somente leitura (read-only)
Gerência de arquivos distribuídos
NFS (network file system)

Transparência de Replicação: O sistema não fornece esse tipo de
replicação

Transparência de Concorrência: O sistema não fornece esse tipo
de transparência, dispõe apenas do lock rudimentar do Unix.

Escalabilidade: O sistema não 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 serviço de registro para programas que utilizam RPC.
Gerência de arquivos distribuídos
Nfs3 x Nfs4
Operação
v3
v4
Descrição
Create
Não
Sim
Cria um arquivo não regular
Link
Sim
Sim
Cria uma ligação para um arquivo (hard link)
Symlink
Sim
Não
Cria uma ligação simbólica para um arquivo (symbolic link)
Mkdir
Sim
Não
Cria um sub-diretório in um dado diretório
Mknod
Sim
Não
Cria um arquivo especial
Rename
Sim
Sim
Altera o nome de um arquivo
Open
Não
Sim
Abre um arquivo
Close
Não
Sim
Fecha um arquivo
Lookup
Sim
Sim
Procura um arquivo em função do nome
Readdir
Sim
Sim
Lê o conteúdo de um diretório
Readlink
Sim
Sim
Lê o nome de um caminho armazenado em uma ligação simbólica
Getattr
Sim
Sim
Lê os atributos de um arquivo
Setattr
Sim
Sim
Configura o valor dos atributos de um arquivo
Read
Sim
Sim
Lê os dados contidos em um arquivo
Write
Sim
Sim
Escreve dados no arquivo
Gerência de arquivos distribuídos
Nfs3 x Nfs4
Leitura dos dados de um arquivo no NFS versão 3
Leitura dos dados utilizando procedimentos compostos no NFS versão 4
Gerência de arquivos distribuídos
Cache em sistemas NFS
Gerência de arquivos distribuídos
NFS em dois clientes.
Gerência de arquivos distribuídos
NFS em dois servidores.
Gerência de arquivos distribuídos
NFS (network file system)

Passos
 Instalar o servidor
 Configurar o servidor
 Instalar o cliente
 Montar o diretório remoto

Exemplo Debian Linux
No servidor: apt-get install nfs-kernel-service nfs-common portmap
No cliente:
apt-get install nfs-common portmap
Para utilizar:
mount <address>:/<remote_dir> /mnt <options>
ls /mnt/<remote_dir>
Gerência de arquivos distribuídos
:Andrew File System (AFS)
AFS é um produto de sistemas de arquivos distribuídos que oferece
uma arquitetura do cliente-servidor de arquivos compartilhados,
fornecendo independência de posição, escalabilidade, segurança e
potencial transparecia de migração de dados.
Um sistema usando AFS é organizado em células, que são
compostas de máquinas clientes e servidores. As máquinas
servidoras executam diversos programas servidores, onde cada um
deles cuida de um serviço diferente, como serviço de cache, serviço
de arquivos, segurança, localização de arquivos, dentre outros. Uma
célula é um agrupamento de administração independente, onde um
administrador de uma célula não necessita conhecer ou compartilhar
da configuração de outras células.
Gerência de arquivos distribuídos
. Coda
File System
É uma evolução do AFS, onde um sistema de arquivo
distribuído permite operações desconectadas, e a
replicação do servidor e cache se dá pelo cliente.
Gerência de arquivos distribuídos
:Andrew File System (AFS)
Gerência de arquivos distribuídos
:Andrew File System (AFS)/coda
Venus é um processo executado no nível do usuário que fornece basicamente
as mesmas operações que NFS
Gerência de arquivos distribuídos
:Andrew File System (AFS)
Características:
 O Volume : Embora possam variar em tamanho, em geral são
menores que uma partição. Seu tamanho reduzido facilita sua
movimentação entre partições e até entre servidores (a fim de
aumentar a ciência do sistema e também para manter a carga
balanceada entre os servidores). Cada volume corresponde
logicamente a um diretório na árvore de arquivos. Assim pode-se
manter um volume para cada diretório raiz de um usuário.

Desempenho e Cache: Nas máquinas clientes são mantidos caches
dos arquivos em utilização, visando melhora na desempenho do
sistema. Recursos de rede são economizados quando um cliente
obtém um arquivo diretamente do seu cache, sem necessidade de
obtê-lo remotamente. O sistema mantém um mecanismo de callback
para garantir que os caches dos clientes estejam atualizados em
caso de alterações feitas por outros clientes.
Gerência de arquivos distribuídos
:Andrew File System (AFS)

Segurança: Um mecanismo de autenticação mútua garante aos
servidores que eles apenas disponibilizam os arquivos aos clientes
autorizados, e garante aos clientes que ele estão obtendo os
arquivos também dos servidores corretos. O sistema também
mantém lista de controle de acessos mantido pelos usuários que
permitem uma configuração mais precisa do controle de acesso.

Transparência de Localização: Os arquivos disponíveis em um
sistema AFS fazem parte de um espaço de nomes único e global. É
completamente transparente aos clientes a localização física de um
arquivo. Os clientes acessam os arquivos como se eles estivessem
efetivamente em seu computador local. Além disto, o espaço de
nomes é uniforme entre os diversos clientes.
Gerência de arquivos distribuídos
Google File system (GFS)

Desenvolvido por Larry Page e Sergei Brin, quando ainda eram
alunos da Universidade de Stanford

Atualmente, o sistema é comercializado pela Google

Projetado para buscas em grandes bases de dados

Replicação e acesso paralelo: no mínimo 3 réplicas
Gerência de arquivos distribuídos
Google File system (GFS)
Arquitetura
Gerência de arquivos distribuídos
Google File system (GFS)
Passo a passo
Gerência de arquivos distribuídos
Google File system (GFS)
Passo a passo
Gerência de arquivos distribuídos
Google File system (GFS)
Operação de escrita
Gerência de arquivos distribuídos
Google File system (GFS)
Operação de escrita
Gerência de arquivos distribuídos
Google File system (GFS)
oAltamente escalável
oMestre apenas coordena, são os Chuncks que fazem todo o
trabalho pesado
oA arquitetura Mestre/Chuncks pode ser reaplicada, criando
super mestres
oTodos os índices ficam em memória
oExploração de paralelismo
oLeitura, escrita e incluir dados (append) em paralelo
Gerência de arquivos distribuídos
Google File system (GFS)
Download

Aula 5