(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 si los nombres de host se pueden resolver o no).
servidor1.ejemplo.com/servidor2.ejemplo.com/servidor3.ejemplo.com/servidor4.ejemplo.com:
El servidor GlusterFS está disponible como paquete para Fedora 12, por lo que podemos instalarlo de la siguiente manera:
ahora debería mostrar la versión de GlusterFS que acaba de instalar (2.0.9 en este caso):
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é el cliente puede conectarse (192.168.0.101 =client1.example.com):
volume posix
type storage/posix
option directory /data/export
end-volume
volume locks
type features/locks
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/server
option auth.addr.brick.allow 192.168.0.104
subvolumes brick
end-volume |
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:
chkconfig --levels 35 glusterfsd en
/etc/init.d/glusterfsd start
3 Configuración del cliente GlusterFS
cliente1.ejemplo.com:
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.
Antes de compilar 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 (¡tenga en cuenta que esta es la misma versión que está instalada en el servidor!) y compilamos 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
./configurar
Al final del comando ./configure, debería ver algo como esto:
[...]
Resumen de configuración de GlusterFS
==========================
FUSE cliente :yes
Infiniband verbs : yes
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
argp-standalone : no
[[correo electrónico protegido] glusterfs-2.0.9]#
hacer &&hacer instalar
ldconfig
Compruebe la versión de GlusterFS después (debe ser 2.0.9):
glusterfs --version
[[email protected] glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 construido el 19 de feb 2010 19:20:46
Revisión del repositorio: v2.0.9
Copyright ( c) 2006-2009 Gluster Inc.
GlusterFS viene sin NINGUNA GARANTÍA.
Usted puede redistribuir copias de GlusterFS según los términos de la Licencia pública general de GNU.
[[correo electrónico protegido] 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 remote1
type protocol/client
option transport-type tcp/client
option remote-host server1.example.com
option remote-subvolume brick
end-volume
volume remote2
type protocol/client
option transport-type tcp/client
option remote-host server2.example.com
option remote-subvolume brick
end-volume
volume remote3
type protocol/client
option transport-type tcp/client
option remote-host server3.example.com
option remote-subvolume brick
end-volume
volume remote4
type protocol/client
option transport-type tcp/client
option remote-host server4.example.com
option remote-subvolume brick
end-volume
volume stripe
type cluster/stripe
option block-size 1MB
subvolumes remote1 remote2 remote3 remote4
end-volume
volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes stripe
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
114G 9.8G 99G 10%/mnt/Mnt/ glusterfs
[[correo electrónico protegido] ~]#
(server1.example.com, server2.example.com, server3.example.com y server4.example.com tienen cada uno aproximadamente 28,5 GB de espacio para el sistema de archivos GlusterFS, por lo que el recurso compartido resultante tiene un tamaño de aproximadamente 4 x 28,5 GB (114 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 un gran archivo de prueba en el recurso compartido GlusterFS:
cliente1.ejemplo.com:
dd if=/dev/zero of=/mnt/glusterfs/test.img bs=1024k count=1000
ls -l /mnt/glusterfs
[[email protected] ~]# ls -l /mnt/glusterfs
total 1024032
-rw-r--r-- 1 root root 1048576000 2010-02-23 17:31 test.img
[[correo electrónico protegido] ~]#
Ahora revisemos el directorio /data/export en server1.example.com, server2.example.com, server3.example.com y server4.example.com. Debería ver el archivo test.img en cada nodo, pero con diferentes tamaños (debido a la división de datos):
servidor1.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 256008
-rw-r--r-- 1 root root 1045430272 2010-02-23 17:31 test.img
[[correo electrónico protegido] ~]#
servidor2.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 256008
-rw-r--r-- 1 root root 1046478848 2010-02-23 17:27 test.img
[[correo electrónico protegido] ~]#
servidor3.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 256008
-rw-r--r-- 1 root root 1047527424 2010-02-23 17:26 test.img
[[correo electrónico protegido] ~]#
servidor4.ejemplo.com:
ls -l /data/export
[[email protected] ~]# ls -l /data/export
total 256008
-rw-r--r-- 1 root root 1048576000 2010-02-23 17:30 test.img
[[correo electrónico protegido] ~]#
5 Enlaces
- GlusterFS:http://www.gluster.org/
- Fedora:http://fedoraproject.org/