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

MySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.comMySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.comJean-François Gagné
 
Packet Tracer: Load Balancing with GLBP and FHRP
Packet Tracer: Load Balancing with GLBP and FHRPPacket Tracer: Load Balancing with GLBP and FHRP
Packet Tracer: Load Balancing with GLBP and FHRPRafat Khandaker
 
Computer architecture multi processor
Computer architecture multi processorComputer architecture multi processor
Computer architecture multi processorMazin Alwaaly
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scriptingvceder
 
Kernel. Operating System
Kernel. Operating SystemKernel. Operating System
Kernel. Operating Systempratikkadam78
 
OS Process and Thread Concepts
OS Process and Thread ConceptsOS Process and Thread Concepts
OS Process and Thread Conceptssgpraju
 
Konfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOSKonfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOSI Putu Hariyadi
 
Introduction to operating system, system calls and interrupts
Introduction to operating system, system calls and interruptsIntroduction to operating system, system calls and interrupts
Introduction to operating system, system calls and interruptsShivam Mitra
 
Os unit 3 , process management
Os unit 3 , process managementOs unit 3 , process management
Os unit 3 , process managementArnav Chowdhury
 
Linux command line cheatsheet
Linux command line cheatsheetLinux command line cheatsheet
Linux command line cheatsheetWe Ihaveapc
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015Kohei KaiGai
 
Google File System - GFS Presentation Slides PPT
Google File System - GFS Presentation Slides PPTGoogle File System - GFS Presentation Slides PPT
Google File System - GFS Presentation Slides PPTDiwasPandey3
 
Cpu scheduling in operating System.
Cpu scheduling in operating System.Cpu scheduling in operating System.
Cpu scheduling in operating System.Ravi Kumar Patel
 

Mais procurados (20)

Ripv2
Ripv2Ripv2
Ripv2
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
MySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.comMySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.com
 
Cap2 mod2(sol)
Cap2 mod2(sol)Cap2 mod2(sol)
Cap2 mod2(sol)
 
Packet Tracer: Load Balancing with GLBP and FHRP
Packet Tracer: Load Balancing with GLBP and FHRPPacket Tracer: Load Balancing with GLBP and FHRP
Packet Tracer: Load Balancing with GLBP and FHRP
 
Computer architecture multi processor
Computer architecture multi processorComputer architecture multi processor
Computer architecture multi processor
 
cpu scheduling in os
cpu scheduling in oscpu scheduling in os
cpu scheduling in os
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scripting
 
Kernel. Operating System
Kernel. Operating SystemKernel. Operating System
Kernel. Operating System
 
Cron
CronCron
Cron
 
OS Process and Thread Concepts
OS Process and Thread ConceptsOS Process and Thread Concepts
OS Process and Thread Concepts
 
Konfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOSKonfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOS
 
Introduction to operating system, system calls and interrupts
Introduction to operating system, system calls and interruptsIntroduction to operating system, system calls and interrupts
Introduction to operating system, system calls and interrupts
 
Os unit 3 , process management
Os unit 3 , process managementOs unit 3 , process management
Os unit 3 , process management
 
Linux command line cheatsheet
Linux command line cheatsheetLinux command line cheatsheet
Linux command line cheatsheet
 
Priority scheduling algorithms
Priority scheduling algorithmsPriority scheduling algorithms
Priority scheduling algorithms
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
 
Google File System - GFS Presentation Slides PPT
Google File System - GFS Presentation Slides PPTGoogle File System - GFS Presentation Slides PPT
Google File System - GFS Presentation Slides PPT
 
Cpu scheduling in operating System.
Cpu scheduling in operating System.Cpu scheduling in operating System.
Cpu scheduling in operating System.
 
Spanning Tree Protocol
Spanning Tree ProtocolSpanning Tree Protocol
Spanning Tree Protocol
 

Destaque

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 onlineGuto Xavier
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivosJoao Ferreira
 
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 ParalelaAdriano Teixeira de Souza
 
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 UsoNatanael Simões
 
GFS - Google File System
GFS - Google File SystemGFS - Google File System
GFS - Google File Systemtutchiio
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)Romain Jacotin
 

Destaque (10)

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
 
GFS - Google File System
GFS - Google File SystemGFS - Google File System
GFS - Google File System
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)
 

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