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.102,192.168.0.103).
Luego creamos los enlaces de inicio del sistema para el script de inicio glusterfsd...
... e inicie glusterfsd:
En el cliente, necesitamos instalar fuse y GlusterFS. En lugar de instalar el paquete libfuse2 desde el repositorio de Debian, instalamos una versión parcheada con mejor soporte para GlusterFS.
Luego construimos fuse de la siguiente manera (puede encontrar la última versión de fuse parcheada en ftp://ftp.zresearch.com/pub/gluster/glusterfs/fuse/):
Luego construimos GlusterFS (igual que en el servidor)...
... y crea los siguientes dos directorios:
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 replicate
type cluster/replicate
subvolumes remote1 remote2
end-volume
volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes replicate
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
cliente1:/tmp/glusterfs-2.0.1# mount
/dev/sda1 en / escriba ext3 (rw,errors=remount-ro)
tmpfs en /lib/init/rw escriba tmpfs (rw, nosuid,mode=0755)
proc en /proc tipo proc (rw,noexec,nosuid,nodev)
sysfs en /sys tipo sysfs (rw,noexec,nosuid,nodev)
udev en /dev escriba tmpfs (rw,mode=0755)
tmpfs en /dev/shm escriba tmpfs (rw,nosuid,nodev)
devpts en /dev/pts escriba devpts (rw,noexec,nosuid,gid =5,modo=620)
fusible en /sys/fs/fuse/conexiones tipo fusectl (rw)
/etc/glusterfs/glusterfs.vol en /mnt/glusterfs tipo fuse.glusterfs (rw, max_read=131072,allow_other,default_permissions)
cliente1:/tmp/glusterfs-2.0.1#
... y...
df -h
Client1:/tmp/Glusterfs-2.0.1# df -h
Tamaño del sistema de archivos utilizado disponible use%montado en
/dev/sda1 29g 935m 27g 4%/
TMPFS 126M 0 126M 0% /lib/init/rw
udev 10m 80k 10m 1%/dev
tmpfs 126m 0 126m 0%/dev/shm
/etc/Glusterfs/Glusterfs.vol
19G 804M 17G 5 % /mnt/glusterfs
cliente1:/tmp/glusterfs-2.0.1#
(server1.example.com y server2.example.com tienen cada uno 19 GB de espacio para el sistema de archivos GlusterFS, pero debido a que los datos están reflejados, el cliente no ve 38 GB (2 x 19 GB), sino solo 19 GB).
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
Ahora revisemos el directorio /data/export en server1.example.com y server2.example.com. Los archivos test1 y test2 deben estar presentes en cada nodo:
servidor1.ejemplo.com/servidor2.ejemplo.com:
ls -l /data/export
servidor1:~# ls -l /data/export
total 0
-rw-r--r-- 1 raíz raíz 0 2009-06-02 15:31 prueba1
-rw- r--r-- 1 raíz raíz 0 2009-06-02 15:32 prueba2
servidor1:~#
Ahora cerramos server1.example.com y agregamos/eliminamos algunos archivos en el recurso compartido GlusterFS en client1.example.com.
servidor1.ejemplo.com:
shutdown -h now
cliente1.ejemplo.com:
toque /mnt/glusterfs/test3
toque /mnt/glusterfs/test4
rm -f /mnt/glusterfs/test2
Los cambios deberían estar visibles en el directorio /data/export en server2.example.com:
servidor2.ejemplo.com:
ls -l /data/export
servidor2:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw-r--r-- 1 root root 0 2009-06-02 15:32 test3
-rw-r--r-- 1 root root 0 2009-06-02 15:33 prueba4
servidor2:/tmp/glusterfs-2.0.1#
Iniciemos server1.example.com nuevamente y echemos un vistazo al directorio /data/export:
servidor1.ejemplo.com:
ls -l /data/export
servidor1:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw- r--r-- 1 raíz raíz 0 2009-06-02 15:32 prueba2
servidor1:~#
Como puede ver, server1.example.com no ha notado los cambios que ocurrieron mientras estaba inactivo. 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/
cliente1:~# ls -l /mnt/glusterfs/
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw -r--r-- 1 root root 0 2009-06-02 15:32 test3
-rw-r--r-- 1 root root 0 2009-06-02 15:33 test4
cliente1:~#
Ahora eche un vistazo al directorio /data/export en server1.example.com nuevamente, y debería ver que los cambios se han replicado en ese nodo:
servidor1.ejemplo.com:
ls -l /data/export
servidor1:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-02 15:31 test1
-rw- r--r-- 1 root root 0 2009-06-02 15:52 test3
-rw-r--r-- 1 root root 0 2009-06-02 15:52 test4
servidor1 :~#
5 Enlaces
- GlusterFS:http://www.gluster.org/
- Debian:http://www.debian.org/