Este artículo explica el proceso de instalación y configuración de CentOS 7 con GlusterFS en AArch64. GlusterFS es un sistema de archivos de código abierto y escalable que combina varios servidores de almacenamiento mediante Infiband o TCP y crea un gran sistema de archivos de red.
Requisitos
Para configurar GlusterFS, necesita dos o más servidores (AArch64) con CentOS 7 instalado. Los servidores pueden ser físicos o virtuales. Estoy usando dos servidores virtuales aquí y configurando sus nombres de host como 'gfs1' y 'gfs2'. La conectividad de red debe estar activa en ambos. Cada nodo debe tener un dispositivo de almacenamiento. En los ejemplos utilizados en este artículo, se utilizan discos de almacenamiento virtual con 2 GB cada uno en los nodos.
Agregue la dirección IP y el nombre de host de los servidores a /etc/hosts en ambos nodos.
45.79.161.123 gfs1
45.79.174.123 gfs2
Instalación de GlusterFS
Antes de continuar con la instalación, debemos habilitar los repositorios EPEL (Exta Packages for Enterprise Linux) y GlusterFS en ambos servidores para resolver las dependencias externas en el momento de la instalación. Si ha habilitado solo el repositorio GlusterFS y no ha habilitado el repositorio EPEL, es probable que reciba el siguiente mensaje de error al instalar glusterfs-server:
Error: Package: glusterfs-server-3.7.0-2.el7.x86_64 (glusterfs-epel)
Requires: liburcu-cds.so.1()(64bit)
Error: Package: glusterfs-server-3.7.0-2.el7.x86_64 (glusterfs-epel)
Requires: liburcu-bp.so.1()(64bit)
Habilitación del repositorio EPEL en CentOS:
Use wget para obtener el archivo requerido e instálelo usando rpm.
[root@gfs1 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
--2015-05-26 10:35:33-- http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
Resolving dl.fedoraproject.org (dl.fedoraproject.org)... 209.132.181.24, 209.132.181.25, 209.132.181.23, ...
Connecting to dl.fedoraproject.org (dl.fedoraproject.org)|209.132.181.24|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14524 (14K) [application/x-rpm]
Saving to: epel-release-7-5.noarch.rpm
100%[======================================>] 14,524 --.-K/s in 0.06s
2015-05-26 10:35:33 (239 KB/s) - ˜epel-release-7-5.noarch.rpm saved [14524/14524]
[root@localhost ~]# rpm -ivh epel-release-7-5.noarch.rpm
warning: epel-release-7-5.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-5 ################################# [100%]
Habilitación del repositorio GlusterFS:
[root@gfs1 ~]# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
--2015-05-26 10:37:49-- http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
Resolving download.gluster.org (download.gluster.org)... 50.57.69.89
Connecting to download.gluster.org (download.gluster.org)|50.57.69.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1055 (1.0K) [text/plain]
Saving to: /etc/yum.repos.d/glusterfs-epel.repo
100%[======================================>] 1,055 --.-K/s in 0s
2015-05-26 10:37:49 (81.2 MB/s) - /etc/yum.repos.d/glusterfs-epel.repo saved [1055/1055]
Siga los pasos mencionados a continuación en ambos servidores:
Instale glusterfs en ambos:
[root@gfs1 ~]# yum install glusterfs-server
Ahora, inicie el demonio glusterfs:
root@gfs1 ~]# service glusterd start
Redirecting to /bin/systemctl start glusterd.service
Verifique si el servicio se ha iniciado correctamente:
[root@gfs1 ~]# service glusterd status
Redirecting to /bin/systemctl status glusterd.service
glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled)
Active: active (running) since Tue 2015-05-26 10:42:08 UTC; 38s ago
Process: 13418 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid (code=exited, status=0/SUCCESS)
Main PID: 13419 (glusterd)
CGroup: /system.slice/glusterd.service
13419 /usr/sbin/glusterd -p /var/run/glusterd.pid
May 26 10:42:08 localhost.localdomain systemd[1]: Started GlusterFS, a cluste...
Hint: Some lines were ellipsized, use -l to show in full.
Deshabilite SELinux, en caso de que esté habilitado, cambiando “SELINUX=disabled” o “SELINUX=permissive” en el archivo /etc/sysconfig/selinux.
A continuación, vacíe las iptables.
[root@gfs1 ~]# iptables -F
Ahora, cree particiones idénticas en ambos nodos. Estoy usando la partición /dev/xvdc con un tamaño de 2 GB aquí.
fdisk /dev/xvdc
Crea una nueva partición usando la opción 'n'. Elija la opción 'p' para la partición primaria y luego siga las opciones predeterminadas. Cuando termine, seleccione 'w' para guardar los datos en el disco y salir.
Cree un sistema de archivos en la partición recién creada:
mkfs.ext4 /dev/xvdc1
Móntelo en un directorio llamado /data/brick:
[root@gfs1 ~]# mkdir -p /data/brick
[root@gfs1 ~]# mount /dev/xvdc1 /data/brick
Agregue esto a la entrada fstab para conservar el montaje después de reiniciar.
[root@gfs1 ~]# echo "/dev/xvdc1 /data/brick ext4 defaults 0 0" >> /etc/fstab
Ahora, necesitamos configurar el grupo de confianza.
Configuración
Necesitamos crear un grupo de almacenamiento de confianza a partir de los servidores gluster que proporcionan los ladrillos para los volúmenes.
Ejecute el siguiente comando en el primer servidor:
[root@gfs1 ~]# gluster peer probe gfs2
peer probe: success.
Ejecutar en el segundo servidor:
[root@gfs2 ~]# gluster peer probe gfs1
peer probe: success.
Verifique el grupo de almacenamiento:
[root@gfs1 ~]# gluster pool list
UUID Hostname State
4d1d974d-4c75-424c-a788-7f0e71002e02 gfs2 Connected
473b1bc5-b8c0-4cea-ac86-568a77d0edf0 localhost Connected
Configuración del volumen de GlusterFS:
Para configurar el volumen, es suficiente ejecutar los siguientes comandos en solo uno de los servidores. Estoy usando el primer servidor (gfs1) aquí.
[root@gfs1 ~]# gluster volume status
No volumes present
Estoy creando un volumen replicado en este ejemplo. Proporciona alta disponibilidad y confiabilidad. Para obtener más detalles sobre los diferentes tipos de volúmenes, consulte la página de la comunidad gluster.
[root@gfs1 ~]# mkdir /data/brick/gvol0
[root@gfs1 ~]# gluster volume create gvol0 replica 2 gfs1:/data/brick/gvol0 gfs2:/data/brick/gvol0
volume create: gvol0: success: please start the volume to access data.
Inicie el volumen recién creado
[root@localhost ~]# gluster volume start gvol0
volume start: gvol0: success
Verifica los detalles:
[root@localhost ~]# gluster volume info
Volume Name: gvol0
Type: Replicate
Volume ID: 4a61822d-75cf-402b-bad4-19ae57626673
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gfs1:/data/brick/gvol0
Brick2: gfs2:/data/brick/gvol0
Options Reconfigured:
performance.readdir-ahead: on
¡Sí, ya casi estás! Solo tiene que montar el volumen recién creado en cualquier punto de montaje y empezar a usarlo.
[root@gfs1 ~]# mount -t glusterfs gfs1:/gvol0 /mnt
[root@gfs2 ~]# mount -t glusterfs gfs1:/gvol0 /mnt
Copie algunos datos al volumen montado desde cualquiera de los servidores y verifique que también sea accesible desde el otro servidor.
[root@gfs1 ~]# cp /var/log/yum.log /mnt
[root@gfs2 mnt]# ls
yum.log
Conclusión
¡Felicidades! Ha completado la configuración de GlusterFS en su sistema CentOS7. Este punto de montaje ahora actúa como un único sistema de archivos que se puede usar para crear, editar o eliminar archivos de cualquiera de los nodos. Todo el proceso de instalación y configuración es bastante simple y no lleva mucho tiempo. Si desea recursos adicionales sobre GlusterFS, puede consultar gluster.org