Sistemas de Arquivos Distribuído

29 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto

(1)

Introdução a

Introdução a

Armazenamento

Armazenamento

Secundário e Sistemas

Secundário e Sistemas

de Arquiv

de Arquiv

os Dis

os Dis

tribuído

tribuído

Disciplina:

Disciplina: Sistemas Distribuídos Sistemas Distribuídos

Professora:

Professora: Fávia Delicato Fávia Delicato

Alunos:

Alunos: Thomaz BarrosThomaz Barros

Wagner Vieira

Wagner Vieira

Abril, 2014

(2)

Agenda

Agenda

1.

1. Sistema de ArquivosSistema de Arquivos

2.

2. Sistemas de Arquivos DistribuídoSistemas de Arquivos Distribuído

3.

3. Network File System (NFS)Network File System (NFS) 1. 1. IntroduçãoIntrodução 2. 2. ArquiteturaArquitetura 3. 3. SincronizaçãoSincronização 4.

4. Consistência de CacheConsistência de Cache

4.

4. Google File System (GFS)Google File System (GFS) 1.

1. IntroduçãoIntrodução

2.

2. ArquiteturaArquitetura

3.

3. Servidor MasterServidor Master

4.

4. EscalabilidadeEscalabilidade

5.

5. Hadoop Distributed File System (HDFS)Hadoop Distributed File System (HDFS) 1.

1. PressupostosPressupostos

2.

2. ArquiteturaArquitetura

3.

3. Sincronização e Consitência de CacheSincronização e Consitência de Cache

2

(3)

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;

(4)

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;

!

File (arquivo): conjunto de registros

similares;

!

Alguns sistemas de arquivo não contém o

conceito de registro.

(5)

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;

(6)

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;

(7)

Arquitetura de um Sistema

de Arquivos Genérico

7

Programa de usuário

Sequencial Indexação

sequencial Indexação Hashed Métodos de Acesso

E/S lógicas

Supervisor de E/S básicas Sistema de arquivo básico

(8)

Sistemas de Arquivos

Distribuído

! S i s t e m a s d e a r q u i v o s f o r a m o r i g i n a l m e n t e

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;

(9)

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 Requisições do cliente para o acesso a arquivos

9

(10)

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

(11)

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;

(12)

NFS – Sincronização

!

Na prática, segue-se o seguinte modelo:

! Como controlar quando há modificações simultâneas?

12

Arquivo antigo

Arquivo novo

1. Arquivo movido para o cliente

3. Cliente termina e retorna o arquivo ao arquivo

(13)

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;

(14)

NFS – Consistência de

Cache

Cache de Memória Cache de disco Aplicação Cliente Servidor NFS

14

(15)

NFS – Consistência 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

(16)

NFS – Consistência de

Cache

Cópia local Arquivo antigo Arquivo atualizado

1. Cliente requisita o arquivo

2. Servidor delega o arquivo

3. Servidor revoga delegação

4. Cliente envia o arquivo

2.

Open Delegation

(17)

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.

(18)

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;

(19)

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 endereço de contato Instruções Estado do chunk server ID do chunk, faixa Dados do chunk

(20)

GFS – Servidor Master

!

Armazena a metadados dos chunks;

! Localização; ! Label;

! Quais processos estão ocorrendo.

!

O que acontece se um chunk server falhar?

! 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;

(21)

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 Redundância Master Aplicação

cliente Endereço do chunk

Chunk Server

Chunk Server

(22)

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;

(23)

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.

(24)

HDFS – Pressupostos

!

Base de dados grandes

! Adequado para aplicações Big Data;

24

Tamanho do Dado Complexidade dos dados

Volume

(25)

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.

(26)

HDFS – Arquiterura

26

NameNode

Cliente

Metadados (Nome, réplicas, …): home/foo/data, 3, … Rack 2 Rack 1 Cliente Blocos Metadados ops Leitura DataNodes Blocos ops Escrita Replicação DataNodes

Nota: 1/3 da réplica em um bloco, 2/3 em um rack e de 1/3 distribuído uniformemente entre racks restantes.

(27)

HDFS – Sincronização e

Consistência de Cache

27

!

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;

(28)

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.

(29)

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

Imagem

Referências

temas relacionados :