Você está na página 1de 6

Google File System

Resumo
Google File System (GFS) um sistema de arquivos escalvel para aplicaes de distribuio intensiva de dados. Ele busca os mesmos objetivos de outros sistemas de arquivos distribudos como: performance, escabilidade, confiana e disponibilidade. Consiste basicamente em milhares de mquinas baratas rodando o sistema operacional Linux, em vez de super computadores caros. A Google utiliza o GFS para organizar e manipular grandes arquivos e permitir que aplicaes consigam usar os recursos necessrios. Exemplo de aplicaes que usam estes dados: YouTube, Google Earth, Blogger, GMail, Orkut, Google Maps, Google Sugest, Google Desktop Search, entre outras. Esta plataforma permite o desenvolvimento de softwares que tm as mesmas necessidades do mecanismo de busca: atender milhes de usurios, ter petabytes de espao para armazenamento e um tempo de resposta mnimo. Interface: A interface para utilizao do GFS bem simples e mantm a organizao dos arquivos numa estrutura hierrquica de diretrios identificados por nomes. Os comandos tpicos para criar, excluir, abrir, fechar, ler e escrever arquivos tambm esto l. Alm destes, no entanto, o GFS introduziu os comandos snapshot e record append. O primeiro cria uma cpia de um arquivo ou diretrio a um baixo custo de performance. O segundo, como dito anteriormente, permite que mltiplos clientes acessem simultaneamente o arquivo para adio de dados, garantindo a atomicidade de cada adio de cada cliente. Arquitetura: O GFS trabalha com clusters, conjuntos de computadores interligados atravs de um sistema distribudo. Cada cluster possui um nico master e vrios chunkservers, tipicamente computadores desktop com Linux instalado. O master responsvel pelo gerenciamento do cluster. Para isto, ele armazena meta dados sobre as informaes armazenadas nos chunkservers. Isto inclui espao de nomes (namespace), informaes para controle de acesso, o mapeamento de arquivos em chunks (blocos de dados que podem conter um ou mais arquivos ou parte de um arquivo), e a localizao atual destes blocos

nos chunkservers para garantir a consistncia, cada bloco replicado em mltiplos chunkservers. As atividades desempenhadas pelo master incluem o gerenciamento da concesso de blocos para acesso pelo(s) cliente(s); um coletor de lixo para blocos rfos; e a migrao de blocos entre chunkservers. A comunicao dos clientes com o master minimizada s operaes com os meta dados. Uma vez que um cliente tenha todas as informaes necessrias para acesso aos dados, toda a comunicao passa a ser realizada diretamente com o(s) chunkserver(s). No h cache de dados devido ao imenso tamanho dos arquivos e porque cada bloco armazenado como se fosse um arquivo local. Assim eles se beneficiam do buffer gerenciado pelo prprio Linux que mantm os arquivos acessados com frequncia na memria. Os meta dados so armazenados na memria do master, tornando obviamente suas operaes muito mais rpidas. Isto tambm permite que mltiplos threads executem com eficincia e ao mesmo tempo diferentes tarefas requeridas pelo sistema: Coletor de lixo, re-replicao na presena de falhas em um ou mais chunkservers, e migrao de blocos entre os chunkservers para balancear a carga e o espao em disco.

Figura: Arquitetura do Google File System. Tolerncia a falhas: Assim como os blocos, o estado do master (isto , seu log de operao e checkpoints) tambm replicado em diferentes computadores. Por simplicidade, apenas um processo master fica responsvel por todas as operaes nos meta dados alm das operaes que mudam o sistema internamente, por exemplo: o coletor de lixo.

Assim, numa eventual falha no prprio processo, ele pode simples ser reiniciado. No h complexos processos em cadeia que precisam seguir uma ordem lgica de criao. Se a falha for fsica, uma infra-estrutura de monitoramento externa ao GFS inicia um novo processo master em algum outro computador com o log de operao replicado. A integridade dos dados verificada atravs de checksums nos prprios blocos. Por diversos motivos (grande quantidade de operaes de escrita nos arquivos, seus tamanhos, etc.) as rplicas dos blocos no so idnticas. Por isto, cada chunkserver deve verificar a sua prpria cpia de maneira independente, mantendo checksums. Com milhares de discos e centenas de mquinas, esperado que os dados se corrompam at com certa freqncia. Por este motivo, sempre que um chunkserver detecta um bloco corrompido, o mesmo atualmente substitudo pelo master por uma rplica vlida disponvel em outro chunkserver. Alternativa para substituir o GFS: O Lustre (CFS 2002) um sistema de arquivos distribudo e paralelo para clusters construdo do zero. No sendo baseado em nenhum sistema anterior, ele tem por objetivo prover altos desempenho e disponibilidade ao servir clusters de dezenas de milhares de ns. Ele foi projetado e desenvolvido pela empresa Cluster File Systems, que posteriormente foi adquirida pela Sun Microsystems. A arquitetura do Lustre composta por um servidor de metadados centralizado (MDS) e diversos servidores de armazenamento baseados em objetos (OSTs, Object Storage Targets). O metasservidor suporta todas as operaes no espao de nomes do sistema de arquivos, como lookups e criaes. Os servidores de dados so responsveis pelas operaes de I/O propriamente ditas e pela interao com os dispositivos de armazenamento, os Object-Based Disks (OBDs). Os OSTs so tambm responsveis por gerenciar travamentos (lockings) dos dados que armazena, para manter a coerncia em acessos concorrentes. A forma com que os arquivos so separados em objetos e a distribuio deles so configurveis pelo usurio via linha de comando, ou durante a criao do arquivo quando da utilizao de APIs como MPI-IO. Adicionalmente, novos servidores podem ser colocados em funcionamento, assim como novos OBDs podem ser incorporados a eles, sem a necessidade de parar o sistema. A comunicao no Lustre feita atravs da Lustre Networking (LNET), que prov suporte para diferentes infra-estruturas de rede atravs de drivers conectveis, chamados Lustre Network Drivers (LNDs). Isso

torna o Lustre bastante adaptvel a diversas tecnologias e arquiteturas. (SUN 2008)

Figura: Arquitetura do Lustre File System.

Tabela: Comparativo entre as caractersticas. Caractersticas Arquitetura GFS Baseada em cluster, paralela, dados e metadados armazenados separadamente. Cache de metadados nos clientes. Lustre Baseada em cluster, paralela, dados e metadados armazenados separadamente. Presente nos clientes e no metasservidor. Clientes fazem readahead. Semntica UNIX. LNET. Defeitos so excees. Servidores failover, gerenciados pelo MGS.

Cache

Compartilhamento Comunicao Tolerncia a Falhas

Sem garantias quanto semntica No divulgado. Defeitos so regras. Nvel de replicao de dados em servidores mantidos pelo mestre. Registro transacional de operaes sobre metadados replicado. Checksum para garantir integridade. Monitoramento externo.