você está aqui: Home  → Arquivo de Mensagens

GlusterFS

Colaboração: André Luiz Facina

Data de Publicação: 26 de Janeiro de 2009

O que é o GlusterFS ?

GlusterFS é um sistema de arquivos para cluster, ou melhor, um sistema de arquivos clusterizável, capaz de escalonar muitos e muitos GigaBytes e distribuí-los via rede, entre vários storages e servidores.

Esse sistema de arquivos trabalha na arquitetura de cliente/servidor, onde você precisará ter um ou vários servidores de arquivos e os clientes se conectarão via rede, por padrão na porta 6996.

No GlusterFS você poderá criar várias estratégias para o armazenamento dos dados, sendo possível criar compartilhamentos estilo NFS, criar armazenamento distribuído, armazenamento distribuído+replicado, dentre outros.

Ao meu ver, a configuração mais interessante é o armazenamento distribuído, onde se pode criar vários servidores de arquivos e distribuir os dados para os clientes em apenas um ponto de montagem, ou seja, quando a máquina cliente gravar os dados no diretório(montado via rede), o GlusterFS se encarregará de realizar um "striping" dos dados entres todos os servidores. O conceito seria basicamente de um RAID 0 via rede, onde cada servidor do GlusterFS receberá uma pequena quantidade dos arquivos enviados pelo cliente, maximizando assim a performance de Leitura/Gravacao. Alguém pode estar se questionando, "E se um servidor resolver parar?". Para ambientes críticos poderá utilizar a configuracão de armazenamento distribuído + replicado.

Para mais informacões, consulte o wiki do projeto.

Instalação

A distribuição utilizada foi o Ubuntu 8.10, onde todos os pacotes necessários para o GlusterFS já estão disponíveis nos repositórios, e a instalação é muito simples.

Nos servidores

  # apt-get update
  # apt-get install glusterfs-server

Nos clientes

  # apt-get update
  # apt-get install glusterfs-client

Em ambos(Cliente/Servidor) foi criado um diretório em /etc/glusterfs/ contendo o arquivo de configuração. Eles são "glusterfs-server.vol" para o servidor e "glusterfs-client.vol" para o cliente.

Configuração do servidor

Vamos criar quatro servidores GlusterFS, e o arquivo de configuração (/etc/glusterfs/glusterfs-server.vol) para todos eles é o mesmo.

  # GlusterFS Server Volume Specification
  
  # Exportando o volume "brick" com o conteúdo do diretório /export
  volume brick
  type storage/posix
  option directory /export
  end-volume
  
  # Configuracão de rede para o volume exportado
  volume server
  type protocol/server
  option transport-type tcp/server
  option listen-port 6996
  subvolumes brick
  option auth.ip.brick.allow *
  end-volume
  
  #EOF

Devemos nos atentar na opcão "option auth.ip.brick.allow *", pois por default o GlusterFS negará o acesso para todos. Com o parâmetro "*" estamos dizendo para permitir o acesso de qualquer host da rede.

Configuração do cliente

  # Arquivo: /etc/glusterfs/glusterfs-client.vol
  # GlusterFS Client Volume Specification
  
  volume remote1
  type protocol/client
  option transport-type tcp/client
  option remote-host 192.168.1.1
  option remote-subvolume brick
  end-volume
  
  volume remote2
  type protocol/client
  option transport-type tcp/client
  option remote-host 192.168.1.2
  option remote-subvolume brick
  end-volume
  
  volume remote3
  type protocol/client
  option transport-type tcp/client
  option remote-host 192.168.1.3
  option remote-subvolume brick
  end-volume
  
  volume remote4
  type protocol/client
  option transport-type tcp/client
  option remote-host 192.168.1.4
  option remote-subvolume brick
  end-volume
  
  volume stripe0
  type cluster/stripe
  option block-size 1MB
  subvolumes remote1 remote2 remote3 remote4
  end-volume
  
  #EOF

Como podem observar, os arquivos de configurações são bem simples. No cliente fica bem claro que configuramos quatro volumes e em quatro servidores diferentes. Depois criamos um volume chamado stripe0, que é justamente o aglomerado desses quatro volumes.

Utilização

A utilização é bem simples, primeiro precisamos iniciar o daemon no servidor e depois apenas montamos o volume nos clientes.

Servidor

  # glusterfsd -f /etc/glusterfs/glusterfs-server.vol
  
  # ps aux |grep gluster
  
  root      4568  0.0  0.2  19028  1264 ?        Ssl  16:23   0:00 [glusterfs]
  root      4601  0.0  0.1   3252   812 pts/0    S+   16:25   0:00 grep gluster

Cliente

  # glusterfs -f /etc/glusterfs/glusterfs-client.vol /mnt
  
  # mount
  
  glusterfs on /mnt type fuse (rw,nosuid,nodev,allow_other,default_permissions,max_read=1048576)
  
  # df -h
  
  glusterfs             7,5G  1,9G  5,7G  25% /mnt

Pronto, agora você pode ter um filesystem clusterizado na sua casa e no seu trabalho ;-)



Veja a relação completa dos artigos de André Luiz Facina

 

 

Opinião dos Leitores

Marcio R. Guimaraes
13 Jul 2010, 23:38
Show de bola sua dica cara, parabens.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script