gfs slides

43
The Google File System Mycke Richard Guntijo Renato Gomes Borges Tauan Nascimento

Upload: tauan-nascimento-de-almeida

Post on 29-Nov-2014

248 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Gfs slides

The Google File System

Mycke  Richard GuntijoRenato Gomes Borges

Tauan Nascimento

Page 2: Gfs slides

2

Introdução

• Motivação• Arquitetura

o Chunkserverso Master Serverso Metadata

• Operaçõeso reado writeo record appendo snapshot

• Tolerância a falhas• Conclusão

Page 3: Gfs slides

3

Motivação

• Espaço de armazenamento de centenas de terabytes sobre milhares de discos em mais de mil máquinas.

• Acessado por centenas de clientes concorrentemente.

• Atender requisitos de:o alta performanceo tolerância a falhaso escalabilidade

Page 4: Gfs slides

4

Arquitetura

 

Page 5: Gfs slides

5

Chunk

• Arquivoso Chunk Size

Page 6: Gfs slides

6

Chunk

• Arquivoso Chunk SizeoMotivação 64 MB

Page 7: Gfs slides

7

Chunk

• Arquivoso Chunk SizeoMotivação 64 MB

Menos comunicação cliente/servidor

Page 8: Gfs slides

8

Chunk

• Arquivoso Chunk SizeoMotivação 64 MB

Menos comunicação cliente/servidorNão sobrecarrega a rede

Page 9: Gfs slides

9

Chunk

• Arquivoso Chunk SizeoMotivação 64 MB

Menos comunicação cliente/servidorNão sobrecarrega a redeRedução de metadados

Page 10: Gfs slides

10

Chunkserver

• Armazenam chunks 

Page 11: Gfs slides

11

Chunkserver

• Armazenam chunks• Executam sistema Linux

oLinux controla máquinaPossui próprio sistema de arquivo  

Page 12: Gfs slides

12

Metadados

• Informações sobre chunkoNome do local de arquivo e do chunkoMapeamento de arquivos para chunkoLocalização de cada chunk e suas réplicas

Page 13: Gfs slides

13

Metadados

• Armazenamento de metadadoso Informações sobre chunks : 64 bytes  

Page 14: Gfs slides

14

Metadados

• Armazenamento de metadadoso Informações sobre chunks : 64 bytes

• Evitar falta de memóriaoMover chunks  o Garbage Collection

Page 15: Gfs slides

15

Master Server

• Armazena metadados

Page 16: Gfs slides

16

Master Server

• Armazena metadados• Primeiro a se comunicar com cliente

Page 17: Gfs slides

17

Master Server

• Armazena metadados• Primeiro a se comunicar com cliente• Armazenamento não persistentes de endereços de chunk

Page 18: Gfs slides

18

Master Server

• Armazena metadados• Primeiro a se comunicar com cliente• Armazenamento não persistentes de endereços de chunk

• Outras funçõesoAlocação de chunkoExclusão de chunksoArmazena estados sobre chunkservers

Page 19: Gfs slides

19

Master Server

• Operação logo Guarda mudanças críticas sobre mudanças nos metadados

Page 20: Gfs slides

20

Master Server

• Operação logo Guarda mudanças críticas sobre mudanças nos metadados

o É uma operação críticaAlta prioridadeVárias cópias

Page 21: Gfs slides

21

Esquema GFS

Page 22: Gfs slides

22

Operações

 

Page 23: Gfs slides

23

Operações

• Interface POSIX•  Criar, deletar, ler e escrever.• Captura instantânea (snapshots)• Gravação anexa (record append)• Termo: Mutação - operações que mudam o conteúdo do metadata. 

Page 24: Gfs slides

24

Operações - Leitura

1 - Aplicação informa (file name, byte range) para o Cliente GFS.2 - Cliente GFS traduz o pedido da aplicação para (file name, chunk index).3 - Master responde para o Cliente GFS com (chunk handle, replica locations).

Page 25: Gfs slides

25

Operações - Leitura

4 - Cliente GFS manda para os Chunk Servers (chunk handle, byte range).5 - Chunk Servers respondem com o dado do arquivo.6 - Enfim, o Cliente GFS manda para aplicação o dado solicitado.

Page 26: Gfs slides

26

Operações - Gravação

1 - Aplicação faz um pedido de escrita.2 - O Cliente GFS traduz o pedido (file name, data) para (file name, chunk index) e manda ao master.3 - O mestre responde com o (chunk handle, primary and secondary replica locations), localizações das réplicas.

Page 27: Gfs slides

27

Operações - Gravação

4 - O cliente envia dados de escrita para todas as localidades. Os dados são armazenados em buffers internos dos chunkservers.

Page 28: Gfs slides

28

Operações - Gravação

5 - O cliente manda o comando de escrita a réplica primária.6 - Esta réplica determina a ordem em série das instâncias dos dados armazenados nobuffer e escreve nesta ordem no chunk.7 - A primária manda a ordem aos secundários, requisitando a escrita.

Page 29: Gfs slides

29

Operações - Gravação

8 - As secundárias respondem à primária.9 - A primária responde ao cliente.

Page 30: Gfs slides

30

Operações - Snapshot

• Cópias de um arquivo ou árvore de diretório com baixo custo

• Prioritária 

Page 31: Gfs slides

31

Operações - Record append

• Atomicidade• Aplicações distribuídas, concorrência • GFS escolhe o local a ser gravado

Page 32: Gfs slides

32

Operações - Garbage collector

• Exclusão lógica• Prazo: 3 dias• Operação Log

Page 33: Gfs slides

33

Tolerância a falhas

 

Page 34: Gfs slides

34

Tolerância a falhas

• Evitar falhas de componentes• Componentes defeituosos podem resultar em:

o sistema indisponívelo dados corrompidos

Page 35: Gfs slides

35

Alta disponibilidade

• Baseia-se em duas estratégias simples:o recuperação rapidao replicação

• Recuperação rápida:o reiniciar e carregar seu estado anterior em questão de segundos

o não existe diferenciação entre terminação normal e anormal

Page 36: Gfs slides

36

Alta disponibilidade

• Replicação:o cada chunk é replicado em múltiplos chunkserverso usuário pode especificar o nível de replicação (o padrão é 3)

o logs em master servers também são replicados

Page 37: Gfs slides

37

Integridade de dados

• Somas de verificação (checksum) de 32 bits para cada bloco de 64 KB

• Checksums são mantidos na mémoria• Integridade é mantida em cada operação

Page 38: Gfs slides

38

Integridade de dados (read)

• Requisição de leitura é feita para o chunkservero verifica o checksum sobre os dados lidoso se um erro é encontrado:

chunkserver avisa ao master e ao cliente do erro o cliente faz a leitura de uma réplica o master corrige o chunkserver incorreto através das réplicas

Page 39: Gfs slides

39

Integridade de dados (append)

• Atualiza o checksum antigo apenas incrementando a nova soma

• Quando é necessário usar um novo bloco de dados, a soma de verificação é calculada para o restante dos dados deste bloco.

Page 40: Gfs slides

40

Integridade de dados (write)

• Se uma operação de escrita sobrescreve uma série de dados do chunk, é necessário verificar o primeiro e o último bloco sendo sobrescrito

• Faz-se a escrita necessária• Recalcula o checksum para todos os blocos modificados

Page 41: Gfs slides

41

Ferramentas de diagnóstico

• Todos os servidores GFS geram logs de eventos:o chunkservers conectando e desconectandoo todas as requisições e respostas

• Funcionalidade poderosa para:o encontrar erroso isolar problemaso medir desempenhoo realizar testes

• Baixo custo• Logs podem ser removidos sempre que necessário

Page 42: Gfs slides

42

Conclusão

• Atende as principais propostas:o desempenhoo tolerância a falhaso escalabilidade

• Fácil manutenção e barata• Permite desenvolver aplicações de grande porte na escala de toda a internet

Page 43: Gfs slides

43

Referências

• http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/pt-BR//papers/gfs-sosp2003.pdf

• http://www.uio.no/studier/emner/matnat/ifi/INF5100/h10/undervisningsmateriale/gfs.pdf