Claudio Borges

Technical blog about Linux, BSD, Mac OS X, Games and etc.

Archive for the ‘Geral’ Category

GlusterFS – Um sistema de arquivos para alta disponibilidade

with 2 comments

Depois de um longo tempo sem publicar nada no blog, estou de volta com um assunto interessante: GlusterFS.

Neste artigo irei mostrar como instalar e configurar o GlusterFS para criar um sistema de armazenamento de alta disponibilidade utilizando 2 servidores. Ambos os servidores serão client e server e cada servidor será espelho do outro onde os arquivos serão replicados automaticamente entre eles, ou seja, uma espécie de raid 1 via rede.

GlusterFS é um sistema de arquivos distribuído, capaz de escalar vários petabytes. Ele trabalha sob infiniband RDMA ou tcp/ip. Os desenvolvedores recomendam os sistemas de arquivos Ext3 e Ext4. Outros sistemas de arquivos, como ZFS, ReiserFS, btrfs, JFS, também funcionam, mas não foram amplamente testados. XFS tem vários problemas de desempenho devido a sua implementação atributos estendidos, se você optar por usar XFS seu desempenho utilizando Gluster será reduzido em pelo menos 60%.

Para seu funcionamento, você não precisa de nada em especial, pode utilizar seu hardware já existente, como por exemplo servidores com discos Sata/Sata-II ou ISCSI/SaS.

Os dados dos servidores a serem utilizados neste artigo são:

Servidor 01: 192.168.0.10
Servidor 02: 192.168.0.11
diretório a ser compartilhado: /var/www

É interessante você adicionar as seguintes entradas no /etc/hosts de cada servidor:

192.168.0.10      servidor01
192.168.0.11      servidor02

Como em artigos anteriores, este aqui também é baseado em debian. Os pacotes que iremos utilizar são glusterfs-client e glusterfs-server e a instalação segue o mesmo procedimento:

apt-get install glusterfs-client glusterfs-server

Depois de instalar os pacotes, entre no diretório /etc/glusterfs, nele você verá os seguintes arquivos:

glusterfs.vol
glusterfsd.vol

O primeiro arquivo é responsável pela configuração do client e o segundo do server. Como os servidores serão client e server ao mesmo tempo, a configuração destes arquivos precisa ser idêntica em ambas as máquinas.

Renomeie os arquivos e adicione .default ao final de cada um deles:

cd /etc/glusterfs
mv glusterfs.vol glusterfs.vol.default
mv glusterfsd.vol glusterfsd.vol.default

Crie o arquivo /etc/glusterfs/glusterfs.vol com o seguinte conteúdo:

# /etc/glusterfs client configuration file
#
volume client01
  type protocol/client
  option transport-type tcp/client
  option remote-host servidor01
  option remote-subvolume brick
end-volume

volume client02
  type protocol/client
  option transport-type tcp/client
  option remote-host servidor02
  option remote-subvolume brick
end-volume

volume replicate
  type cluster/replicate
  subvolumes client01 client02
end-volume

volume writeback
  type performance/write-behind
  option aggregate-size 1MB
  subvolumes replicate
end-volume

volume cache
  type performance/io-cache
  option page-size 512MB
  subvolumes writeback
end-volume

Crie o arquivo /etc/glusterfs/glusterfsd.vol com o seguinte conteúdo:

# /etc/glusterfs server configuration file
#
volume posix
  type storage/posix
  option directory /var/www
end-volume

volume locks
  type features/locks
  subvolumes posix
end-volume

volume brick
  type performance/io-threads
  option thread-count 8
  subvolumes locks
end-volume

volume server
  type protocol/server
  option transport-type tcp
  option auth.addr.brick.allow 192.168.0.10,192.168.0.11
  subvolumes brick
end-volume

Para entender melhor as opções usadas nas configurações, sugiro dar uma lida na página de translators.

Com os arquivos configurados, inicie o daemon com o seguinte comando:

/etc/init.d/glusterfs-server start

Adicione a seguinte entrada no /etc/fstab de ambos os servidores:

/etc/glusterfs/glusterfs.vol    /var/lib/glusterfs      glusterfs    defaults      0   0

Crie o diretório /var/glusterfs e monte o diretório:

mkdir /var/glusterfs
mount -a

Agora com tudo pronto em ambos os servidores, vamos realizar os seguintes testes:

- No servidor 01: Salve alguns arquivos no /var/glusterfs.
- Conecte no servidor 02 e veja se os arquivos estão lá.
- Execute um reboot no servidor 01.
- Veja se tudo está ok no servidor 02.
- Salve alguns arquivos no servidor 02.
- Quando o servidor 01 voltar, verifique no /var/glusterfs se os arquivos que você salvou quando ele estava fora foram replicados.
- Repita o procedimento mudando a ordem do servidores.

Você deve estar se perguntando porque estou me baseando no diretório /var/glusterfs e não no /var/www, isto porque para a replicação funcionar, os dados precisam ser gravados no /var/glusterfs.

E isto é tudo. Estando todos os testes ok, você agora tem um raid 1 vai rede :).

Written by but3k4

April 18th, 2011 at 9:23 pm

Palestra Nginx Linuxcon 2010

without comments

Participei do Linuxcon 2010, muito bom por sinal. Devido ao trabalho, fui somente no segundo dia (01/09), minha palestra estava marcada para as 15:00, cheguei lá por volta as 12:20, ainda tinha que almoçar e dar um tapa final nos slides.

Assim que entrei e peguei minha credencial, encontrei com o Maddog e enquanto todos estavam rodeando ele para tirar fotos, passou o Andrew Morton, tive o prazer de conversar um pouco com ele, muito atencioso, só que estava com um pouco de pressa, pois estava olhando para o relógio, pena que não pude tirar nenhuma foto, não passou uma viva alma naquele momento.

Depois disso, fui para a sala da Locaweb, deixei minha mochila e fui almoçar, praça de alimentação lotada e a única alternativa foi comer McDonald’s. Terminado o almoço, ou melhor, lanche, voltei para terminar os slides e fazer uma revisão geral para ver se não tinha nenhum erro. Infelizmente não tive muito tempo para elaborar esta palestra, foi meio que de última hora e por este motivo tudo foi meio improvisado. O pessoal estava com várias perguntas legais, muitas dúvidas inteligentes, no final fiquei batendo um papo com algumas pessoas.

Para aqueles que quizerem baixar o conteúdo que foi apresentado, clique aqui.

Written by but3k4

September 2nd, 2010 at 2:16 pm

Posted in Geral

Tagged with , , ,

Palestra Latinoware 2009

without comments

Participei do latinoware 2009, este ano estava muito legal, com maior espaço para os standes e muita gente legal palestrando (incluindo eu).

Minha palestra tinha horário confirmado para as 12:00, como estava chovendo muito, levei uns 10 minutos para chegar no bloco onde iria palestrar. Chegando lá, levei uns 5 minutos para iniciar, isto inclui tirar a água da chuva que estava ensopando meu cabelo, ligar notebook e etc. Com isto, perdi minutos importantes e tive que acelerar em alguns tópicos e em outros resumir mais ainda. No geral minha palestra foi legal, o pessoal estava com muitas dúvidas tanto na parte de programação quanto na parte de sysadmin.

Para aqueles que quizerem baixar o conteúdo que foi apresentado, clique aqui.

Written by but3k4

October 26th, 2009 at 5:45 pm

Posted in Geral

Tagged with , , ,