The Google File System


               Mycke  Richard Guntijo
               Renato Gomes Borges
                  Tauan Nascimento
Introdução

• Motivação
• Arquitetura
   o Chunkservers
   o Master Servers
   o Metadata
• Operações
   o read
   o write
   o record append
   o snapshot
• Tolerância a falhas
• Conclusão


                        2
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 performance
   o tolerância a falhas
   o escalabilidade




                                           3
Arquitetura
      




              4
Chunk

• Arquivos
  o Chunk Size




                 5
Chunk

• Arquivos
  o Chunk Size
  o Motivação 64 MB




                      6
Chunk

• Arquivos
  o Chunk Size
  o Motivação 64 MB
      Menos comunicação cliente/servidor




                                  7
Chunk

• Arquivos
  o Chunk Size
  o Motivação 64 MB
      Menos comunicação cliente/servidor
      Não sobrecarrega a rede




                                  8
Chunk

• Arquivos
  o Chunk Size
  o Motivação 64 MB
      Menos comunicação cliente/servidor
      Não sobrecarrega a rede
      Redução de metadados




                                  9
Chunkserver

• Armazenam chunks 




                      10
Chunkserver

• Armazenam chunks
• Executam sistema Linux
  o Linux controla máquina
      Possui próprio sistema de arquivo  




                                    11
Metadados

• Informações sobre chunk
   o Nome do local de arquivo e do chunk
   o Mapeamento de arquivos para chunk
   o Localização de cada chunk e suas réplicas




                                   12
Metadados

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




                                  13
Metadados

• Armazenamento de metadados
  o Informações sobre chunks : 64 bytes
• Evitar falta de memória
  o Mover chunks  
  o Garbage Collection




                                  14
Master Server

• Armazena metadados




                       15
Master Server

• Armazena metadados
• Primeiro a se comunicar com cliente




                                  16
Master Server

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




                                 17
Master Server

• Armazena metadados
• Primeiro a se comunicar com cliente
• Armazenamento não persistentes de 
  endereços de chunk
• Outras funções
  o Alocação de chunk
  o Exclusão de chunks
  o Armazena estados sobre chunkservers



                                18
Master Server

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




                                   19
Master Server

• Operação log
  o Guarda mudanças críticas sobre mudanças nos 
    metadados
  o É uma operação crítica
      Alta prioridade
      Várias cópias




                                   20
Esquema GFS




              21
Operações
     




            22
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. 




                                           23
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).
                                              24
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.

                                            25
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.
                                                26
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.


                                               27
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 no
buffer e escreve nesta ordem no chunk.
7 - A primária manda a ordem aos secundários, requisitando a 
escrita.
                                              28
Operações - Gravação




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




                                           29
Operações - Snapshot

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




                                            30
Operações - Record append

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




                                           31
Operações - Garbage collector

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




                           32
Tolerância a falhas
          




                 33
Tolerância a falhas


• Evitar falhas de componentes
• Componentes defeituosos podem resultar em:
   o sistema indisponível
   o dados corrompidos




                                         34
Alta disponibilidade

• Baseia-se em duas estratégias simples:
   o recuperação rapida
   o 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



                                             35
Alta disponibilidade

• Replicação:
  o cada chunk é replicado em múltiplos chunkservers
  o usuário pode especificar o nível de replicação (o padrão 
    é 3)
  o logs em master servers também são replicados




                                             36
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




                                           37
Integridade de dados (read)

• Requisição de leitura é feita para o chunkserver
  o verifica o checksum sobre os dados lidos
  o 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




                                             38
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.




                                            39
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




                                              40
Ferramentas de diagnóstico

• Todos os servidores GFS geram logs de eventos:
   o chunkservers conectando e desconectando
   o todas as requisições e respostas
• Funcionalidade poderosa para:
   o encontrar erros
   o isolar problemas
   o medir desempenho
   o realizar testes
• Baixo custo
• Logs podem ser removidos sempre que necessário



                                         41
Conclusão

• Atende as principais propostas:
   o desempenho
   o tolerância a falhas
   o escalabilidade
• Fácil manutenção e barata
• Permite desenvolver aplicações de grande porte na escala 
  de toda a internet




                                            42
Referências

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

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




                                              43

Gfs slides