Armazenamento · 4 min read · Jan 18, 2026
Armazenamento de Alta Disponibilidade Com GlusterFS 3.2.x No Ubuntu 11.10 - Replicação Automática de Arquivos Entre Dois Servidores de Armazenamento
Armazenamento de Alta Disponibilidade Com GlusterFS 3.2.x No Ubuntu 11.10 - Replicação Automática de Arquivos (Espelho) Entre Dois Servidores de Armazenamento
Versão 1.0
Autor: Falko Timme
Siga-me no Twitter
Este tutorial mostra como configurar um armazenamento de alta disponibilidade com dois servidores de armazenamento (Ubuntu 11.10) que utilizam GlusterFS. Cada servidor de armazenamento será um espelho do outro servidor de armazenamento, e os arquivos serão replicados automaticamente entre os dois servidores de armazenamento. O sistema cliente (Ubuntu 11.10 também) poderá acessar o armazenamento como se fosse um sistema de arquivos local. GlusterFS é um sistema de arquivos em cluster capaz de escalar para vários petabytes. Ele agrega vários blocos de armazenamento sobre Infiniband RDMA ou TCP/IP em um grande sistema de arquivos de rede paralelo. Os blocos de armazenamento podem ser feitos de qualquer hardware comum, como servidores x86_64 com RAID SATA-II e HBA Infiniband.
Não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Neste tutorial, uso três sistemas, dois servidores e um cliente:
- server1.example.com: endereço IP 192.168.0.100 (servidor)
- server2.example.com: endereço IP 192.168.0.101 (servidor)
- client1.example.com: endereço IP 192.168.0.102 (cliente)
Como executaremos todos os passos deste tutorial com privilégios de root, podemos ou adicionar a string sudo a todos os comandos deste tutorial, ou nos tornarmos root agora digitando
sudo suTodos os três sistemas devem ser capazes de resolver os nomes dos outros sistemas. Se isso não puder ser feito através do DNS, você deve editar o arquivo /etc/hosts para que ele fique assim em todos os três sistemas:
vi /etc/hosts| 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 server2.example.com server2 192.168.0.102 client1.example.com client1 # As linhas a seguir são desejáveis para hosts compatíveis com IPv6 ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |
(É possível também usar endereços IP em vez de nomes de host na configuração a seguir. Se você preferir usar endereços IP, não precisa se preocupar se os nomes de host podem ser resolvidos ou não.)
2 Configurando Os Servidores GlusterFS
server1.example.com/server2.example.com:
GlusterFS está disponível como um pacote para Ubuntu 11.10, portanto, podemos instalá-lo da seguinte forma:
apt-get install glusterfs-serverO comando
glusterfsd --versiondeve agora mostrar a versão do GlusterFS que você acabou de instalar (3.2.1 neste caso):
root@server1:~# glusterfsd --version
glusterfs 3.2.1 built on Jun 28 2011 07:43:56
Repository revision: v3.2.1
Copyright (c) 2006-2010 Gluster Inc.
GlusterFS vem com ABSOLUTAMENTE NENHUMA GARANTIA.
Você pode redistribuir cópias do GlusterFS sob os termos da Licença Pública Geral Affero GNU.
root@server1:~# Se você usar um firewall, certifique-se de que as portas TCP 111, 24007, 24008, 24009-(24009 + número de blocos em todos os volumes) estejam abertas em server1.example.com e server2.example.com.
Em seguida, devemos adicionar server2.example.com ao pool de armazenamento confiável (observe que estou executando todos os comandos de configuração do GlusterFS a partir de server1.example.com, mas você também pode executá-los a partir de server2.example.com porque a configuração é replicada entre os nós do GlusterFS - apenas certifique-se de usar os nomes de host ou endereços IP corretos):
server1.example.com:
Em server1.example.com, execute
gluster peer probe server2.example.comroot@server1:~# gluster peer probe server2.example.com
Probe successful
root@server1:~#O status do pool de armazenamento confiável deve agora ser semelhante a isto:
gluster peer statusroot@server1:~# gluster peer status
Number of Peers: 1Hostname: server2.example.com
Uuid: 7cd93007-fccb-4fcb-8063-133e6ba81cd9
State: Peer in Cluster (Connected)
root@server1:~#Em seguida, criamos o compartilhamento chamado testvol com duas réplicas (observe que o número de réplicas é igual ao número de servidores neste caso porque queremos configurar o espelhamento) em server1.example.com e server2.example.com no diretório /data (este será criado se não existir):
gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/dataroot@server1:~# gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/data
Creation of volume testvol has been successful. Please start the volume to access data.
root@server1:~#Inicie o volume:
gluster volume start testvolÉ possível que o comando acima informe que a ação não foi bem-sucedida:
root@server1:~# gluster volume start testvol
Starting volume testvol has been unsuccessful
root@server1:~#Nesse caso, você deve verificar a saída de…
server1.example.com/server2.example.com:
netstat -tap | grep glusterfsdem ambos os servidores.
Se você obtiver uma saída como esta…
root@server1:~# netstat -tap | grep glusterfsd
tcp 0 0 *:24009 *:* LISTEN 1548/glusterfsd
tcp 0 0 localhost.localdom:1019 localhost.localdo:24007 ESTABLISHED 1548/glusterfsd
root@server1:~#… tudo está bem, mas se você não obtiver nenhuma saída…
root@server2:~# netstat -tap | grep glusterfsd
root@server2:~#… reinicie o daemon GlusterFS no servidor correspondente (server2.example.com neste caso):
server2.example.com:
/etc/init.d/glusterfs-server restartEm seguida, verifique a saída de…
netstat -tap | grep glusterfsd… novamente nesse servidor - agora deve parecer assim:
root@server2:~# netstat -tap | grep glusterfsd
tcp 0 0 *:24010 *:* LISTEN 1458/glusterfsd
tcp 0 0 localhost.localdom:1021 localhost.localdo:24007 ESTABLISHED 1458/glusterfsd
root@server2:~#Agora volte para server1.example.com:
server1.example.com:
Você pode verificar o status do volume com o comando
gluster volume inforoot@server1:~# gluster volume infoVolume Name: testvol
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
root@server1:~#Por padrão, todos os clientes podem se conectar ao volume. Se você quiser conceder acesso apenas a client1.example.com (= 192.168.0.102), execute:
gluster volume set testvol auth.allow 192.168.0.102Observe que é possível usar curingas para os endereços IP (como 192.168.*) e que você pode especificar vários endereços IP separados por vírgula (por exemplo, 192.168.0.102,192.168.0.103).
As informações do volume agora devem mostrar o status atualizado:
gluster volume inforoot@server1:~# gluster volume infoVolume Name: testvol
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
Options Reconfigured:
auth.allow: 192.168.0.102
root@server1:~#Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.