Sistemas de Arquivos Distribuído
Short Description
Apresentação breve sobre sistemas de arquivos distribuídos (NFS e HDFS)....
Description
Introdução a Armazenamento Secundário e Sistemas de Arquivos Arquivos Distribuído Distribuído Disciplina: Sistemas Distribuídos Professora: Fávia Delicato Alunos: Thomaz Barros Wagner Vieira Abril, 2014
Agenda 1.
Sistema de Arquivos
2.
Sistemas de Arquivos Distribuído
3.
Network File System (NFS) 1. Introdução 2. Arquitetura 3. Sincronização 4. Consistência de Cache
4.
Google File System (GFS) 1. Introdução 2. Arquitetura 3. Servidor Master 4. Escalabilidade
5.
Hadoop Distributed File System (HDFS) 1. Pressupostos 2. Arquitetura 3. Sincronização e Consitência de Cache
2
Sistema de Arquivos Introdução !
Permite aos usuários criarem arquivos que podem ser persistidos, compartilhados e estruturados, ou seja, organizados internamente.
!
Operações básicas de manipulação 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 permissão de manipulação de determinado arquivo por parte de um processo. Ler – permite que determinado processo leia dados do arquivo; Escrever – permite que determinado processo modifique o conteúdo do arquivo;
3
Sistema de Arquivos – Definições !
Estrutura de Arquivo ! Field (campo) : elemento básico do dado, que contém um único valor, como um sobrenome de um empregado, uma data ou uma leitura de um sensor; ! Record (registro) : conjunto de campos; (arquivo): conjunto de registros ! File similares;
!
Alguns sistemas de arquivo não contém o conceito de registro.
4
Sistemas de Gerenciamento de Arquivos !
Provêem serviços para usuários e aplicações manipularem os arquivos.
!
Devem cumprir os seguintes objetivos:
1. Satisfazer os requisitos dos usuários
!
Criar, deletar, ler e escrever arquivos; Controlar o acesso aos arquivos; Mover dados entre os arquivos;
!
Recuperação em caso de dano;
!
Acesso aos arquivos através de seu nome;
! !
5
Sistema de Gerenciamento de Arquivos 2. Minimizar o quanto possível problemas de validade, corrupção e perda de dados;
3. Prover o máximo de desempenho em termos de throughput de dados e tempo de resposta ao usuário;
4. Suportar um variado leque de dispositivos de armazenamento secundário;
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 Genérico Programa de usuário
Indexação Métodos de Acesso Indexação Sequencial sequencial
Hashed
E/S lógicas Supervisor de E/S básicas Sistema de arquivo básico Drivers de dispositivos secundários
7
Sistemas de Arquivos Distribuído !
Sistemas de arquivos foram originalmente desenvolvidos para lidar com um único dispositivo.
!
A mudança de como usuários e organizações compartilham arquivos levou ao desenvolvimento de sistemas de arquivos distribuídos;
!
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;
Requisições do cliente para o acesso a arquivos
Arquivo permanece 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
RPC client stub
RPC server stub
Local file system interface
10
NFS – Sincronização !
Necessidade de existir uma política de leitura e escrita para evitar problemas quando um arquivo é compartilhado por dois ou mais usuários;
!
Inicialmente, vimos que todas as operações sobre os arquivos eram diretamente encaminhadas para o servidor;
!
Contudo, essa abordagem pode prejudicar o desempenho das operações;
11
NFS – Sincronização !
Na prática, segue-se o seguinte modelo: 1. Arquivo movido para o cliente
Arquivo antigo
Arquivo novo
2. Acessos são feitos no cliente 3. Cliente termina e retorna o arquivo ao arquivo
!
Como controlar quando há modificações simultâneas?
12
NFS – Sincronização !
Uso de um gerenciador de bloqueio;
!
Leitura não é bloqueante por completo;
!
Escrita necessita de bloqueio exclusivo;
!
São quatro operações de bloqueio: !
Lock; Lockt;
!
Locku;
!
Renew;
!
13
NFS – Consistência de Cache Cache de Memória
Aplicação Cliente
Servidor NFS
Cache de disco
14
NFS – Consistência de Cache !
Duas abordagens para Cache: 1. Vimos anteriormente; 1. Arquivo movido para o cliente
Arquivo antigo
Arquivo novo
2. Acessos são feitos no cliente 3. Cliente termina e retorna o arquivo ao arquivo
15
NFS – Consistência de Cache 2. Open Delegation 1. Cliente requisita o arquivo 2. Servidor delega o arquivo
Arquivo antigo Cópia local
3. Servidor revoga delegação
Arquivo atualizado 4. Cliente envia o arquivo
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 indisponíveis repentinamente;
Google File System (GFS) vem para solucionar tais problemas.
17
GFS – Introdução !
Focado em arquivos muito grandes (vários gigabytes);
!
Operações de escrita costumam anexar mais dados aos arquivos existentes; !
!
Ao invés de sobrescrever os arquivos existentes;
Sempre em mente que os servidores não são confiáveis;
18
GFS – Arquitetura nome do arquivo, índice do chunk
endereço de contato
Estado do chunk server
Instruções
ID do chunk, faixa
Chunk server
Chunk server
Chunk server
Sistema de Arquivo Linux
Sistema de Arquivo Linux
Sistema de Arquivo Linux
Dados do chunk
A organização de um cluster de servidores do Google
19
GFS – Servidor Master !
Armazena a metadados dos chunks; ! ! !
!
O que acontece se um chunk server falhar? ! !
!
Localização; Label; Quais processos estão ocorrendo.
Exitem réplicas dos chunks em mais de um servidor; “Snapshot” do chunk e procede com uma nova replicação.
Atualizações periódicas do que cada servidor de chunks possui;
20
GFS – Arquitetura / Escalabilidade Chunk 1 Arquivo 1
Chunk Server
Chunk 2 Arquivo 1 Chunk 1 Arquivo 2
Chunk 1 Arquivo 2
Aplicação cliente
Endereço do chunk
Master
Chunk Server
Chunk 1 Arquivo 1
Redundância
Chunk 2 Arquivo 2
Chunk 1 Arquivo 2
Chunk Server
Chunk 1 Arquivo 2 Chunk 2 Arquivo 2
21
GFS – Escalabilidade !
Por que essa arquitetura permite a escalabilidade dos serviços?
!
Maior carga de operações compete aos servidores de chunk, assim o master não é um gargalo;
22
Hadoop Distributed File System (HDFS) !
Um módulo do projeto Apache Hadoop; !
Programa open-source para confiabilidade, escalabilidade e computação distribuída.
!
Fornece acesso de alta taxa de transferência aos dados da aplicação;
!
Projetado para rodar em hardware commodity / hardware de baixo custo;
!
Minimização do consumo de largura de banda global e latência de leitura.
23
HDFS – Pressupostos !
Base de dados grandes !
Adequado para aplicações Big Data;
Volume Tamanho do Dado
Complexidade dos dados
24
HDFS – Pressupostos !
Falhas de hardware (mais uma norma do que uma exceção);
!
Mover computação é mais barato que mover dados;
!
Portabilidade para diferentes hardwares e plataformas; !
HDFS é construído usando a linguagem Java;
!
Modelo Simples de Coerência: uma vez escrito o arquivo não pode ser alterado;
!
Streaming de dados nos acessos.
25
HDFS – Arquiterura Metadados ops
Metadados (Nome, réplicas, …): home/foo/data, 3, …
NameNode
Cliente
Leitura
Blocos ops DataNodes
DataNodes Replicação
Blocos
Rack 1
Rack 2 Escrita Cliente
Nota: 1/3 da réplica em um bloco, 2/3 em um rack e de 1/3 distribuído uniformemente entre racks restantes.
26
HDFS – Sincronização e Consistência de Cache !
Cache do lado do cliente – arquivo temporário local;
!
Foco na melhora de desempenho;
!
Alocação no DataNode a cada montante de dados equivalente a um bloco HDFS;
!
Quando arquivo é fechado pelo cliente, NameNode efetiva a criação do arquivo e o aloca em dispositivo secundário;
27
HDFS – Protocolo de Comunicação !
Todos os protocolos de comunicação HDFS são camadas em cima do protocolo TCP/IP. !
!
Cliente estabelece uma conexão a uma porta TCP configurável na máquina NameNode. Comunica o Protocolo de Cliente com o NameNode; DataNodes falam com o NameNode usando protocolo de DataNode;
!
RPC abstração envolve tanto ClientProtocol e protocolo DataNode;
!
NameNode nunca inicia um pedido; apenas responde aos pedidos RPC emitidos por DataNodes ou clientes.
28
Introdução a Armazenamento Secundário e Sistemas de Arquivos Distribuído Disciplina: Sistemas Distribuídos Professora: Fávia Delicato Alunos: Thomaz Barros Wagner Vieira Abril, 2014
View more...
Comments