Replicando e distribuindo armazenamento de arquivos através de quatro servidores usando Cluster (GlusterFs) no Debian Lenny
Este artigo mostra como montar passo-a-passo um cluster com quatro servidores para distribuição de arquivos com alta disponibilidade usando GlusterFS no Debian Lenny.
Parte 3: Metendo a mão na massa - Configurando os servidores
Agora configuraremos os servidores GlusterFS (realize os passos abaixo em todos os servidores).
O GlusterFS não está disponível como um pacote Debian (já se encontra sim, porém achei melhor baixar e instalar seguindo fielmente o artigo original), consequentemente teremos que instalar o mesmo na mão.
Primeiro instalaremos os pré-requisitos:
# aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev
Após instalar os pré-requisitos faremos o download da última versão do GlusterFS (http://www.gluster.org/download.php) a partir do link que vos segue como veremos nos passos abaixo:
# cd /tmp
# wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.2.tar.gz
# tar -xvfz glusterfs-2.0.2.tar.gz
# cd glusterfs-2.0.2
# ./configure --prefix=/usr > /dev/null
No shell, após realizar os comandos acima, digite o comando abaixo e verá a saída que segue:
# ./configure --prefix=/usr > /dev/null
GlusterFs configure summary
= = = = = = = = = = = = = = =
Fuse client : no
Infiniband verbs : no
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
mod_glusterfs : no ()
argp-standalone : no
Agora, ainda dentro de /tmp/gluterfs-2.0.2:
# make && make install
# ldconfig
Após isso rode o comando:
# glusterfs --version
A saída do comando acima irá lhe mostrar a versão que você instalou, deve ficar igual abaixo (neste caso 2.0.2):
# glusterfs --version
glusterfs 2.0.2 built on JULY 29 2009 17:23:10
Repository revision: 5c1d9108c1529a1155963cb1911f8870a674ab5b
Copyright (c) 2006-2009 Z RESEARCH Inc. <http://www.zresearch.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
Agora criaremos alguns diretórios:
# mkdir /data/
# mkdir /data/export
# mkdir /data/export-ns
# mkdir /etc/glusterfs
Agora criaremos o arquivo de configuração do servidor GlusterFS em /etc/glusterfsd.vol, pois é este arquivo que define qual diretório será exportado (/data/export) e qual cliente poderá conectar.
Em nosso exemplo usamos o 192.168.0.104 = cliente1.exemplo.com.br, lembra-se?
# vi /etc/glusterfs/glusterfsd.vol
Salve e saia do arquivo de configuração /etc/glusterfsd.vol.
Por favor, note que é possível usar uma gama infinita de endereços IP fazendo o permissionamento usando toda uma faixa de endereços IP, por exemplo, 192.168.* fará com que toda a rede 192.168.X.X acesse o volume. Você também pode usar a vírgula para separar diversos endereços IP, por exemplo: 192.168.0.120, 192.168.0.121, 192.168.0.122.
Lembrem-se que aqui neste artigo está sendo mostrado como implementar um servidor CLUSTER para garantir alta disponibilidade de arquivos e não para visar 100% de segurança, para isso devemos usar outros meios.
Após as configurações acima devemos criar os links para inicialização do script nos servidores com o comando que segue abaixo:
# update-rc.d glusterfsd defaults
Após atualizar o update-rc, damos início ao script glusterfsd:
# /etc/init.d/glusterfsd start
Pronto, a primeira parte está feita!
O GlusterFS não está disponível como um pacote Debian (já se encontra sim, porém achei melhor baixar e instalar seguindo fielmente o artigo original), consequentemente teremos que instalar o mesmo na mão.
Primeiro instalaremos os pré-requisitos:
# aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev
Após instalar os pré-requisitos faremos o download da última versão do GlusterFS (http://www.gluster.org/download.php) a partir do link que vos segue como veremos nos passos abaixo:
# cd /tmp
# wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.2.tar.gz
# tar -xvfz glusterfs-2.0.2.tar.gz
# cd glusterfs-2.0.2
# ./configure --prefix=/usr > /dev/null
No shell, após realizar os comandos acima, digite o comando abaixo e verá a saída que segue:
# ./configure --prefix=/usr > /dev/null
GlusterFs configure summary
= = = = = = = = = = = = = = =
Fuse client : no
Infiniband verbs : no
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
mod_glusterfs : no ()
argp-standalone : no
Agora, ainda dentro de /tmp/gluterfs-2.0.2:
# make && make install
# ldconfig
Após isso rode o comando:
# glusterfs --version
A saída do comando acima irá lhe mostrar a versão que você instalou, deve ficar igual abaixo (neste caso 2.0.2):
# glusterfs --version
glusterfs 2.0.2 built on JULY 29 2009 17:23:10
Repository revision: 5c1d9108c1529a1155963cb1911f8870a674ab5b
Copyright (c) 2006-2009 Z RESEARCH Inc. <http://www.zresearch.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
Agora criaremos alguns diretórios:
# mkdir /data/
# mkdir /data/export
# mkdir /data/export-ns
# mkdir /etc/glusterfs
Agora criaremos o arquivo de configuração do servidor GlusterFS em /etc/glusterfsd.vol, pois é este arquivo que define qual diretório será exportado (/data/export) e qual cliente poderá conectar.
Em nosso exemplo usamos o 192.168.0.104 = cliente1.exemplo.com.br, lembra-se?
# vi /etc/glusterfs/glusterfsd.vol
volume posix
type storage/posix
option directory /data/export
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.104
subvolumes brick
end-volume
type storage/posix
option directory /data/export
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.104
subvolumes brick
end-volume
Salve e saia do arquivo de configuração /etc/glusterfsd.vol.
Por favor, note que é possível usar uma gama infinita de endereços IP fazendo o permissionamento usando toda uma faixa de endereços IP, por exemplo, 192.168.* fará com que toda a rede 192.168.X.X acesse o volume. Você também pode usar a vírgula para separar diversos endereços IP, por exemplo: 192.168.0.120, 192.168.0.121, 192.168.0.122.
Lembrem-se que aqui neste artigo está sendo mostrado como implementar um servidor CLUSTER para garantir alta disponibilidade de arquivos e não para visar 100% de segurança, para isso devemos usar outros meios.
Após as configurações acima devemos criar os links para inicialização do script nos servidores com o comando que segue abaixo:
# update-rc.d glusterfsd defaults
Após atualizar o update-rc, damos início ao script glusterfsd:
# /etc/init.d/glusterfsd start
Pronto, a primeira parte está feita!
Fico imaginando como funcionaria em apenas dois computadores com tudo isso virtualizado...aff...:-P
Sem contar que achei mais simples do que a tradicional dobradinha DRDB + heartbeat...
Vou testar a solução em um ambiente virtualizado para ver se funfa..vai ajudar bastanta a resolver problemas de disponibilidade essa solução!!
[]´s