(También es posible usar direcciones IP en lugar de nombres de host en la siguiente configuración. Si prefiere usar direcciones IP, no tiene que preocuparse por si los nombres de host se pueden resolver o no).
servidor1.ejemplo.com/servidor2.ejemplo.com/servidor3.ejemplo.com/servidor4.ejemplo.com/cliente1.ejemplo.com:
Edite /etc/yum.repos.d/epel.repo...
... y agregue la línea prioridad=10 a la sección [epel]:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...] |
3 Configuración de los servidores GlusterFS
servidor1.ejemplo.com/servidor2.ejemplo.com/servidor3.ejemplo.com/servidor4.ejemplo.com:
GlusterFS está disponible como paquete para EPEL, por lo que podemos instalarlo de la siguiente manera:
yum install glusterfs-server
Cree los enlaces de inicio del sistema para el demonio Gluster e inícielo:
chkconfig --levels 235 glusterd en
/etc/init.d/glusterd start
El comando
glusterfsd --version
ahora debería mostrar la versión de GlusterFS que acaba de instalar (3.2.7 en este caso):
[[email protected] ~]# glusterfsd --version
glusterfs 3.2.7 compilado el 11 de junio de 2012 13:22:28
Revisión del repositorio:git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc.
GlusterFS viene SIN GARANTÍA EN ABSOLUTO.
Puede redistribuir copias de GlusterFS bajo los términos de la Licencia Pública General GNU.
[[email protected] ~]#
Si usa un firewall, asegúrese de que los puertos TCP 111, 24007, 24008, 24009-(24009 + número de ladrillos en todos los volúmenes) estén abiertos en server1.example.com, server2.example.com, server3.example.com y servidor4.ejemplo.com.
A continuación, debemos agregar server2.example.com, server3.example.com y server4.example.com al grupo de almacenamiento de confianza (tenga en cuenta que estoy ejecutando todos los comandos de configuración de GlusterFS desde server1.example.com, pero puede ejecútelos desde server2.example.com o server3.example.com o server4.example.com porque la configuración se replica entre los nodos GlusterFS; solo asegúrese de usar los nombres de host o direcciones IP correctos):
servidor1.ejemplo.com:
En server1.example.com, ejecute
gluster peer probe server2.example.com
gluster peer probe server3.example.com
gluster peer probe server4.example.com
La salida debe ser la siguiente:
[[email protected] ~]# gluster peer probe server2.example.com
Sonda exitosa
[[email protected] ~]#
El estado del grupo de almacenamiento de confianza ahora debería ser similar a este:
gluster peer status
[[email protected] ~]# gluster peer status
Número de pares:3
Nombre de host:server2.example.com
Uuid:da79c994-eaf1-4c1c-a136-f8b273fb0c98
Estado:Par en clúster (conectado)
Nombre de host:server3.example.com
Uuid:3e79bd9f-a4d5-4373-88e1-40f12861dcdd
Estado:Par en clúster (conectado)
Nombre de host:server4.example.com
Uuid:c6215943-00f3-492f-9b69-3aa534c1d8f3
Estado:Peer in Cluster (Connected)
[[email protected] ~]#
A continuación, creamos el recurso compartido distribuido denominado testvol en server1.example.com, server2.example.com, server3.example.com y server4.example.com en el directorio /data (se creará si no existe) :
gluster volume create testvol transport tcp server1.example.com:/data server2.example.com:/data server3.example.com:/data server4.example.com:/data
[[email protected] ~]# gluster volume create testvol transport tcp server1.example.com:/data server2.example.com:/data server3.example.com:/data server4.example.com:/data
La creación del volumen testvol ha sido exitosa. Inicie el volumen para acceder a los datos.
[[email protected] ~]#
Iniciar el volumen:
gluster volume start testvol
Es posible que el comando anterior le indique que la acción no tuvo éxito:
[[email protected] ~]# gluster volume start testvol
La prueba de volumen inicial no ha tenido éxito
[[email protected] ~]#
En este caso, debe verificar la salida de...
servidor1.ejemplo.com/servidor2.ejemplo.com/servidor3.ejemplo.com/servidor4.ejemplo.com:
netstat -tap | grep glusterfsd
en ambos servidores.
Si obtiene un resultado como este...
[[correo electrónico protegido] ~]# netstat -tap | Grep Glusterfsd
TCP 0 0*:24009*:*Escucha 1365 /Glusterfsd
TCP 0 0 Localhost:1023 Localhost:24007 Establecido 1365 /Glusterfsd
TCP 0 0 Server1.example.com:24009 server1.example.com:1023 ESTABLECIDO 1365/glusterfsd
[[email protected] ~]#
... todo está bien, pero si no obtiene ningún resultado...
[[email protected] ~]# netstat -tap | grep glusterfsd
[[email protected] ~]#
[[email protected] ~]# netstat -tap | grep glusterfsd
[[email protected] ~]#
[[email protected] ~]# netstat -tap | grep glusterfsd
[[email protected] ~]#
... reinicie el demonio GlusterFS en el servidor correspondiente (server2.example.com, server3.example.com y server4.example.com en este caso):
servidor2.ejemplo.com/servidor3.ejemplo.com/servidor4.ejemplo.com:
/etc/init.d/glusterfsd restart
Luego verifique la salida de...
netstat -tap | grep glusterfsd
... de nuevo en estos servidores - ahora debería verse así:
[[correo electrónico protegido] ~]# netstat -tap | GREP GLUSTERFSD
TCP 0 0*:24009*:*Escucha 1152 /glusterfsd
tcp 0 0 localhost.localdom:1018 localhost.localdo:24007 establecido 1152 /glusterfsd
[protegido] ~ ]#
[[correo electrónico protegido] ~]# netstat -tap | Grep Glusterfsd
TCP 0 0*:24009*:*Escuchar 1311 /Glusterfsd
TCP 0 0 Localhost.localdom:1018 localhost.localdo:24007 establecido 1311 /glusterfsd
[[correo electrónico protegido] ~ ]#
[[correo electrónico protegido] ~]# netstat -tap | Grep Glusterfsd
TCP 0 0*:24009*:*Escucha 1297 /Glusterfsd
TCP 0 0 Localhost.localdom:1019 Localhost.Localdo:24007 establecido 1297 /glusterfsd
[correos de correo electrónico] ~ ]#
Ahora regrese a server1.example.com:
servidor1.ejemplo.com:
Puede verificar el estado del volumen con el comando
gluster volume info
[[email protected] ~]# gluster volume info
Nombre del volumen:testvol
Tipo:Distribuir
Estado:Iniciado
Número de ladrillos:4
Tipo de transporte:tcp
Bricks:
Brick1:server1. ejemplo.com:/datos
Brick2:servidor2.ejemplo.com:/datos
Brick3:servidor3.ejemplo.com:/datos
Brick4:servidor4.ejemplo.com:/datos
[[correo electrónico protegido] ~]#
De forma predeterminada, todos los clientes pueden conectarse al volumen. Si desea otorgar acceso únicamente a client1.example.com (=192.168.0.104), ejecute:
gluster volume set testvol auth.allow 192.168.0.104
Tenga en cuenta que es posible utilizar comodines para las direcciones IP (como 192.168.*) y que puede especificar varias direcciones IP separadas por comas (por ejemplo, 192.168.0.104, 192.168.0.105).
La información del volumen ahora debería mostrar el estado actualizado:
gluster volume info
[[email protected] ~]# gluster volume info
Nombre del volumen:testvol
Tipo:Distribuir
Estado:Iniciado
Número de ladrillos:4
Tipo de transporte:tcp
Bricks:
Brick1:server1. ejemplo.com:/datos
Brick2:servidor2.ejemplo.com:/datos
Brick3:servidor3.ejemplo.com:/datos
Brick4:servidor4.ejemplo.com:/datos
Opciones reconfiguradas:
auth.allow:192.168.0.104
[[email protected] ~]#
4 Configuración del cliente GlusterFS
cliente1.ejemplo.com:
En el cliente, podemos instalar el cliente GlusterFS de la siguiente manera:
yum install glusterfs-client
Luego creamos el siguiente directorio:
mkdir /mnt/glusterfs
¡Eso es todo! Ahora podemos montar el sistema de archivos GlusterFS en /mnt/glusterfs con el siguiente comando:
mount.glusterfs server1.example.com:/testvol /mnt/glusterfs
(¡En lugar de server1.example.com, también puede usar server2.example.com o server3.example.com o server4.example.com en el comando anterior!)
Ahora debería ver el nuevo recurso compartido en los resultados de...
mount
[[email protected] ~]# mount
/dev/mapper/vg_client1-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts en /dev/pts escriba devpts (rw,gid=5,mode=620)
tmpfs en /dev/shm escriba tmpfs (rw)
/dev/sda1 en /boot escriba ext4 (rw)
ninguno en /proc/sys/fs/binfmt_misc escriba binfmt_misc (rw)
sunrpc en /var/lib/nfs/rpc_pipefs escriba rpc_pipefs (rw)
server1.example.com:/testvol en /mnt/glusterfs escriba fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
[[email protected] ~]#
... y...
df -h
[[email protected] ~]# df -h
Sistema de archivos Tamaño Usado Avail Use% Montado en
/dev/mapper/vg_client1-LogVol00
9.7G 1.7G 9.5 G/
tmpfs 499m 0 499m 0%/dev/shm
/dev/sda1 504m 39m 440m 9%/boot
server1.example.com:/testvol
116g 4.2G 106g 4%/ mnt/glusterfs
[[correo electrónico protegido] ~]#
En lugar de montar el recurso compartido GlusterFS manualmente en el cliente, puede modificar /etc/fstab para que el recurso compartido se monte automáticamente cuando se inicie el cliente.
Abra /etc/fstab y agregue la siguiente línea:
vi /etc/fstab
[...]
server1.example.com:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0 |
(De nuevo, en lugar de server1.example.com, ¡también puede usar server2.example.com o server3.example.com o server4.example.com!)
Para probar si su /etc/fstab modificado está funcionando, reinicie el cliente:
reboot
Después del reinicio, debería encontrar el recurso compartido en las salidas de...
df -h
... y...
mount
5 Pruebas
Ahora vamos a crear algunos archivos de prueba en el recurso compartido GlusterFS:
cliente1.ejemplo.com:
toque /mnt/glusterfs/test1
toque /mnt/glusterfs/test2
toque /mnt/glusterfs/test3
toque /mnt/glusterfs/test4
toque /mnt/glusterfs/ test5
toque /mnt/glusterfs/test6
Ahora revisemos el directorio /data en server1.example.com, server2.example.com, server3.example.com y server4.example.com. Notará que cada nodo de almacenamiento contiene solo una parte de los archivos/directorios que componen el recurso compartido GlusterFS en el cliente:
servidor1.ejemplo.com:
ls -l /data
[[email protected] ~]# ls -l /data
total 0
-rw-r--r-- 1 root root 0 2012-12-17 14:26 test1
- rw-r--r-- 1 root root 0 2012-12-17 14:26 test2
-rw-r--r-- 1 root root 0 2012-12-17 14:26 test5
[[correo electrónico protegido] ~]#
servidor2.ejemplo.com:
ls -l /data
[[email protected] ~]# ls -l /data
total 0
-rw-r--r-- 1 root root 0 2012-12-17 14:26 test4
[ [correo electrónico protegido] ~]#
servidor3.ejemplo.com:
ls -l /data
[[email protected] ~]# ls -l /data
total 0
-rw-r--r-- 1 root root 0 2012-12-17 14:26 test6
[ [correo electrónico protegido] ~]#
servidor4.ejemplo.com:
ls -l /data
[[email protected] ~]# ls -l /data
total 0
-rw-r--r-- 1 root root 0 2012-12-17 14:26 test3
[ [correo electrónico protegido] ~]#
6 Enlaces
- GlusterFS:http://www.gluster.org/
- Documentación de GlusterFS 3.2:http://download.gluster.com/pub/gluster/glusterfs/3.2/Documentation/AG/html/index.html
- CentOS:http://www.centos.org/