SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Google File
System
Aline Sonnewend Adriano
Thiago Gibin Franceschinelli
Instituto de Ciência e Tecnologia - ICT
UNIFESP - Universidade Federal de São Paulo
Professor: Dr. Arlindo Flavio da Conceição
Roteiro
● Sistemas de arquivos
● Google File System
● Princípio
● Arquitetura
● Funcionamento
● Consistência
● Escrita
● Operações do Master
● Tolerância a falhas
Sistemas de Arquivos
● Sistemas de Arquivos Convencional
○ Conjunto de rotinas e estruturas lógicas que
permitem ao sistema operacional gerenciar
arquivos. Fornece uma interface ao cliente através
da qual os dados são manipulados sem conhecer a
implementação.
■ JFS, EXT1, EXR2, FAT16, FAT32, NTSF
Sistemas de Arquivos
Distribuídos
● Sistemas de Arquivos Distribuídos
○ Fornece os mesmos recursos que o sistema de
arquivos convencional, porém, o acesso a
informação remota ou local é realizada de forma
transparente ao usuário
■ CODA, NFS, AFS, GFS (Google File System)
Google File System
● Sistema de arquivos desenvolvido e utilizado pela
Google;
● Escalável para aplicações de distribuição intensiva de
dados;
● A Google utiliza o GFS para organizar e manipular
grandes arquivos, além de permitir que aplicações
consigam usar os recursos necessários.
○ YouTube, Gmail, Google Maps . . .
● Atende milhões de usuários, tem petabytes de espaço
de armazenamento e tempo de resposta mínimo
Google File System
● Suporta enorme volume de dados
processados diariamente;
● Uso de muitas máquinas de baixo custo com
capacidade de armazenamento alta e suporte
a muitos acessos
Princípio
● Monitoramento constante para detecção de erros,
tolerância a falhas e recuperação automática de dados;
● O sistema armazena um modesto número de
arquivos grandes, tipicamente maiores que 100MB.
Alguns da ordem de GB e outros arquivos pequenos
são suportados, apesar de não serem otimizados.
Princípio
● Utiliza append em vez de reescrever dados existentes.
● Escritas seqüenciais
○ Garante leituras rápidas, já que os dados estão próximos
entre si.
● Implementa semântica para execução de comandos append
concorrentes.
● O acesso e a manipulação de dados tão grandes requer uma
rede que tenha uma alta largura de banda, favorecendo--a
em relação à baixa latência.
Arquitetura
Um cluster do GFS consiste de um único master e múltiplos
chunkservers que são acessados por múltiplos clientes
Funcionamento
● O GFS master tem como principal função
coordenar o cluster.
○ Informa o cliente onde está a localização de um
chunk nos chunkservers.
○ Os arquivos são divididos em chunks de 64MB,
bem maiores que o tamanho de bloco de um
sistema de arquivo usual.
■ Evita desperdício de espaço por causa da fragmentação
interna usando “lazy space allocation”.
Funcionamento
● O tamanho grande dos chunks:
○ Reduz comunicação com o mestre
■ Escritas e leituras no mesmo chunk requerem apenas um
pedido inicial da localização do chunk ao mestre.
○ Cliente realiza muitas operações num mesmo
chunk, o que reduz o overhead da rede.
○ Também reduz o tamanho do metadata armazenado
pelo master, possibilitando deixá-la em memória.
Funcionamento
● Mesmo com a lazy space allocation existem
desvantagens, como um hot spot
○ Chunks que são acessados por muitos clientes, por
causa de um mesmo arquivo.
■ Sobrecarrega os chunkservers que o possui
Solução: aumentar a replicação destes dados.
● O master armazena três tipos de metadata:
○ os namespaces de arquivos e chunks;
○ o mapeamento de arquivos em chunks;
○ a localização de cada réplica dos chunks.
Funcionamento
● Todo metadata é mantido na memória do master, garantindo
rapidez.
○ Ele não guarda um record persistente de quais chunkservers
possuem uma réplica de um chunk
■ Apenas pede aos chunkservers por informações quando
iniciado e se atualiza através de mensagens “Heartbeat”.
■ Assim elimina-se o problema de manter a
sincronização do master e chunkservers por causa de
eventos, como a entrada ou a saída de um chunkserver do
cluster.
● O log de operação é armazenado no disco local do master e
replicado em máquinas remotas.
Consistência
● Possui modelo de consistência relaxada
Write Record Append
Serial success defined defined interspersed
with inconsistent
Concurrent success consistent but undefined
Failure inconsistent
Consistência
Consistência
● Uma região de arquivo é consistente:
○ Se todos os clientes virem os mesmos dados,
independente de quais réplicas lidas.
○ Escritas que sofreram falhas deixam a região
inconsistente.
● Uma região é defined depois que uma
mutação de um arquivo for consistente e
os clientes virem que a mutação escreveu
no arquivo integralmente.
Consistência
● Uma mutação é uma operação que muda o conteúdo
de um chunk
○ Uma escrita ou record append
● Utiliza--se um sistema de leases para manter a
consistência das mutações entre as réplicas
○ Minimiza o overhead sobre o mestre.
● Basicamente, o mestre pega uma réplica como primária
e permite as mutações nela. Esta cópia define a
ordem das mutações que posteriormente são
seguidas pelas réplicas secundárias.
Escrita - parte 1
1. A aplicação origina 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 e as localizações das
réplicas (primária e secundárias);
Escrita - parte 2
4. O cliente envia dados de escrita para todas as localidades. Os
dados são armazenados em buffers internos dos chunkservers;
Escrita - parte 3
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;
Escrita - parte 4
8. As secundárias respondem à primária;
9. A primária responde ao cliente:
a. Se uma escrita falhar num dos chunkservers, o cliente é
informado e a escrita é tentada novamente.
Operações do Master
● Armazenamento de metadata;
● Administração do namespace (locking);
● Comunicação periódica com os
chunkservers:
○ Dar instruções, coletar estados, verificar a saúde do
cluster
● Criar chunks;
● Re-replicar dados caso necessário;
Operações do Master
● Rebalanceamento de réplicas:
○ Feito periodicamente para melhorar a distribuição de
informações nos discos;
● Garbage collection:
○ Depois que um arquivo é deletado, o GFS não libera o espaço
físico imediatamente. O master escreve no log a operação e
renomeia o arquivo como um arquivo escondido, mantendo--o
por 3 dias. Até lá, o arquivo pode ser lido com o novo nome
ou até ser restaurado;
● Stale replica detection:
○ São garantidas versões dos chunks para distinguir quais estão
atualizadas e quais não.
Tolerância a falhas
● Falhas são frequentes e podem resultar em arquivos
corrompidos ou queda do sistema
○ Estratégias adotadas:
■ Restauração rápida
■ Replicação
● Masters e chunkservers reiniciam e a restauram em
segundos
● Replicação de chunks em servers de diferentes racks
garantem segurança
Tolerância a falhas
● Shadow masters podem ser acessados por leitura caso
o master caia
● Garante integridade de dados
○ Checksumming de chunk dividido em vários de 64KB
● Chunkservers podem escanear chunks inativos (pouco
usados)
● Em caso de arquivo corrompido, cria réplica não antiga
e deleta antiga
Curiosidades
● Mais de 15.000 computadores simples;
● São múltiplos clusteres distribuídos por todo o
mundo;
● Milhares de consultas executadas por segundo;
● Cada consulta lê centenas de MB’s de dados e
consome dezenas de bilhões de ciclos de CPU;
● Google tem dúzias de cópias de toda a Web!
Referências Bibliográficas
● GHEMAWAT, Sanjay, GOBIOFF, Howard, LEUNG, Shun-Tak.
The Google File System, http://research.google.com/archive/gfs.
html. Acessado em 04 de agosto de 2013
● KUMAR, Avinashi, GFS - The Google File System, http://www.
slideshare.net/guest2cb4689/google-file-system. Acessado em 04
de agosto de 2013

Mais conteúdo relacionado

Mais procurados

Power point jaringan
Power point jaringanPower point jaringan
Power point jaringanhandayanisri
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)Romain Jacotin
 
Introduction to Cryptography & PGP
Introduction to Cryptography & PGPIntroduction to Cryptography & PGP
Introduction to Cryptography & PGPRayed Alrashed
 
Aplikasi penghitungan upah harian menggunakan ms. excel 2007
Aplikasi penghitungan upah harian menggunakan ms. excel 2007Aplikasi penghitungan upah harian menggunakan ms. excel 2007
Aplikasi penghitungan upah harian menggunakan ms. excel 2007Andar Sihombing
 
Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasieddie Ismantoe
 
The NFS Version 4 Protocol
The NFS Version 4 ProtocolThe NFS Version 4 Protocol
The NFS Version 4 ProtocolKelum Senanayake
 
GFS - Google File System
GFS - Google File SystemGFS - Google File System
GFS - Google File Systemtutchiio
 
Keamanan sistem dalam dan luar
Keamanan sistem dalam dan luarKeamanan sistem dalam dan luar
Keamanan sistem dalam dan luarAnin Rodahad
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasibelajarkomputer
 
Materi 4-keamanan-komputer-keamanan-sistem-operasi
Materi 4-keamanan-komputer-keamanan-sistem-operasiMateri 4-keamanan-komputer-keamanan-sistem-operasi
Materi 4-keamanan-komputer-keamanan-sistem-operasisulaiman yunus
 
Buku pemrograman web html-css-javascript
Buku pemrograman web html-css-javascriptBuku pemrograman web html-css-javascript
Buku pemrograman web html-css-javascriptDeka M Wildan
 

Mais procurados (20)

Chubby
ChubbyChubby
Chubby
 
Power point jaringan
Power point jaringanPower point jaringan
Power point jaringan
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)
 
Introduction to Cryptography & PGP
Introduction to Cryptography & PGPIntroduction to Cryptography & PGP
Introduction to Cryptography & PGP
 
Aplikasi penghitungan upah harian menggunakan ms. excel 2007
Aplikasi penghitungan upah harian menggunakan ms. excel 2007Aplikasi penghitungan upah harian menggunakan ms. excel 2007
Aplikasi penghitungan upah harian menggunakan ms. excel 2007
 
Sejarah WINDOWS
Sejarah WINDOWSSejarah WINDOWS
Sejarah WINDOWS
 
Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasi
 
DHCP
DHCPDHCP
DHCP
 
The NFS Version 4 Protocol
The NFS Version 4 ProtocolThe NFS Version 4 Protocol
The NFS Version 4 Protocol
 
GFS - Google File System
GFS - Google File SystemGFS - Google File System
GFS - Google File System
 
Keamanan sistem dalam dan luar
Keamanan sistem dalam dan luarKeamanan sistem dalam dan luar
Keamanan sistem dalam dan luar
 
Cache coherence
Cache coherenceCache coherence
Cache coherence
 
Mesi
MesiMesi
Mesi
 
System+os study 7
System+os study 7System+os study 7
System+os study 7
 
System+os study 3
System+os study 3System+os study 3
System+os study 3
 
Google file system
Google file systemGoogle file system
Google file system
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasi
 
Struktur CPU
Struktur CPUStruktur CPU
Struktur CPU
 
Materi 4-keamanan-komputer-keamanan-sistem-operasi
Materi 4-keamanan-komputer-keamanan-sistem-operasiMateri 4-keamanan-komputer-keamanan-sistem-operasi
Materi 4-keamanan-komputer-keamanan-sistem-operasi
 
Buku pemrograman web html-css-javascript
Buku pemrograman web html-css-javascriptBuku pemrograman web html-css-javascript
Buku pemrograman web html-css-javascript
 

Destaque

Destaque (8)

Gfs slides
Gfs slidesGfs slides
Gfs slides
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
SO-08 Sistemas de Arquivos
SO-08 Sistemas de ArquivosSO-08 Sistemas de Arquivos
SO-08 Sistemas de Arquivos
 
Estratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineEstratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços online
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 

Semelhante a Google File System

Resumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosResumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosJoo200
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sqlRafael Redondo
 
Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfHurgelNeto
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaAdriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaLucas Brasilino
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação MonografiaLeon Homar
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaAlexandre Duarte
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 

Semelhante a Google File System (20)

Resumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosResumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicos
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
teAula 11
teAula 11teAula 11
teAula 11
 
Dsm (1)
Dsm (1)Dsm (1)
Dsm (1)
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sql
 
Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdf
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Kernel do Linux
Kernel do LinuxKernel do Linux
Kernel do Linux
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Gestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptxGestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptx
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
 
Sgf
SgfSgf
Sgf
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação Monografia
 
Gerencia de Memória Opensolaris
Gerencia de Memória OpensolarisGerencia de Memória Opensolaris
Gerencia de Memória Opensolaris
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 

Google File System

  • 1. Google File System Aline Sonnewend Adriano Thiago Gibin Franceschinelli Instituto de Ciência e Tecnologia - ICT UNIFESP - Universidade Federal de São Paulo Professor: Dr. Arlindo Flavio da Conceição
  • 2. Roteiro ● Sistemas de arquivos ● Google File System ● Princípio ● Arquitetura ● Funcionamento ● Consistência ● Escrita ● Operações do Master ● Tolerância a falhas
  • 3. Sistemas de Arquivos ● Sistemas de Arquivos Convencional ○ Conjunto de rotinas e estruturas lógicas que permitem ao sistema operacional gerenciar arquivos. Fornece uma interface ao cliente através da qual os dados são manipulados sem conhecer a implementação. ■ JFS, EXT1, EXR2, FAT16, FAT32, NTSF
  • 4. Sistemas de Arquivos Distribuídos ● Sistemas de Arquivos Distribuídos ○ Fornece os mesmos recursos que o sistema de arquivos convencional, porém, o acesso a informação remota ou local é realizada de forma transparente ao usuário ■ CODA, NFS, AFS, GFS (Google File System)
  • 5. Google File System ● Sistema de arquivos desenvolvido e utilizado pela Google; ● Escalável para aplicações de distribuição intensiva de dados; ● A Google utiliza o GFS para organizar e manipular grandes arquivos, além de permitir que aplicações consigam usar os recursos necessários. ○ YouTube, Gmail, Google Maps . . . ● Atende milhões de usuários, tem petabytes de espaço de armazenamento e tempo de resposta mínimo
  • 6. Google File System ● Suporta enorme volume de dados processados diariamente; ● Uso de muitas máquinas de baixo custo com capacidade de armazenamento alta e suporte a muitos acessos
  • 7. Princípio ● Monitoramento constante para detecção de erros, tolerância a falhas e recuperação automática de dados; ● O sistema armazena um modesto número de arquivos grandes, tipicamente maiores que 100MB. Alguns da ordem de GB e outros arquivos pequenos são suportados, apesar de não serem otimizados.
  • 8. Princípio ● Utiliza append em vez de reescrever dados existentes. ● Escritas seqüenciais ○ Garante leituras rápidas, já que os dados estão próximos entre si. ● Implementa semântica para execução de comandos append concorrentes. ● O acesso e a manipulação de dados tão grandes requer uma rede que tenha uma alta largura de banda, favorecendo--a em relação à baixa latência.
  • 9. Arquitetura Um cluster do GFS consiste de um único master e múltiplos chunkservers que são acessados por múltiplos clientes
  • 10. Funcionamento ● O GFS master tem como principal função coordenar o cluster. ○ Informa o cliente onde está a localização de um chunk nos chunkservers. ○ Os arquivos são divididos em chunks de 64MB, bem maiores que o tamanho de bloco de um sistema de arquivo usual. ■ Evita desperdício de espaço por causa da fragmentação interna usando “lazy space allocation”.
  • 11. Funcionamento ● O tamanho grande dos chunks: ○ Reduz comunicação com o mestre ■ Escritas e leituras no mesmo chunk requerem apenas um pedido inicial da localização do chunk ao mestre. ○ Cliente realiza muitas operações num mesmo chunk, o que reduz o overhead da rede. ○ Também reduz o tamanho do metadata armazenado pelo master, possibilitando deixá-la em memória.
  • 12. Funcionamento ● Mesmo com a lazy space allocation existem desvantagens, como um hot spot ○ Chunks que são acessados por muitos clientes, por causa de um mesmo arquivo. ■ Sobrecarrega os chunkservers que o possui Solução: aumentar a replicação destes dados. ● O master armazena três tipos de metadata: ○ os namespaces de arquivos e chunks; ○ o mapeamento de arquivos em chunks; ○ a localização de cada réplica dos chunks.
  • 13. Funcionamento ● Todo metadata é mantido na memória do master, garantindo rapidez. ○ Ele não guarda um record persistente de quais chunkservers possuem uma réplica de um chunk ■ Apenas pede aos chunkservers por informações quando iniciado e se atualiza através de mensagens “Heartbeat”. ■ Assim elimina-se o problema de manter a sincronização do master e chunkservers por causa de eventos, como a entrada ou a saída de um chunkserver do cluster. ● O log de operação é armazenado no disco local do master e replicado em máquinas remotas.
  • 14. Consistência ● Possui modelo de consistência relaxada Write Record Append Serial success defined defined interspersed with inconsistent Concurrent success consistent but undefined Failure inconsistent Consistência
  • 15. Consistência ● Uma região de arquivo é consistente: ○ Se todos os clientes virem os mesmos dados, independente de quais réplicas lidas. ○ Escritas que sofreram falhas deixam a região inconsistente. ● Uma região é defined depois que uma mutação de um arquivo for consistente e os clientes virem que a mutação escreveu no arquivo integralmente.
  • 16. Consistência ● Uma mutação é uma operação que muda o conteúdo de um chunk ○ Uma escrita ou record append ● Utiliza--se um sistema de leases para manter a consistência das mutações entre as réplicas ○ Minimiza o overhead sobre o mestre. ● Basicamente, o mestre pega uma réplica como primária e permite as mutações nela. Esta cópia define a ordem das mutações que posteriormente são seguidas pelas réplicas secundárias.
  • 17. Escrita - parte 1 1. A aplicação origina 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 e as localizações das réplicas (primária e secundárias);
  • 18. Escrita - parte 2 4. O cliente envia dados de escrita para todas as localidades. Os dados são armazenados em buffers internos dos chunkservers;
  • 19. Escrita - parte 3 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;
  • 20. Escrita - parte 4 8. As secundárias respondem à primária; 9. A primária responde ao cliente: a. Se uma escrita falhar num dos chunkservers, o cliente é informado e a escrita é tentada novamente.
  • 21. Operações do Master ● Armazenamento de metadata; ● Administração do namespace (locking); ● Comunicação periódica com os chunkservers: ○ Dar instruções, coletar estados, verificar a saúde do cluster ● Criar chunks; ● Re-replicar dados caso necessário;
  • 22. Operações do Master ● Rebalanceamento de réplicas: ○ Feito periodicamente para melhorar a distribuição de informações nos discos; ● Garbage collection: ○ Depois que um arquivo é deletado, o GFS não libera o espaço físico imediatamente. O master escreve no log a operação e renomeia o arquivo como um arquivo escondido, mantendo--o por 3 dias. Até lá, o arquivo pode ser lido com o novo nome ou até ser restaurado; ● Stale replica detection: ○ São garantidas versões dos chunks para distinguir quais estão atualizadas e quais não.
  • 23. Tolerância a falhas ● Falhas são frequentes e podem resultar em arquivos corrompidos ou queda do sistema ○ Estratégias adotadas: ■ Restauração rápida ■ Replicação ● Masters e chunkservers reiniciam e a restauram em segundos ● Replicação de chunks em servers de diferentes racks garantem segurança
  • 24. Tolerância a falhas ● Shadow masters podem ser acessados por leitura caso o master caia ● Garante integridade de dados ○ Checksumming de chunk dividido em vários de 64KB ● Chunkservers podem escanear chunks inativos (pouco usados) ● Em caso de arquivo corrompido, cria réplica não antiga e deleta antiga
  • 25. Curiosidades ● Mais de 15.000 computadores simples; ● São múltiplos clusteres distribuídos por todo o mundo; ● Milhares de consultas executadas por segundo; ● Cada consulta lê centenas de MB’s de dados e consome dezenas de bilhões de ciclos de CPU; ● Google tem dúzias de cópias de toda a Web!
  • 26. Referências Bibliográficas ● GHEMAWAT, Sanjay, GOBIOFF, Howard, LEUNG, Shun-Tak. The Google File System, http://research.google.com/archive/gfs. html. Acessado em 04 de agosto de 2013 ● KUMAR, Avinashi, GFS - The Google File System, http://www. slideshare.net/guest2cb4689/google-file-system. Acessado em 04 de agosto de 2013