Claudio Borges

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

Archive for the ‘Geral’ Category

FISL and QconRJ presentation

without comments

Hi folks, long time since my last post. I was a little bit busy with a lot of issues, without time to play video-game (leisure is important), and the worst, without time to play with my daughter.

So, today I’ll talk about my last presentation. In the last two months I presented “how does a big shared web hosting environment work” at FISL and QconRJ. The slides are available here.

That is all for now. See ya.

Written by but3k4

September 26th, 2015 at 2:33 pm

Github projects

without comments

Hi Folks, today I’m here to tell you that on my GitHub account you can find some interesting things.

That is all for now, but feel free to ask questions or make suggestions.

Written by but3k4

August 19th, 2015 at 10:05 am

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:

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

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

[bash]
192.168.0.10 servidor01
192.168.0.11 servidor02
[/bash]

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:

[bash]
apt-get install glusterfs-client glusterfs-server
[/bash]

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

[text]
glusterfs.vol
glusterfsd.vol
[/text]

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:

[bash]
cd /etc/glusterfs
mv glusterfs.vol glusterfs.vol.default
mv glusterfsd.vol glusterfsd.vol.default
[/bash]

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

[text]
# /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
[/text]

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

[text]
# /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
[/text]

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:

[bash]
/etc/init.d/glusterfs-server start
[/bash]

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

[text]
/etc/glusterfs/glusterfs.vol /var/lib/glusterfs glusterfs defaults 0 0
[/text]

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

[bash]
mkdir /var/glusterfs
mount -a
[/bash]

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

[text]
– 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.
[/text]

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