GlusterFS · 4 min read · Feb 04, 2026

Creando un servidor de almacenamiento independiente similar a NFS con GlusterFS en Fedora 13

Este tutorial muestra cómo configurar un servidor de almacenamiento independiente en Fedora 13. En lugar de NFS, usaré GlusterFS aquí. El sistema cliente podrá acceder al almacenamiento como si fuera un sistema de archivos local. GlusterFS es un sistema de archivos agrupado 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 dos sistemas, un servidor y un cliente:

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

Ambos sistemas deben poder resolver el nombre de host del otro sistema. Si esto no se puede hacer a través de DNS, debes editar el archivo /etc/hosts para que contenga las siguientes dos líneas en ambos sistemas:

vi /etc/hosts

| [...] 192.168.0.100 server1.example.com server1 192.168.0.101 client1.example.com client1 [...] |

(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 de si los nombres de host se pueden resolver o no.)

2 Configuración del Servidor GlusterFS

server1.example.com:

El servidor GlusterFS está disponible como un paquete para Fedora 13, por lo tanto, podemos instalarlo de la siguiente manera:

yum install glusterfs-server

El comando

glusterfs --version

debe mostrar ahora la versión de GlusterFS que acabas de instalar (2.0.9 en este caso):

[root@server1 ~]# glusterfs --version  
glusterfs 2.0.9 built on Apr 11 2010 20:39:55  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS viene con ABSOLUTAMENTE NINGUNA GARANTÍA.  
Puedes redistribuir copias de GlusterFS bajo los términos de la Licencia Pública General de GNU.  
[root@server1 ~]#

A continuación, creamos algunos directorios:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns

Ahora creamos el archivo de configuración del servidor GlusterFS /etc/glusterfs/glusterfsd.vol (hacemos una copia de seguridad del archivo original /etc/glusterfs/glusterfsd.vol primero) que define qué directorio se exportará (/data/export) y qué cliente tiene permitido conectarse (192.168.0.101 = client1.example.com):

cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig  
cat /dev/null > /etc/glusterfs/glusterfsd.vol  
vi /etc/glusterfs/glusterfsd.vol

| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks option mandatory-locks on 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.101 # Edita y agrega la lista de clientes permitidos separados por comas aquí subvolumes brick end-volume |

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.101,192.168.0.102).

Después, creamos los enlaces de inicio del sistema para el servidor GlusterFS y lo iniciamos:

chkconfig --levels 35 glusterfsd on  
/etc/init.d/glusterfsd start

3 Configuración del Cliente GlusterFS

client1.example.com:

Hay un paquete rpm del cliente GlusterFS para Fedora 13, pero el problema con él es que obtendrás errores como df: /mnt/glusterfs': Software causó la interrupción de la conexión o df:/mnt/glusterfs’: El punto de transporte no está conectado cuando intentas acceder al recurso compartido de GlusterFS. Por eso construimos el cliente GlusterFS a partir de las fuentes para evitar estos problemas.

Antes de construir el cliente GlusterFS, instalamos sus requisitos previos:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

Luego descargamos las fuentes de GlusterFS 2.0.9 (ten en cuenta que esta es la misma versión que está instalada en el servidor) y construimos GlusterFS de la siguiente manera:

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz  
tar xvfz glusterfs-2.0.9.tar.gz  
cd glusterfs-2.0.9  
./configure

Al final del comando ./configure, deberías ver algo como esto:

[...]  
GlusterFS configure summary  
===========================  
FUSE client        : yes  
Infiniband verbs   : yes  
epoll IO multiplex : yes  
Berkeley-DB        : yes  
libglusterfsclient : yes  
argp-standalone    : no  
  
[root@client1 glusterfs-2.0.9]#
make && make install  
ldconfig

Verifica la versión de GlusterFS después (debería ser 2.0.9):

glusterfs --version
[root@client1 glusterfs-2.0.9]# glusterfs --version  
glusterfs 2.0.9 built on Sep 27 2010 19:20:46  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS viene con ABSOLUTAMENTE NINGUNA GARANTÍA.  
Puedes redistribuir copias de GlusterFS bajo los términos de la Licencia Pública General de GNU.  
[root@client1 glusterfs-2.0.9]#

Luego creamos los siguientes dos directorios:

mkdir /mnt/glusterfs  
mkdir /etc/glusterfs

A continuación, creamos el archivo /etc/glusterfs/glusterfs.vol:

vi /etc/glusterfs/glusterfs.vol

| volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # puede ser IP o nombre de host option remote-subvolume brick end-volume volume writebehind type performance/write-behind option window-size 4MB subvolumes remote end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume |

¡Asegúrate de usar el nombre de host o la dirección IP del servidor correcto en la línea de opción remote-host!

¡Eso es todo! Ahora podemos montar el sistema de archivos GlusterFS en /mnt/glusterfs con uno de los siguientes dos comandos:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

o

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Ahora deberías ver el nuevo recurso compartido en las salidas de…

mount
[root@client1 glusterfs-2.0.9]# mount  
/dev/mapper/vg_client1-lv_root on / type ext4 (rw)  
proc on /proc type proc (rw)  
sysfs on /sys type sysfs (rw)  
devpts on /dev/pts type devpts (rw,gid=5,mode=620)  
tmpfs on /dev/shm type tmpfs (rw)  
/dev/sda1 on /boot type ext4 (rw)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)  
[root@client1 glusterfs-2.0.9]#

… y…

df -h
[root@client1 glusterfs-2.0.9]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/vg_client1-lv_root  
                       29G  2.6G   25G  10% /  
tmpfs                 185M     0  185M   0% /dev/shm  
/dev/sda1             194M   23M  161M  13% /boot  
/etc/glusterfs/glusterfs.vol  
                       29G  2.7G   25G  10% /mnt/glusterfs  
[root@client1 glusterfs-2.0.9]#

En lugar de montar el recurso compartido de GlusterFS manualmente en el cliente, podrías modificar /etc/fstab para que el recurso compartido se monte automáticamente cuando el cliente arranque.

Abre /etc/fstab y agrega la siguiente línea:

vi /etc/fstab

| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |

Para probar si tu /etc/fstab modificado está funcionando, reinicia el cliente:

reboot

Después del reinicio, deberías encontrar el recurso compartido en las salidas de…

df -h

… y…

mount

4 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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