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).
Luego creamos los enlaces de inicio del sistema para el servidor GlusterFS y lo iniciamos:
Hay un paquete rpm de cliente GlusterFS para Fedora 12, pero el problema es que obtendrá errores como df:'/mnt/glusterfs':el software provocó la interrupción de la conexión o df:'/mnt/glusterfs':el punto final de transporte no está conectado cuando intenta acceder al recurso compartido GlusterFS. Es por eso que creamos el cliente GlusterFS a partir de las fuentes para evitar estos problemas.
Luego descargamos las fuentes de GlusterFS 2.0.9 (¡tenga en cuenta que esta es la misma versión que está instalada en el servidor!) y compilamos GlusterFS de la siguiente manera:
volume remote1
type protocol/client
option transport-type tcp
option remote-host server1.example.com
option remote-subvolume brick
end-volume
volume remote2
type protocol/client
option transport-type tcp
option remote-host server2.example.com
option remote-subvolume brick
end-volume
volume remote3
type protocol/client
option transport-type tcp
option remote-host server3.example.com
option remote-subvolume brick
end-volume
volume remote4
type protocol/client
option transport-type tcp
option remote-host server4.example.com
option remote-subvolume brick
end-volume
volume replicate1
type cluster/replicate
subvolumes remote1 remote2
end-volume
volume replicate2
type cluster/replicate
subvolumes remote3 remote4
end-volume
volume distribute
type cluster/distribute
subvolumes replicate1 replicate2
end-volume
volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes distribute
end-volume
volume cache
type performance/io-cache
option cache-size 512MB
subvolumes writebehind
end-volume |
¡Asegúrese de utilizar los nombres de host del servidor o las direcciones IP correctos en las líneas de host remoto de opciones!
¡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ía ver el nuevo recurso compartido en los resultados de...
mount
[[email protected] ~]# mount
/dev/mapper/vg_server5-lv_root 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)
/etc/glusterfs/glusterfs.vol 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_server5-lv_root
29G 2.5G % / 10 TMPFS 185M 0 185M 0%/dev/shm
/dev/sda1 194m 23m 161m 13%/boot
/etc/Glusterfs/Glusterfs.vol
57G 9.8G 47G 17%/Mnt/Mnt/ glusterfs
[[correo electrónico protegido] ~]#
(El tamaño del almacenamiento distribuido se calcula mediante replicación1 + replicación2, donde ambos volúmenes de replicación son tan grandes como el ladrillo más pequeño).
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
[...]
/etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |
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
4 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/export en server1.example.com, server2.example.com, server3.example.com y server4.example.com. Notará que tanto la replicación 1 como la replicación 2 contienen solo una parte de los archivos/directorios que componen el recurso compartido GlusterFS en el cliente, pero los nodos que componen la replicación 1 (servidor 1 y servidor 2) o la replicación 2 (servidor 3 y servidor 4) contienen el mismo archivos (duplicación):
servidor1.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test1
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test2
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test4
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test5
[[email protected] ~]#
servidor2.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test1
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test2
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test4
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test5
[[email protected] ~]#
servidor3.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test3
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test6
[[email protected] ~]#
servidor4.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test3
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test6
[[email protected] ~]#
Ahora cerramos server1.example.com y server4.example.com y agregamos/eliminamos algunos archivos en el recurso compartido GlusterFS en client1.example.com.
servidor1.ejemplo.com/servidor4.ejemplo.com:
shutdown -h now
cliente1.ejemplo.com:
rm -f /mnt/glusterfs/test5
rm -f /mnt/glusterfs/test6
Los cambios deberían estar visibles en el directorio /data/export en server2.example.com y server3.example.com:
servidor2.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test1
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test2
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test4
[[correo electrónico protegido] ~]#
servidor3.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test3
[[correo electrónico protegido] ~]#
Iniciemos server1.example.com y server4.example.com nuevamente y echemos un vistazo al directorio /data/export:
servidor1.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test1
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test2
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test4
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test5
[[email protected] ~]#
servidor4.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test3
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test6
[[email protected] ~]#
Como puede ver, server1.example.com y server4.example.com no notaron los cambios que ocurrieron mientras estaban inactivos. Esto es fácil de arreglar, todo lo que tenemos que hacer es invocar un comando de lectura en el recurso compartido GlusterFS en client1.example.com, por ejemplo:
cliente1.ejemplo.com:
ls -l /mnt/glusterfs/
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test1
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test2
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test3
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test4
[[email protected] ~]#
Ahora eche un vistazo al directorio /data/export en server1.example.com y server4.example.com nuevamente, y debería ver que los cambios se han replicado en estos nodos:
servidor1.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test1
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test2
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test4
[[correo electrónico protegido] ~]#
servidor4.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2010-02-23 15:41 test3
[[correo electrónico protegido] ~]#
5 Enlaces
- GlusterFS:http://www.gluster.org/
- Fedora:http://fedoraproject.org/