A diferencia de otros sistema de archivos como GFS sobre ISCSI , GlusterFS es un sistema de archivos que se ejecuta en el espacio de usuario con fuse, tiene sus pros y contras
PRO
-Es muy similar incluso compatible con NFS
-Es muy similar a los volúmenes de BTRFS en el sentido que incluye un tipo de RAID 0,1 y mezclas que pueden dar lugar a 5 u otros RAID lo que incluso permite tolerancia a fallos si caen bricks.
-Fácil de configurar
-Muy veloz cuando los servidores se encuentran dentro del mismo datacenter y site, mejor si están conectados con swiches gigabit y/o fibra
Contras.
-No es muy eficiente en sobre VPN o sobre hosts que no se encuentran en Internet, especialmente si se usara para hosting de PHP con sitios como wordpress que hacen mucho uso de llamados de archivos PHP.
Glosario
Brick – Los ladrillos hacen el equivalente de dispositivo de bloques, se refieren a directorios que pueden estar montados sobre cualquier FS local, por ejemplo. XFS, Ext3/4 , BTRFS, NTFS y otros. Por lo que están abstraídos del sistema de operativo o del sistema de archivos
Estrategias Distributed, Replicated y Striped
Distributed : un archivo está en un ladrillo y el siguiente archivo está en el siguiente ladrillo. Esta estrategia te da más espacio porque tu volumen es la suma de todos los ladrillos.
Replicated: cada archivo se copia en cada brick, por lo que hay copias completas y espejeadas de cada de archivo entre todos los bricks
Striped : los archivos se cortan en trozos, y un trozo se escribe en el primer ladrillo, un trozo se escribe en el segundo ladrillo, y así sucesivamente.
Instalar los siguientes paquetes
yum install centos-release-gluster41.noarch -y
yum install glusterfs gluster-cli glusterfs-libs glusterfs-server -y
Arrancar el servicio de GlusterFS y asegurarse que este diponible después de cada reinicio del equipo
systemctl start glusterd ; systemctl enable glusterd
Agregar las ips al archivo /etc/hosts, sean de VPN, globales de internet o privadas en el site
Para este articulo serán:
192.168.10.133 g1
192.168.10.132 g2
192.168.10.131 g3
Construyendo el cluster, permitiendo que GlusterFS sepa con que servidores cuenta
gluster peer probe g2
gluster peer probe g3
** G1 falta por que al hacerlo desde el PC numero 1 este no es requerido y responderá un error como “peer probe: success. Probe on localhost not needed”. si la configuración la hacemos desde el PC 3 será el 3 el que hay que omitir, aunque intentar agregarlo no causa ningún problema fuera del error de que no es necesario.
Después del peer probe, se puede ver si se han conectado los equipos remotos con el comando
gluster peer status
Una vez que los peers ( servidores ) están conectados se deben crear los bricks
Crear los bricks que no son otra cosa que directorios que serán exportados al estilo NFS
Ej. mkdir /gluster/
*** Se puede crear un volumen exportando un directorio de la particion root, pero siempre es mejor que cada volumen tenga su propia partición y sistema de archivos local como Ext4 o BTRFS
*** El directorio del volumen no debe ser la raíz de la partición, por lo que deberían crearse subdirectorios por cada volumen
ej. mkdir /gluster/vol1
** Deben crearse las subcarpetas de volumen en cada uno de los peers remotos
Creando un volumen replicado/mirror
gluster volume create NombreDelVolumen replica 3 transport tcp g1:/gluster/vol1/ g2:/gluster/vol1/ g3:/gluster/vol1/
** El numero seguido de del método “ replica “ , el numero 3 indica que seran replicados 3 archivos completos en cada brick, siendo que el cluster es de 3 peers significa que cada peer tendrá una copia exacta de cada archivo
Creando un volumen similar a RAID 5
gluster volume create NombreDelVolumen replica 1 transport tcp g1:/gluster/vol1/ g2:/gluster/vol1/ g3:/gluster/vol1/ g4:/gluster/vol1/ g5:/gluster/vol1/
** Al decirle que la replica será solo 1, solo un servidor tendrá una copia completa de los archivos, el resto de los equipos o peers contendrán fragmentos de los archivos aumentando el espacio de almacenamiento como lo haría un RAID 5 que sumaria el espacio de 4 discos y 1 de paridad
Después de creado el volumen, este debe iniciarse para que este listo para servir y montarse
gluster volume start NombreDelVolumen
** Ya se pueden montarse y usarse
** Ver las estados de los volúmenes
gluster volume status
Agregar otro Peer y otro brick a un volumen replicate
Agegar su IP en los archivos hosts de cada peer 192.168.10.127 g4
gluster peer probe g4
gluster volume add-brick NombreDelVolumen replica 4 g4:/gluster/vol1/
** El Replica 4 le indica que ahora que son 4 peers, también quiere que el nuevo peer tenga una copia exacta de los archivos tal como los anteriores 3 peers
Remover un brick
gluster volume remove-brick espejo replica 3 g4:/gluster/vol1/ force
** Force es porque se trata de un volumen tipo replicate ( mirror ), lo que simplemente obligara a sacarlo de inventario pero no afecta al resto que tienen copias exactas de los archivos, seria start en lugar de force si se trata de un volumen distribuido o stripe