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

Communication in Distributed Systems
Communication in Distributed SystemsCommunication in Distributed Systems
Communication in Distributed SystemsDilum Bandara
 
Google File System
Google File SystemGoogle File System
Google File Systemnadikari123
 
Google File Systems
Google File SystemsGoogle File Systems
Google File SystemsAzeem Mumtaz
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles Nilay Shrivastava
 
Synchronization in distributed computing
Synchronization in distributed computingSynchronization in distributed computing
Synchronization in distributed computingSVijaylakshmi
 
Cloud Storage
Cloud StorageCloud Storage
Cloud StorageVishalR50
 
Distributed computing ).ppt him
Distributed computing ).ppt himDistributed computing ).ppt him
Distributed computing ).ppt himHimanshu Saini
 
Locks In Disributed Systems
Locks In Disributed SystemsLocks In Disributed Systems
Locks In Disributed Systemsmridul mishra
 
Fault tolerant presentation
Fault tolerant presentationFault tolerant presentation
Fault tolerant presentationskadyan1
 
Synchronization in distributed systems
Synchronization in distributed systems Synchronization in distributed systems
Synchronization in distributed systems SHATHAN
 
Cloud-forensics
Cloud-forensicsCloud-forensics
Cloud-forensicsanupriti
 
Soal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).doc
Soal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).docSoal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).doc
Soal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).docUabdulAziz1
 
Design Goals of Distributed System
Design Goals of Distributed SystemDesign Goals of Distributed System
Design Goals of Distributed SystemAshish KC
 
Virus and Malicious Code Chapter 5
Virus and Malicious Code Chapter 5Virus and Malicious Code Chapter 5
Virus and Malicious Code Chapter 5AfiqEfendy Zaen
 

Mais procurados (20)

Cluster computing
Cluster computingCluster computing
Cluster computing
 
Google file system
Google file systemGoogle file system
Google file system
 
Communication in Distributed Systems
Communication in Distributed SystemsCommunication in Distributed Systems
Communication in Distributed Systems
 
Google File System
Google File SystemGoogle File System
Google File System
 
Google File Systems
Google File SystemsGoogle File Systems
Google File Systems
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles
 
Synchronization in distributed computing
Synchronization in distributed computingSynchronization in distributed computing
Synchronization in distributed computing
 
Cloud Storage
Cloud StorageCloud Storage
Cloud Storage
 
Google File System
Google File SystemGoogle File System
Google File System
 
Distributed computing ).ppt him
Distributed computing ).ppt himDistributed computing ).ppt him
Distributed computing ).ppt him
 
Transparency and concurrency
Transparency and concurrencyTransparency and concurrency
Transparency and concurrency
 
Locks In Disributed Systems
Locks In Disributed SystemsLocks In Disributed Systems
Locks In Disributed Systems
 
Lecture5
Lecture5Lecture5
Lecture5
 
Fault tolerant presentation
Fault tolerant presentationFault tolerant presentation
Fault tolerant presentation
 
Synchronization in distributed systems
Synchronization in distributed systems Synchronization in distributed systems
Synchronization in distributed systems
 
I/O Buffering
I/O BufferingI/O Buffering
I/O Buffering
 
Cloud-forensics
Cloud-forensicsCloud-forensics
Cloud-forensics
 
Soal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).doc
Soal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).docSoal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).doc
Soal PAS Hadits Ilmu Hadits Kelas XI K13 (Websiteedukasi.com) (1).doc
 
Design Goals of Distributed System
Design Goals of Distributed SystemDesign Goals of Distributed System
Design Goals of Distributed System
 
Virus and Malicious Code Chapter 5
Virus and Malicious Code Chapter 5Virus and Malicious Code Chapter 5
Virus and Malicious Code Chapter 5
 

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?
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

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