GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción a GlusterFS:consideraciones e instalación

Este artículo se actualizó para cubrir la instalación de GlusterFS® 7 en CentOS® 7 y Ubuntu® 18.04. Todo el trabajo original en este documento es el mismo, excepto por el paso donde creas el volumen con la réplica palabra clave.

Antes de comenzar a usar GlusterFS, debe decidir qué tipo de volumen necesita para su entorno. Los siguientes métodos se utilizan con mayor frecuencia para lograr diferentes resultados.

Volumen replicado

Este tipo de volumen proporciona replicación de archivos en varios bloques. Es la mejor opción para entornos que requieren alta disponibilidad, alta confiabilidad y almacenamiento escalable. Este tipo de volumen funciona bien si planea automontar el volumen GlusterFS, por ejemplo, como la raíz del documento del servidor web (/var/www ) o similar donde todos los archivos deben residir en ese nodo. El valor pasado a réplica es el mismo número de nodos en el volumen.

Los archivos se copian en cada bloque del volumen, de forma similar a una matriz redundante de discos independientes (RAID-1). Sin embargo, puede tener tres o más ladrillos o un número impar de ladrillos. El espacio utilizable es del tamaño de un bloque, y todos los archivos escritos en un bloque se replican en todos los demás. Los volúmenes de este tipo también ofrecen un rendimiento de lectura mejorado en la mayoría de los entornos y son el tipo de volumen más común que se usa cuando los clientes son externos a los propios nodos de GlusterFS.

Volumen replicado-distribuido

Similar a un RAID-10, se debe usar un número par de ladrillos. El espacio utilizable es el tamaño de los ladrillos combinados pasados ​​a la réplica valor. Por ejemplo, si hay cuatro bloques de 20 Gigabytes (GB) y pasas réplica 2 a la creación, sus archivos se distribuyen a dos nodos (40 GB) y se replican a dos nodos. Con seis bricks de 20 GB y réplica 3 , sus archivos se distribuyen a tres nodos (60 GB) y se replican a tres nodos. Si usó la réplica 2, luego se distribuyen a dos nodos (40 GB) y se replican a cuatro nodos en pares. Esta distribución y replicación se utilizan cuando sus clientes son externos al clúster, no automontajes locales.

Requisitos

  • Dos o más servidores con almacenamiento independiente. Los ejemplos de este artículo se basan en servidores CentOS 7 y Ubuntu 18.04.
  • Una red privada entre servidores. Los ejemplos de este artículo usan 192.168.0.0/24 .

Configuración de compilación

La compilación descrita en este documento utiliza la siguiente configuración:

  • Cuatro imágenes de servidor de Rackspace Cloud con /dev/xvde tabique listo para usar para cada ladrillo
  • Red privada de una nube en 192.168.0.0/24 para comunicación GlusterFS
  • GlusterFS 7.1 instalado desde el repositorio de paquetes del proveedor

Preparando los servidores

Realice las siguientes configuraciones e instalaciones para preparar los servidores:

  1. Configurar /etc/hosts .
  2. Instalar las actualizaciones del sistema operativo (SO).
  3. Instale el software GlusterFS.
  4. Configurar el acceso a la red.
  5. Conectar nodos GlusterFS.

Configure /etc/hosts para la comunicación dentro del nodo

En lugar de usar DNS, prepare /etc/hosts en cada servidor y asegúrese de que los servidores puedan comunicarse entre sí. Todos los servidores tienen el nombre glusterN como nombre de host, use glusN para la capa de comunicación privada entre servidores.

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04

Instalar paquetes

Ejecute los comandos de esta sección para realizar los siguientes pasos:

  1. Instalar actualizaciones del sistema operativo.
  2. Instale el repositorio de GlusterFS y los paquetes de GlusterFS.

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server

Sistema operativo Ubuntu

El repositorio predeterminado de Ubuntu tiene instalado GlusterFS 3.13.2. Use los siguientes comandos para instalar 7.1:

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server

Configurar acceso a la red

CentOS

Use los siguientes comandos para permitir el tráfico de Gluster entre sus nodos y permitir montajes de clientes:

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent

Sistema operativo Ubuntu

Utilice los siguientes comandos para permitir todo el tráfico en su segmento de red privada para facilitar la comunicación de Gluster:

ufw enable
ufw allow from 192.168.0.0/24

Preparar los ladrillos

Ejecute los comandos de esta sección para realizar los siguientes pasos:

  1. Dispositivos de bloques de partición.
  2. Cree la base del administrador de volúmenes lógicos (LVM).
  3. Preparar ladrillos de volumen.

Los ladrillos subyacentes son un sistema de archivos estándar y un punto de montaje. Monte cada bloque de tal manera que desaliente a cualquier usuario de cambiar al directorio y escribir en los propios bloques subyacentes.

Advertencia: Escribir directamente en un bloque corrompe el volumen.

Los bloques deben ser únicos por nodo y debe haber un directorio dentro del punto de montaje para usar en la creación del volumen. Intentar crear un volumen replicado usando el nivel superior de los puntos de montaje da como resultado un error con instrucciones para usar un subdirectorio.

Todos los nodos

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
  • glus-01

     mkdir /var/lib/gvol0/brick1
    
  • glus-02

     mkdir /var/lib/gvol0/brick2
    
  • glus-03

     mkdir /var/lib/gvol0/brick3
    
  • glus-04

     mkdir /var/lib/gvol0/brick4
    

Configurar GlusterFS

Siga los pasos a continuación para ejecutar la configuración de GlusterFS.

Iniciar el demonio glusterfsd

Puede reiniciar el daemon en tiempo de ejecución usando los siguientes comandos:

systemctl enable glusterd
systemctl start glusterd

Construir un grupo de pares

Un grupo de pares se conoce como un grupo de almacenamiento de confianza en GlusterFS.

  • glus-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
    
  • glus-02

    gluster peer status
    
  • glus-03

    gluster peer status
    
  • glus-04

    gluster peer status
    

Ahora puede verificar el estado de su nodo y el grupo de servidores gluster:

[root@gluster1 ~]# gluster pool list
UUID	                				Hostname	State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8	glus-04   	Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16	glus-03   	Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e	glus-02   	Connected
e64c5148-8942-4065-9654-169e20ed6f20	localhost	Connected

Crear el volumen

De forma predeterminada, glusterd NFS permite la lectura/escritura global durante la creación del volumen, por lo que debe configurar restricciones de autorización básicas solo para la subred privada. glusterd inicia automáticamente NFSd en cada servidor y exporta el volumen a través de él desde cada uno de los nodos. El motivo de este comportamiento es que para utilizar el sistema de archivos del cliente nativo en el espacio de usuario (FUSE) para montar el volumen en los clientes, los clientes deben ejecutar exactamente la misma versión de los paquetes de GlusterFS. Si las versiones son diferentes, podría haber diferencias en los algoritmos hash utilizados por los servidores y los clientes, y los clientes no podrán conectarse.

Volumen replicado

El siguiente ejemplo crea la replicación en los cuatro nodos. Cada nodo contiene una copia de todos los datos y el tamaño del volumen es del tamaño de un solo ladrillo. Tenga en cuenta que la salida muestra 1 x 4 = 4 .

Solo un nodo :

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Volumen distribuido-replicado

Este ejemplo crea una replicación distribuida en nodos 2x2. Cada par de nodos contiene los datos y el tamaño del volumen es del tamaño de dos ladrillos. Tenga en cuenta que la salida muestra 2 x 2 = 4 .

Solo un nodo :

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Eliminar el volumen

Después de asegurarse de que ningún cliente (ya sea local o remoto) esté montando el volumen, puede detener el volumen y eliminarlo mediante los siguientes comandos:

gluster volume stop gvol0
gluster volume delete gvol0

Limpiar ladrillos

Si se usan ladrillos en un volumen y es necesario quitarlos, puede usar uno de los siguientes métodos:

GlusterFS establece un atributo en los subdirectorios de ladrillos. Si borra este atributo, los ladrillos se pueden reutilizar.

  • glus-01:

    setfattr -x de confianza.gvol0.volume-id /var/lib/gvol0/brick1/setfattr -x de confianza.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glus-02:

    setfattr -x Trusted.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x Trusted.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glus-03:

    setfattr -x de confianza.gvol0.volume-id /var/lib/gvol0/brick3/setfattr -x de confianza.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glus-04:

    setfattr -x de confianza.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x de confianza.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

Alternativamente, puede eliminar los subdirectorios y luego volver a crearlos.

  • glus-01

    rm -rf /var/lib/gvol0/brick1mkdir /var/lib/gvol0/brick1

  • glus-02:

    rm -rf /var/lib/gvol0/brick2mkdir /var/lib/gvol0/brick2

  • glus-03:

    rm -rf /var/lib/gvol0/brick3mkdir /var/lib/gvol0/brick3

  • glus-04:

    rm -rf /var/lib/gvol0/brick4mkdir /var/lib/gvol0/brick4

Añadir ladrillos

Puede agregar más ladrillos a un volumen en ejecución. Agregue un ladrillo adicional a nuestro ejemplo de volumen replicado anterior usando el siguiente comando:

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5

Puedes usar el add-brick comando para cambiar el diseño de su volumen, por ejemplo, para cambiar un volumen distribuido de dos nodos a un volumen replicado distribuido de cuatro nodos. Después de tal operación, debe reequilibrar su volumen. Los nuevos archivos se crean automáticamente en los nuevos nodos, pero los antiguos no se mueven.

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop

Opciones de volumen

Para ver las opciones de volumen configuradas, ejecute el siguiente comando:

gluster volume info gvol0

El siguiente es un resultado de ejemplo:

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Para establecer una opción para un volumen, use el establecer palabra clave de la siguiente manera:

gluster volume set gvol0 performance.write-behind off
volume set: success

Para borrar una opción de un volumen a su valor predeterminado, use el botón restablecer palabra clave de la siguiente manera:

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful

Montaje de cliente

El método preferido para que un cliente monte un volumen GlusterFS es usar el cliente FUSE nativo. Los montajes NFS son posibles cuando GlusterFS se implementa junto con NFS-Ganesha®.

cliente FUSE

El cliente FUSE permite que el montaje se realice con una conexión de estilo "round robin" de GlusterFS. En /etc/fstab , se utiliza el nombre de un nodo. Sin embargo, los mecanismos internos permiten que ese nodo falle y los clientes pasan a otros nodos conectados en el grupo de almacenamiento de confianza.

CentOS :

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse

Ubuntu :

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client

Común :

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`

Referencias

  • https://www.gluster.org/anunciando-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/instalar-y-configurar-glusterfs-en-ubuntu-18-04/
  • https://launchpad.net/~gluster

Siguiente artículo

Solución de problemas de GlusterFS


Linux
  1. Comience con NetworkManager en Linux

  2. Comience con los servidores en la nube

  3. Comience con Magento en Debian 10

  4. Comience con Tasksel en Debian

  5. Comience con Latex en Linux

Comience con GNUPlot

Tutorial de Podman:comience a usar Podman

Cómo instalar y comenzar con Itch en Ubuntu Linux

Cómo comenzar con Arch Linux

Instalación y primeros pasos con Git

Cómo comenzar con Midnight Commander en 2022