Almacenamiento · 4 min read · Jan 18, 2026

Almacenamiento de Alta Disponibilidad Con GlusterFS 3.2.x En Ubuntu 11.10 - Replicación Automática de Archivos Entre Dos Servidores de Almacenamiento

Almacenamiento de Alta Disponibilidad Con GlusterFS 3.2.x En Ubuntu 11.10 - Replicación Automática de Archivos (Espejo) Entre Dos Servidores de Almacenamiento

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

Este tutorial muestra cómo configurar un almacenamiento de alta disponibilidad con dos servidores de almacenamiento (Ubuntu 11.10) que utilizan GlusterFS. Cada servidor de almacenamiento será un espejo del otro servidor de almacenamiento, y los archivos se replicarán automáticamente entre ambos servidores de almacenamiento. El sistema cliente (también Ubuntu 11.10) podrá acceder al almacenamiento como si fuera un sistema de archivos local. GlusterFS es un sistema de archivos en clúster capaz de escalar a varios petabytes. Agrega varios bloques de almacenamiento a través de Infiniband RDMA o TCP/IP en un gran sistema de archivos de red paralelo. Los bloques de almacenamiento pueden estar hechos de cualquier hardware común, como servidores x86_64 con RAID SATA-II y HBA Infiniband.

¡No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

En este tutorial utilizo tres sistemas, dos servidores y un cliente:

  • server1.example.com: dirección IP 192.168.0.100 (servidor)
  • server2.example.com: dirección IP 192.168.0.101 (servidor)
  • client1.example.com: dirección IP 192.168.0.102 (cliente)

Dado que ejecutaremos todos los pasos de este tutorial con privilegios de root, podemos anteponer todos los comandos en este tutorial con la cadena sudo, o podemos convertirnos en root ahora mismo escribiendo

sudo su

Los tres sistemas deben poder resolver los nombres de host de los otros sistemas. Si esto no se puede hacer a través de DNS, debes editar el archivo /etc/hosts para que se vea como sigue en los tres 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 # Las siguientes líneas son deseables para hosts compatibles con 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 |

(También es posible usar direcciones IP en lugar de nombres de host en la configuración siguiente. Si prefieres usar direcciones IP, no tienes que preocuparte por si los nombres de host se pueden resolver o no.)

2 Configurando Los Servidores GlusterFS

server1.example.com/server2.example.com:

GlusterFS está disponible como un paquete para Ubuntu 11.10, por lo tanto, podemos instalarlo de la siguiente manera:

apt-get install glusterfs-server

El comando

glusterfsd --version

debe mostrar ahora la versión de GlusterFS que acabas de instalar (3.2.1 en este 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 viene con ABSOLUTAMENTE NINGUNA GARANTÍA.  
Puedes redistribuir copias de GlusterFS bajo los términos de la Licencia Pública General Affero de GNU.  
root@server1:~#

Si usas un firewall, asegúrate de que los puertos TCP 111, 24007, 24008, 24009-(24009 + número de bloques en todos los volúmenes) estén abiertos en server1.example.com y server2.example.com.

A continuación, debemos agregar server2.example.com al grupo de almacenamiento confiable (ten en cuenta que estoy ejecutando todos los comandos de configuración de GlusterFS desde server1.example.com, pero también puedes ejecutarlos desde server2.example.com porque la configuración se replica entre los nodos de GlusterFS; solo asegúrate de usar los nombres de host o direcciones IP correctas):

server1.example.com:

En server1.example.com, ejecuta

gluster peer probe server2.example.com
root@server1:~# gluster peer probe server2.example.com  
Probe successful  
root@server1:~#

El estado del grupo de almacenamiento confiable ahora debería ser similar a esto:

gluster peer status
root@server1:~# gluster peer status  
Number of Peers: 1
Hostname: server2.example.com  
Uuid: 7cd93007-fccb-4fcb-8063-133e6ba81cd9  
State: Peer in Cluster (Connected)  
root@server1:~#

A continuación, creamos el recurso compartido llamado testvol con dos réplicas (ten en cuenta que el número de réplicas es igual al número de servidores en este caso porque queremos configurar el espejado) en server1.example.com y server2.example.com en el directorio /data (esto se creará si no existe):

gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/data
root@server1:~# gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/data  
La creación del volumen testvol ha sido exitosa. Por favor, inicia el volumen para acceder a los datos.  
root@server1:~#

Inicia el volumen:

gluster volume start testvol

Es posible que el comando anterior te diga que la acción no fue exitosa:

root@server1:~# gluster volume start testvol  
Iniciar el volumen testvol ha sido no exitoso  
root@server1:~#

En este caso, deberías verificar la salida de…

server1.example.com/server2.example.com:

netstat -tap | grep glusterfsd

en ambos servidores.

Si obtienes una salida 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:~#

… todo está bien, pero si no obtienes ninguna salida…

root@server2:~# netstat -tap | grep glusterfsd  
root@server2:~#

… reinicia el demonio de GlusterFS en el servidor correspondiente (server2.example.com en este caso):

server2.example.com:

/etc/init.d/glusterfs-server restart

Luego verifica la salida de…

netstat -tap | grep glusterfsd

… nuevamente en ese servidor; ahora debería verse así:

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:~#

Ahora volvamos a server1.example.com:

server1.example.com:

Puedes verificar el estado del volumen con el comando

gluster volume info
root@server1:~# gluster volume info
Volume 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 defecto, todos los clientes pueden conectarse al volumen. Si deseas otorgar acceso solo a client1.example.com (= 192.168.0.102), ejecuta:

gluster volume set testvol auth.allow 192.168.0.102

Ten en cuenta que es posible usar comodines para las direcciones IP (como 192.168.*) y que puedes especificar múltiples direcciones IP separadas por comas (por ejemplo, 192.168.0.102,192.168.0.103).

La información del volumen ahora debería mostrar el estado actualizado:

gluster volume info
root@server1:~# gluster volume info
Volume 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:~#
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.