Title: Ger
1Gerência de arquivos distribuidos
2Gerê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.
3Gerê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.
4Gerência de arquivos distribuidos
- Os sistemas de arquivos distribuídos devem
prover - Confiabilidade
- Redundância
- Disponibilidade
- Escalabilidade
5Gerência de arquivos distribuidos
- Os sistemas de arquivos distribuídos devem
prover - Confiabilidade
- Redundância
- Disponibilidade
- Escalabilidade
6Gerê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.).
7Gerê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.
8Gerê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.
9Gerê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
10Gerência de arquivos distribuidos
a) Modelo de acesso remoto b) Upload/download
11Gerê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.
12Gerê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.
13Gerê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)
14Gerê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)
15Gerê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.
16Gerê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
17Gerência de arquivos distribuídos
- Principais DFS em uso comercial
- Network File System (NFS)
- Andrew File System (AFS)
- Coda
18Gerê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).
19Gerência de arquivos distribuidos
Arquitetura NFS
20Gerê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.
21Gerê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)
22Gerê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.
23Gerê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
24Gerê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
25Gerência de arquivos distribuídos
Cache em sistemas NFS
26Gerência de arquivos distribuídos
NFS em dois clientes.
27Gerência de arquivos distribuídos
NFS em dois servidores.
28Gerê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 ltaddressgt/ltremote_dirgt
/mnt ltoptionsgt - ls /mnt/ltremote_dirgt
29Gerê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.
30Gerê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.
31Gerência de arquivos distribuídos
32Gerê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
33Gerê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.
34Gerê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.
35Gerê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
36Gerência de arquivos distribuídos
- Google File system (GFS)
- Arquitetura
37Gerência de arquivos distribuídos
- Google File system (GFS)
- Passo a passo
38Gerência de arquivos distribuídos
- Google File system (GFS)
- Passo a passo
39Gerência de arquivos distribuídos
- Google File system (GFS)
- Operação de escrita
40Gerência de arquivos distribuídos
- Google File system (GFS)
- Operação de escrita
41Gerência de arquivos distribuídos
- Altamente escalável
- Mestre apenas coordena, são os Chuncks que fazem
todo o trabalho pesado - A arquitetura Mestre/Chuncks pode ser reaplicada,
criando super mestres - Todos os índices ficam em memória
- Exploração de paralelismo
- Leitura, escrita e incluir dados (append) em
paralelo
42Gerência de arquivos distribuídos