Vous êtes sur la page 1sur 29

Introduo a

Armazenamento
Secundrio e Sistemas
de Arquivos Distribudo
Disciplina: Sistemas Distribudos
Professora: Fvia Delicato
Alunos: Thomaz Barros
Wagner Vieira
Abril, 2014
Agenda
1. Sistema de Arquivos
2. Sistemas de Arquivos Distribudo
3. Network File System (NFS)
1. Introduo
2. Arquitetura
3. Sincronizao
4. Consistncia de Cache
4. Google File System (GFS)
1. Introduo
2. Arquitetura
3. Servidor Master
4. Escalabilidade
5. Hadoop Distributed File System (HDFS)
1. Pressupostos
2. Arquitetura
3. Sincronizao e Consitncia de Cache
2
Sistema de Arquivos -
Introduo
! Permite aos usurios criarem arquivos que podem ser
persistidos, compartilhados e estruturados, ou seja,
organizados internamente.
! Operaes bsicas de manipulao de arquivos:
! Criar inclui arquivo na estrutura de arquivos;
! Apagar exclui arquivo da estrutura de arquivos;
! Abrir permite que processos manipulem determinado
arquivo;
! Fechar encerra a permisso de manipulao de
determinado arquivo por parte de um processo.
! Ler permite que determinado processo leia dados do
arquivo;
! Escrever permite que determinado processo modifique o
contedo do arquivo;
3
Sistema de Arquivos
Definies
! Estrutura de Arquivo
! Field (campo) : elemento bsico
do dado, que contm um nico valor, como
um sobrenome de um empregado, uma data
ou uma leitura de um sensor;
! Record (registro) : conjunto de campos;
! Fi l e (arquivo): conj unto de regi stros
similares;
! Alguns sistemas de arquivo no contm o
conceito de registro.
4
Sistemas de Gerenciamento
de Arquivos
! Provem servios para usurios e aplicaes
manipularem os arquivos.
! Devem cumprir os seguintes objetivos:
1. Satisfazer os requisitos dos usurios
! Criar, deletar, ler e escrever arquivos;
! Controlar o acesso aos arquivos;
! Mover dados entre os arquivos;
! Recuperao em caso de dano;
! Acesso aos arquivos atravs de seu nome;
5
Sistema de Gerenciamento
de Arquivos
2. Minimizar o quanto possvel problemas de validade,
corrupo e perda de dados;
3. Prover o mximo de desempenho em termos de
throughput de dados e tempo de resposta ao usurio;
4. Suportar um variado leque de dispositivos de
armazenamento secundrio;
5. Prover uma inteface de E/S padronizada para os
processos executados no sistema operacional;
6. Prover suporte a E/S concorrente;
6
Arquitetura de um Sistema
de Arquivos Genrico
7
Programa de usurio
Sequencial
Indexao
sequencial
Indexao Hashed
Mtodos de Acesso
E/S lgicas
Supervisor de E/S bsicas
Sistema de arquivo bsico
Drivers de dispositivos secundrios
Sistemas de Arquivos
Distribudo
! Si st emas de ar qui vos f or am or i gi nal ment e
desenvolvidos para lidar com um nico dispositivo.
! A mudana de como usurios e organizaes
compartilham arquivos levou ao desenvolvimento de
sistemas de arquivos distribudos;
! Permitem:
! Armazenamento remoto de arquivos;
! Acesso remoto a arquivos;
! Exemplos:
! Network File System (NFS);
! Google File System (GFS);
! Hadoop Distributed File System (HDFS);
! Ivy;
8
Network File System
! Utiliza a arquitetura cliente-servidor;
! Acesso transparente aos arquivos;
! Indiferente ao sistema de arquivos utilizado
localmente;
! Modelo de acesso remoto;
Arquivo permanece
no servidor
Requisies do
cliente para o
acesso a arquivos
no servidor

9
NFS - Arquitetura
System call layer

System call layer

Virtual file system
(VFS) layer
Virtual file system
(VFS) layer
Local file
system
interface
NFS client NFS server
Local file
system
interface
RPC client
stub
RPC server
stub
10
NFS Sincronizao
! Necessidade de existir uma poltica de leitura e
escrita para evitar problemas quando um arquivo
compartilhado por dois ou mais usurios;
! Inicialmente, vimos que todas as operaes sobre
os arquivos eram diretamente encaminhadas para
o servidor;
! Contudo, essa abordagem pode prejudicar o
desempenho das operaes;
11
NFS Sincronizao
! Na prtica, segue-se o seguinte modelo:
! Como controlar quando h modificaes simultneas?
12

Arquivo
antigo

Arquivo
novo
1. Arquivo movido para o cliente
3. Cliente termina e retorna o arquivo ao arquivo 2. Acessos so feitos no cliente
NFS Sincronizao
! Uso de um gerenciador de bloqueio;
! Leitura no bloqueante por completo;
! Escrita necessita de bloqueio exclusivo;
! So quatro operaes de bloqueio:
! Lock;
! Lockt;
! Locku;
! Renew;
13
NFS Consistncia de
Cache
Cache de
Memria
Cache de
disco
Aplicao
Cliente
Servidor
NFS
14
NFS Consistncia de
Cache
! Duas abordagens para Cache:
1. Vimos anteriormente;

15

Arquivo
antigo

Arquivo
novo
1. Arquivo movido para o cliente
3. Cliente termina e retorna o arquivo ao arquivo 2. Acessos so feitos no cliente
NFS Consistncia de
Cache
Cpia local
Arquivo antigo
Arquivo
atualizado
1. Cliente requisita o arquivo
2. Servidor delega o arquivo
3. Servidor revoga delegao
4. Cliente envia o arquivo
2. Open Delegation
16
Google File System (GFS)
! Acesso paralelo e intensivo de arquivos uma
realidade.
! Muitos computadores envolvidos em processos de
leitura ou escrita de arquivos;
! Esses mesmos computadores podem se tornar
indisponveis repentinamente;
! Google File System (GFS) vem para solucionar tais
problemas.
17
GFS Introduo
! Focado em arquivos muito grandes (vrios
gigabytes);
! Operaes de escrita costumam anexar mais dados
aos arquivos existentes;
! Ao invs de sobrescrever os arquivos existentes;
! Sempre em mente que os servidores no so
confiveis;
18
GFS Arquitetura
19
nome do arquivo, ndice do chunk
Chunk server
Sistema de
Arquivo Linux
Chunk server
Sistema de
Arquivo Linux
Chunk server
Sistema de
Arquivo Linux
endereo de contato
Instrues
Estado do
chunk server
ID do chunk, faixa
Dados do chunk
A organizao de um cluster de servidores do Google
GFS Servidor Master
! Armazena a metadados dos chunks;
! Localizao;
! Label;
! Quais processos esto ocorrendo.
! O que acontece se um chunk server falhar?
! Exitem rplicas dos chunks em mais de um servidor;
! Snapshot do chunk e procede com uma nova
replicao.
! Atualizaes peridicas do que cada servidor de
chunks possui;
20
GFS Arquitetura / Escalabilidade
21
Chunk 1
Arquivo 1
Chunk 1
Arquivo 1
Chunk 2
Arquivo 1
Chunk 1
Arquivo 2
Chunk 1
Arquivo 2
Chunk 1
Arquivo 2
Chunk 2
Arquivo 2
Chunk 1
Arquivo 2
Chunk 2
Arquivo 2
Redundncia
Master
Aplicao
cliente
Endereo do chunk
Chunk Server
Chunk Server
Chunk Server
GFS Escalabilidade
! Por que essa arquitetura permite a escalabilidade
dos servios?
! Maior carga de operaes compete aos servidores de
chunk, assim o master no um gargalo;


22
Hadoop Distributed File
System (HDFS)
! Um mdulo do projeto Apache Hadoop;
! Programa open-source para confiabilidade, escalabilidade e
computao distribuda.

! Fornece acesso de alta taxa de transferncia aos dados
da aplicao;
! Projetado para rodar em hardware commodity / hardware
de baixo custo;
! Minimizao do consumo de largura de banda global e
latncia de leitura.


23
HDFS Pressupostos
! Base de dados grandes
! Adequado para aplicaes Big Data;

24
Tamanho
do Dado
Complexidade
dos dados
Volume
HDFS Pressupostos
! Falhas de hardware (mais uma norma do que uma
exceo);
! Mover computao mais barato que mover dados;
! Portabilidade para diferentes hardwares e
plataformas;
! HDFS construdo usando a linguagem Java;
! Modelo Simples de Coerncia: uma vez escrito o
arquivo no pode ser alterado;
! Streaming de dados nos acessos.
25
HDFS Arquiterura
26
NameNode
Cliente
Metadados (Nome, rplicas,
): home/foo/data, 3,
Rack 2 Rack 1
Cliente
Blocos
Metadados ops
Leitura
DataNodes
Blocos ops
Escrita
Replicao
DataNodes
Nota: 1/3 da rplica em um bloco, 2/3 em um rack e de 1/3 distribudo uniformemente entre racks
restantes.
HDFS Sincronizao e
Consistncia de Cache
27
! Cache do lado do cliente arquivo temporrio
local;
! Foco na melhora de desempenho;
! Alocao no DataNode a cada montante de dados
equivalente a um bloco HDFS;
! Quando arquivo fechado pelo cliente, NameNode
efetiva a criao do arquivo e o aloca em
dispositivo secundrio;

HDFS Protocolo de
Comunicao
! Todos os protocolos de comunicao HDFS so
camadas em cima do protocolo TCP/IP.
! Cliente estabelece uma conexo a uma porta TCP
configurvel na mquina NameNode. Comunica o
Protocolo de Cliente com o NameNode;
! DataNodes falam com o NameNode usando protocolo
de DataNode;
! RPC abstrao envolve tanto ClientProtocol e
protocolo DataNode;
! NameNode nunca inicia um pedido; apenas responde
aos pedidos RPC emitidos por DataNodes ou clientes.

28
Introduo a
Armazenamento
Secundrio e Sistemas
de Arquivos Distribudo
Disciplina: Sistemas Distribudos
Professora: Fvia Delicato
Alunos: Thomaz Barros
Wagner Vieira
Abril, 2014