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 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 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
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
48g 1.7 G 44G 4 % /mnt/glusterfs
cliente1:/tmp/glusterfs-2.0.1#
(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
servidor1:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test1
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test2
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test4
-rw-r--r-- 1 raíz raíz 0 2009-06-03 15:24 test5
servidor1:/tmp/glusterfs-2.0.1#
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-03 15:24 test1
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test2
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test4
-rw-r--r-- 1 raíz raíz 0 2009-06-03 15:24 test5
servidor2:/tmp/glusterfs-2.0.1#
servidor3.ejemplo.com:
ls -l /data/export
server3:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test3
-rw-r--r-- 1 raíz raíz 0 2009-06-03 15:24 test6
servidor3:/tmp/glusterfs-2.0.1#
servidor4.ejemplo.com:
ls -l /data/export
server4:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test3
-rw-r--r-- 1 raíz raíz 0 2009-06-03 15:24 test6
servidor4:/tmp/glusterfs-2.0.1#
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
servidor2:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test1
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test2
-rw-r--r-- 1 root root 0 2009-06-03 15:24 prueba4
servidor2:/tmp/glusterfs-2.0.1#
servidor3.ejemplo.com:
ls -l /data/export
server3:/tmp/glusterfs-2.0.1# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test3
servidor3:/tmp/glusterfs-2.0.1#
Iniciemos server1.example.com y server4.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-03 15:24 test1
-rw- r--r-- 1 root root 0 2009-06-03 15:24 test2
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test4
- rw-r--r-- 1 raíz raíz 0 2009-06-03 15:24 test5
servidor1:~#
servidor4.ejemplo.com:
ls -l /data/export
servidor4:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test3
-rw- r--r-- 1 raíz raíz 0 2009-06-03 15:24 test6
servidor4:~#
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/
cliente1:~# ls -l /mnt/glusterfs/
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test1
-rw -r--r-- 1 root root 0 2009-06-03 15:24 test2
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test3
-rw-r--r-- 1 raíz raíz 0 2009-06-03 15:24 test4
cliente1:~#
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
servidor1:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test1
-rw- r--r-- 1 root root 0 2009-06-03 15:24 test2
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test4
servidor1 :~#
servidor4.ejemplo.com:
ls -l /data/export
servidor4:~# ls -l /data/export
total 0
-rw-r--r-- 1 root root 0 2009-06-03 15:24 test3
servidor4:~ #
5 Enlaces
- GlusterFS:http://www.gluster.org/
- Debian:http://www.debian.org/