Tutorial

Cómo crear un grupo de almacenamiento redundante con GlusterFS en Ubuntu 20.04

UbuntuScalingNetworkingStorageUbuntu 20.04

Justin Ellingwood escribió una versión anterior de este tutorial.

Introducción

Al almacenar datos cruciales, tener un punto único de fallo es muy arriesgado. Si bien muchas bases de datos y otros software permiten extender los datos en el contexto de una sola aplicación, otros sistemas pueden operar a nivel del sistema de archivos para garantizar que los datos se copien a otra ubicación cuando se escribe en disco.

GlusterFS es un sistema de archivos de almacenamiento conectado a la red que le permite agrupar recursos de almacenamiento de varias máquinas. A su vez, esto permite manipular diversos dispositivos de almacenamiento que se distribuyen entre muchas computadoras como una unidad única y más potente. GlusterFS también faculta la creación de diferentes tipos de configuraciones de almacenamiento, muchas de las cuales son similares en cuanto a funcionalidad a los niveles de RAID. Por ejemplo, puede segmentar datos en diferentes nodos del clúster o implementar la redundancia para obtener una mejor disponibilidad de datos.

Objetivos

En esta guía, creará una matriz de almacenamiento agrupada y redundante, también conocida como sistema de archivos distribuidos, o como se la denomina en la documentación de GlusterFS, un grupo de almacenamiento de confianza. Esto proporcionará una funcionalidad similar a una configuración RAID en espejo a través de la red: cada servidor independiente contendrá una copia propia de los datos, lo que permitirá que sus aplicaciones puedan acceder a cualquier copia, y de este modo, contribuirá a la distribución de la carga de lectura.

Este clúster redundante de GlusterFS consistirá en dos servidores Ubuntu 20.04. Actuará de manera similar a un servidor NAS con RAID en espejo. Después, podrá acceder al clúster desde un tercer servidor Ubuntu 20.04 que se configurará para funcionar como cliente de GlusterFS.

Nota sobre cómo ejecutar GlusterFS de manera segura

Cuando se agregan datos a un volumen de GlusterFS, esos datos se sincronizan con cada máquina del grupo de almacenamiento donde se aloja el volumen. Por defecto, el tráfico entre nodos no está cifrado, lo que significa que existe un riesgo de que agentes malintencionados los intercepten.

Debido a esto, si planea utilizar GlusterFS con fines productivos, se recomienda que lo ejecute en una red aislada. Por ejemplo, podría configurarlo para ejecutar en una nube privada virtual (VPC) o con una VPN que se ejecute entre cada nodo.

Si planea implementar GlusterFS en DigitalOcean, puede configurarlo en una red aislada agregando la infraestructura de su servidor a una nube privada virtual de DigitalOcean. Para obtener información sobre cómo configurarlo, consulte nuestra documentación sobre productos de VPC.

Requisitos previos

Para seguir este tutorial, necesitará tres servidores que ejecuten Ubuntu 20.04. Cada servidor debe tener un usuario no root con privilegios administrativos y un firewall configurado con UFW. Para configurar esto, siga la guía de configuración inicial de servidores para Ubuntu 20.04.

Nota: Como se indica en la sección de objetivos, este tutorial le servirá como guía para configurar dos de los servidores Ubuntu para que actúen como servidores en su grupo de almacenamiento y el otro para actuar como cliente, el cual utilizará para acceder a estos nodos.

Para mayor claridad, en este tutorial se hará referencia a estas máquinas con los siguientes nombres de host:

Nombre de host Función en el grupo de almacenamiento
gluster0 Servidor
gluster1 Servidor
gluster2 Cliente

Los comandos que deban ejecutarse en gluster0 o gluster1 aparecerán sobre fondos azul y rojo, respectivamente:

Los comandos que solo deban ejecutarse en el cliente (gluster2) aparecerán sobre un fondo verde:

Los comandos que puedan o deban ejecutarse en más de una máquina aparecerán sobre un fondo gris:

Paso 1: Configurar la resolución DNS en cada máquina

Configurar algún tipo de resolución de nombres de host entre cada equipo puede ayudar a administrar el grupo de almacenamiento de Gluster. De esta manera, cuando en este tutorial tenga que hacer referencia a una de las máquinas en un comando gluster, puede utilizar un nombre de dominio fácil de recordar o incluso un sobrenombre en vez de las respectivas direcciones IP.

Si no tiene un nombre de dominio extra, o si solo quiere realizar una configuración rápida, en su lugar puede modificar el archivo /etc/hosts en cada computadora. Este es un archivo especial en las máquinas Linux en el que puede configurar de forma estática el sistema para que establezca cualquier nombre de host que figure en el archivo como direcciones IP estáticas.

Nota: Si quiere configurar los servidores para que se autentiquen con un dominio de su propiedad, primero deberá obtener un nombre de dominio de un registrador de dominios (como Namecheap o Enom) y configurar los registros DNS apropiados.

Una vez que haya configurado un registro A para cada servidor, puede ir directamente al paso 2. A medida que sigue esta guía, asegúrese de sustituir glusterN.example.com y glusterN con el nombre de dominio que se convierte al servidor correspondiente al que se hace referencia en el comando de ejemplo.

Si obtuvo la infraestructura de DigitalOcean, podría agregar el nombre de dominio a DigitalOcean y, luego, configurar un registro A único para cada uno de los servidores.

Con su editor de texto preferido, abra este archivo con privilegios root en cada una de las máquinas. En este caso, utilizaremos nano:

  • sudo nano /etc/hosts

De forma predeterminada, el archivo tendrá el siguiente aspecto sin los comentarios:

/etc/hosts
127.0.1.1 hostname hostname
127.0.0.1 localhost

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

En uno de los servidores Ubuntu, agregue la dirección IP de cada servidor seguida de cualquier nombre que quiera utilizar para referirse a ellos en los comandos que se encuentran debajo de la definición del host local.

En el siguiente ejemplo, se proporciona a cada servidor un nombre de host largo que coincide con glusterN.example.com y uno corto que coincide con glusterN. Puede cambiar la parte de glusterN.example.com y glusterN de cada línea por cualquier nombre (o nombres separados por espacios individuales) que le gustaría utilizar para acceder a cada servidor. Sin embargo, tenga en cuenta que a lo largo de este tutorial se utilizarán los siguientes ejemplos:

Nota: Si los servidores son parte de un grupo de infraestructura de la nube privada virtual, en el archivo /etc/hosts debería utilizar la dirección IP privada de cada servidor en vez de sus IP públicas.

/etc/hosts
. . .
127.0.0.1       localhost
first_ip_address gluster0.example.com gluster0
second_ip_address gluster1.example.com gluster1
third_ip_address gluster2.example.com gluster2

. . .

Cuando haya terminado de agregar estas nuevas líneas en el archivo /etc/hosts de una máquina, cópielas y agréguelas en los archivos /etc/hosts de las otras máquinas. Cada archivo /etc/hosts debería contener las mismas líneas, lo que vincula las direcciones IP de los servidores con los nombres que seleccionó.

Guarde y cierre cada archivo cuando haya terminado. Si utiliza nano, podrá hacerlo presionando CTRL + X, Y y, luego, ENTER.

Ahora que ha configurado la resolución de nombres de host entre cada servidor, será más sencillo ejecutar los comandos más adelante cuando configure un grupo y un volumen de almacenamiento. A continuación, realizará otro paso que debe completarse en cada uno de los servidores. Concretamente, agregará el archivo de paquetes personal (PPA) oficial del proyecto Gluster a cada uno de los tres servidores Ubuntu para garantizar que pueda instalar la versión más reciente de GlusterFS.

Paso 2: Configurar las fuentes de software en cada máquina

Si bien los repositorios APT predeterminados de Ubuntu 20.04 contienen paquetes de GlusterFS, al momento de escribir este artículo, no se trata de las versiones más recientes. Una forma de instalar la versión estable más reciente de GlusterFS (versión 7.6, al momento de redactar este artículo) es agregar el PPA oficial del proyecto Gluster a cada uno de los tres servidores Ubuntu.

Ejecute el siguiente comando en cada servidor para agregar el PPA para los paquetes de GlusterFS:

  • sudo add-apt-repository ppa:gluster/glusterfs-7

Cuando se le solicite, presione ENTER para confirmar que realmente quiere agregar el PPA.

Tras agregar el PPA, actualice el índice local de paquetes de cada servidor. Esto hará que cada servidor sea informado sobre la presencia de los nuevos paquetes disponibles:

  • sudo apt update

Una vez que agregó el PPA oficial del proyecto Gluster a cada servidor y que actualizó el índice local de paquetes, está listo para instalar los paquetes necesarios de GlusterFS. Sin embargo, dado que dos de las tres máquinas actuarán como servidores de Gluster y la otra como cliente, existen dos procedimientos de instalación y configuración distintos. Primero, instalará y configurará los componentes del servidor.

Paso 3: Instalar los componentes del servidor y crear un grupo de almacenamiento de confianza

Un grupo de almacenamiento es toda capacidad de almacenamiento agregada a partir de dos o más recursos de almacenamiento. En este paso, configurará dos de los servidores (gluster0 y gluster1) como componentes del clúster.

Escriba lo siguiente para instalar el paquete de servidor de GlusterFS en gluster0 y gluster1:

  • sudo apt install glusterfs-server

Cuando se le solicite, presione Y y, luego, ENTER para confirmar la instalación.

De manera automática, el proceso de instalación configura GlusterFS para que se ejecute como un servicio systemd. Sin embargo, no inicia automáticamente el servicio ni lo habilita para ejecutarse en el arranque.

Para iniciar glusterd, el servicio de GlusterFS, ejecute el siguiente comando systemctl start en gluster0 y gluster1:

  • sudo systemctl start glusterd.service

Luego, ejecute el siguiente comando en ambos servidores. Esto permitirá que el servicio se inicie cuando arranque el servidor:

  • sudo systemctl enable glusterd.service

A continuación, puede verificar el estado del servicio en uno o en ambos servidores:

  • sudo systemctl status glusterd.service

Si el servicio está activo y en ejecución, recibirá un resultado similar al siguiente:

Output
● glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-02 21:32:21 UTC; 32s ago Docs: man:glusterd(8) Main PID: 14742 (glusterd) Tasks: 9 (limit: 2362) CGroup: /system.slice/glusterd.service └─14742 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Suponiendo que cumplió con los requisitos previos de la guía de configuración inicial de servidores, habrá configurado un firewall con UFW en cada una de las máquinas. Debido a esto, deberá abrir el firewall en cada nodo para poder establecer comunicaciones entre ellos y crear un grupo de almacenamiento.

El demonio de Gluster utiliza el puerto 24007, por lo que deberá permitir que cada nodo tenga acceso a ese puerto a través del firewall de cada uno de los otros nodos en su grupo de almacenamiento. Para hacerlo, ejecute el siguiente comando en gluster0. Recuerde cambiar gluster1_ip_address por la dirección IP de gluster1:

  • sudo ufw allow from gluster1_ip_address to any port 24007

Y ejecute el siguiente comando en gluster1. Una vez más, asegúrese de cambiar gluster0_ip_address por la dirección IP de gluster0:

  • sudo ufw allow from gluster0_ip_address to any port 24007

También deberá permitir que su máquina cliente (gluster2) tenga acceso a este puerto. De lo contrario, surgirán problemas más adelante cuando intente montar el volumen. Ejecute el siguiente comando tanto en gluster0 como en gluster1 para habilitar el acceso de su máquina cliente a este puerto:

  • sudo ufw allow from gluster2_ip_address to any port 24007

A continuación, para garantizar que ninguna otra máquina pueda acceder al puerto de Gluster en ninguno de los servidores, agregue una norma general deny tanto en gluster0 como en gluster1:

  • sudo ufw deny 24007

Ahora está listo para establecer la comunicación entre gluster0 y gluster1. Para hacerlo, deberá ejecutar el comando gluster peer probe en uno de los nodos. No importa qué nodo utilice, pero en el siguiente ejemplo se muestra la ejecución del comando en gluster0:

  • sudo gluster peer probe gluster1

Básicamente, este comando le indica a gluster0 que confíe en gluster1 y que lo registre como parte de su grupo de almacenamiento. Si el sondeo es exitoso, devolverá el siguiente resultado:

Output
peer probe: success

Para verificar en cualquier momento la comunicación entre los nodos, puede ejecutar el comando gluster peer status en cualquiera de los dos. En este ejemplo, se ejecuta en gluster1:

  • sudo gluster peer status

Si ejecuta este comando desde gluster1, mostrará el resultado de la siguiente manera:

Output
Number of Peers: 1 Hostname: gluster0.example.com Uuid: a3fae496-c4eb-4b20-9ed2-7840230407be State: Peer in Cluster (Connected)

En este momento, los dos servidores están comunicados y listos para crear volúmenes de almacenamiento entre sí.

Paso 4: Crear un volumen de almacenamiento

Recuerde que el objetivo principal de este tutorial es crear un grupo de almacenamiento redundante. Para ello, configurará un volumen con funcionalidad de réplica, lo que le permitirá mantener varias copias de los datos y evitar que el clúster tenga un punto único de fallo.

Utilizará el comando gluster volume create con la siguiente sintaxis general para crear un volumen:

sudo gluster volume create volume_name replica number_of_servers domain1.com:/path/to/data/directory domain2.com:/path/to/data/directory force

A continuación, se describe el significado de los argumentos y las opciones del comando gluster volume create:

  • volume_name: Este es el nombre que utilizará para referirse al volumen una vez que lo haya creado. El siguiente comando de ejemplo crea un volumen denominado volume1.
  • replica number_of_servers: Después del nombre del volumen, puede definir el tipo de volumen que quiere crear. Recuerde que el objetivo de este tutorial es crear un grupo de almacenamiento redundante, por lo que utilizaremos el tipo de volumen replica. Se requiere un argumento que indique en cuántos servidores se replicarán los datos del volumen (en este caso, 2).
  • domain1.com:/… y domain2.com:/…: Estos definen las máquinas y la ubicación del directorio de los bricks (ladrillos) que constituirán volume1. Brick o ladrillo es el término que se utiliza en GlusterFS para hacer referencia a su unidad básica de almacenamiento, que incluye cualquier directorio o máquina que sirva como parte o copia de un volumen mayor. El siguiente ejemplo creará un directorio denominado gluster-storage en el directorio raíz de ambos servidores.
  • force: Esta opción anulará cualquier advertencia u opción que de otro modo podría surgir y detener la creación del volumen.

Siguiendo las convenciones que se establecieron anteriormente en este tutorial, puede ejecutar este comando para crear un volumen. Tenga en cuenta que puede ejecutarlo desde gluster0, o bien desde gluster1:

  • sudo gluster volume create volume1 replica 2 gluster0.example.com:/gluster-storage gluster1.example.com:/gluster-storage force

Si el volumen se creó correctamente, obtendrá el siguiente resultado:

Output
volume create: volume1: success: please start the volume to access data

En este punto, el volumen se ha creado pero aún no está activo. Puede iniciar el volumen y habilitarlo para su uso ejecutando el siguiente comando, desde cualquiera de los servidores de Gluster:

  • sudo gluster volume start volume1

Si el volumen se inició correctamente, verá el siguiente resultado:

Output
volume start: volume1: success

A continuación, compruebe que el volumen está en línea. Ejecute el siguiente comando desde cualquiera de los dos nodos:

  • sudo gluster volume status

Esto devolverá un resultado similar al siguiente:

Output
Status of volume: volume1 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick gluster0.example.com:/gluster-storage 49152 0 Y 18801 Brick gluster1.example.com:/gluster-storage 49152 0 Y 19028 Self-heal Daemon on localhost N/A N/A Y 19049 Self-heal Daemon on gluster0.example.com N/A N/A Y 18822 Task Status of Volume volume1 ------------------------------------------------------------------------------ There are no active volume tasks

Según este resultado, los ladrillos en ambos servidores están en línea.

Como paso final para configurar el volumen, deberá abrir firewall en ambos servidores para que su máquina cliente pueda conectarse y montar el volumen. El resultado de muestra del comando anterior muestra que volume1 se está ejecutando en el puerto 49152 en ambas máquinas. Este es el puerto predeterminado de GlusterFS para su volumen inicial, y el siguiente volumen que cree utilizará el puerto 49153, y el siguiente el puerto 49154, y así sucesivamente.

Ejecute el siguiente comando en gluster0 y gluster1 para permitir que gluster2 acceda a este puerto a través del firewall de cada uno:

  • sudo ufw allow from gluster2_ip_address to any port 49152

A continuación, para tener una capa de seguridad adicional, agregue otra norma general deny para el puerto del volumen tanto en gluster0 como en gluster1. Esto garantizará que, en cualquiera de los servidores, solo su máquina cliente pueda acceder al volumen:

  • sudo ufw deny 49152

Ahora que el volumen está activo y en ejecución, puede configurar la máquina cliente y comenzar a utilizarla de forma remota.

Paso 5: Instalar y configurar los componentes del cliente

El volumen ahora está configurado y disponible para que la máquina cliente lo utilice. Sin embargo, antes de comenzar, debe instalar el paquete glusterfs-client desde el PPA que configuró en su máquina cliente en el paso 1. Las dependencias de este paquete incluyen algunas de las bibliotecas y los módulos de traducción comunes de GlusterFS, como así también las herramientas de FUSE necesarias para que funcione.

Ejecute el siguiente comando en gluster2:

  • sudo apt install glusterfs-client

En breve, montará el volumen de almacenamiento remoto en el equipo cliente. Sin embargo, antes debe crear un punto de montaje. Generalmente, se ubica en el directorio /mnt, pero puede utilizarse cualquier lugar conveniente.

Para simplificar, cree un directorio denominado /storage-pool en la máquina cliente para que sirva como el punto de montaje. El nombre de este directorio comienza con una barra diagonal (/) que lo ubica en el directorio raíz, por lo que deberá crearlo con privilegios sudo:

  • sudo mkdir /storage-pool

Ahora puede montar el volumen remoto. Antes, sin embargo, observe la sintaxis del comando mount que utilizará para hacerlo:

sudo mount -t glusterfs domain1.com:volume_name /path/to/mount/point

mount es una utilidad que se encuentra en muchos sistemas operativos similares a Unix. Se utiliza para montar sistemas de archivos (desde dispositivos de almacenamiento externos, como tarjetas SD o dispositivos USB hasta almacenamiento conectado a la red, como es el caso de este tutorial) a los directorios en el sistema de archivos existente de la máquina. La sintaxis del comando mount que utilizará incluye la opción -t, que requiere tres argumentos: el tipo de sistema de archivos que se montará, el dispositivo en el que se encuentra el sistema de archivos que se montará y el directorio del cliente donde se montará el volumen.

Observe que en este ejemplo de sintaxis, el argumento del dispositivo indica hacia un nombre de host seguido por dos puntos y el nombre del volumen. GlusterFS abstrae los directorios de almacenamiento reales en cada host, lo que significa que este comando no busca montar el directorio /gluster-storage, sino el volumen volume1.

También tenga en cuenta que solo debe especificar un miembro del clúster de almacenamiento. Puede ser cualquiera de los nodos, ya que el servicio de GlusterFS los manipula como una sola máquina.

Ejecute el siguiente comando en la máquina cliente (gluster2) para montar el volumen al directorio /storage-pool que creó:

  • sudo mount -t glusterfs gluster0.example.com:/volume1 /storage-pool

Luego, ejecute el comando df. Esto mostrará la cantidad de espacio de disco disponible para los sistemas de archivos a los que tiene acceso el usuario que lo invoca:

  • df

Este comando mostrará que el volumen de GlusterFS está montado en la ubicación correcta:

Output
Filesystem 1K-blocks Used Available Use% Mounted on . . . gluster0.example.com:/volume1 50633164 1938032 48695132 4% /storage-pool

Ahora, puede avanzar y comprobar que cualquier dato que escriba en el volumen del cliente se copie a los nodos de su servidor como se esperaba.

Paso 6: Poner a prueba las características de redundancia

Ahora que ha configurado el cliente para que utilice el grupo y el volumen de almacenamiento, puede probar su funcionalidad.

En la máquina cliente (gluster2), diríjase al punto de montaje que definió en el paso anterior:

  • cd /storage-pool

A continuación, cree algunos archivos de prueba. El siguiente comando crea diez archivos vacíos diferentes en el grupo de almacenamiento:

  • sudo touch file_{0..9}.test

Si revisa los directorios de almacenamiento que definió anteriormente en cada host de almacenamiento, descubrirá que todos estos archivos están presentes en cada sistema.

En gluster0:

  • ls /gluster-storage
Output
file_0.test file_2.test file_4.test file_6.test file_8.test file_1.test file_3.test file_5.test file_7.test file_9.test

Del mismo modo, en gluster1:

  • ls /gluster-storage
Output
file_0.test file_2.test file_4.test file_6.test file_8.test file_1.test file_3.test file_5.test file_7.test file_9.test

Como muestran estos resultados, los archivos de prueba que agregó al cliente también se escribieron en ambos nodos.

Si en algún momento uno de los nodos del clúster de almacenamiento se desconecta, podría perder la sincronización con el grupo de almacenamiento si se realizan cambios en el sistema de archivos. Realizar una operación de lectura en el punto de montaje del cliente una vez que el nodo vuelva a estar en línea, alertará al nodo para que obtenga los archivos que faltan:

  • ls /storage-pool

Una vez que ha verificado que el volumen de almacenamiento se montó correctamente y que puede replicar los datos en ambas máquinas del clúster, puede bloquear el acceso al grupo de almacenamiento.

Paso 7: Restringir las características de redundancia

En este momento, cualquier computadora puede conectarse al volumen de almacenamiento sin ninguna restricción. Para modificar esto configure la opción auth.allow, que define las direcciones IP de los clientes que deberían tener acceso al volumen.

Si está utilizando la configuración /etc/hosts, los nombres que estableció para cada servidor no se redirigirán correctamente. En su lugar, debe utilizar una dirección IP estática. Por otro lado, si utiliza registros DNS, el nombre de dominio que haya configurado funcionará aquí.

Ejecute el siguiente comando en cualquiera de los nodos de almacenamiento (gluster0 o gluster1):

  • sudo gluster volume set volume1 auth.allow gluster2_ip_address

Si el comando se completa correctamente, devolverá el siguiente resultado:

Output
volume set: success

Si en algún momento necesita eliminar la restricción, puede escribir:

  • sudo gluster volume set volume1 auth.allow *

Esto volverá a permitir las conexiones desde cualquier máquina. Esto no es seguro, pero puede ser útil para depurar problemas.

Si tiene varios clientes, puede especificar sus direcciones IP o nombres de dominio al mismo tiempo (según esté utilizando la resolución de nombres de host /etc/hosts o DNS), separados por comas:

  • sudo gluster volume set volume1 auth.allow gluster_client1_ip,gluster_client2_ip

Ahora el grupo de almacenamiento está configurado, protegido y listo para su uso. A continuación, aprenderá algunos comandos que le ayudarán a obtener información sobre el estado del grupo de almacenamiento.

Paso 8: Obtener información sobre el grupo de almacenamiento con comandos de GlusterFS

Cuando comienza a modificar algunas de las opciones de configuración del almacenamiento de GlusterFS, puede resultar confuso saber qué opciones tiene disponibles, qué volúmenes están en vivo y qué nodos se asocian con cada volumen.

Existen diversos comandos disponibles en los nodos que permiten obtener estos datos e interactuar con el grupo de almacenamiento.

Si quiere obtener información sobre cada uno de los volúmenes, ejecute el comando gluster volume info:

  • sudo gluster volume info
Output
Volume Name: volume1 Type: Replicate Volume ID: a1e03075-a223-43ab-a0f6-612585940b0c Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: gluster0.example.com:/gluster-storage Brick2: gluster1.example.com:/gluster-storage Options Reconfigured: auth.allow: gluster2_ip_address transport.address-family: inet storage.fips-mode-rchecksum: on nfs.disable: on performance.client-io-threads: off

Asimismo, para obtener información sobre cualquier punto al que esté conectado este nodo, puede escribir:

  • sudo gluster peer status
Number of Peers: 1

Hostname: gluster0.example.com
Uuid: cb00a2fc-2384-41ac-b2a8-e7a1793bb5a9
State: Peer in Cluster (Connected)

Si quiere obtener información detallada sobre el rendimiento de cada nodo, puede crear el perfil de un volumen escribiendo lo siguiente:

  • sudo gluster volume profile volume_name start

Cuando se complete el comando, escriba lo siguiente para obtener la información que se recopiló:

  • sudo gluster volume profile volume_name info
Output
Brick: gluster0.example.com:/gluster-storage -------------------------------------------- Cumulative Stats: %-latency Avg-latency Min-Latency Max-Latency No. of calls Fop --------- ----------- ----------- ----------- ------------ ---- 0.00 0.00 us 0.00 us 0.00 us 30 FORGET 0.00 0.00 us 0.00 us 0.00 us 36 RELEASE 0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR Duration: 5445 seconds Data Read: 0 bytes Data Written: 0 bytes Interval 0 Stats: %-latency Avg-latency Min-Latency Max-Latency No. of calls Fop --------- ----------- ----------- ----------- ------------ ---- 0.00 0.00 us 0.00 us 0.00 us 30 FORGET 0.00 0.00 us 0.00 us 0.00 us 36 RELEASE 0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR Duration: 5445 seconds Data Read: 0 bytes Data Written: 0 bytes . . .

Tal como se mostró antes, utilice el comando gluster volume status para obtener una lista de todos los componentes asociados de GlusterFS que se ejecutan en cada uno de los nodos:

  • sudo gluster volume status
Output
Status of volume: volume1 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick gluster0.example.com:/gluster-storage 49152 0 Y 19003 Brick gluster1.example.com:/gluster-storage 49152 0 Y 19040 Self-heal Daemon on localhost N/A N/A Y 19061 Self-heal Daemon on gluster0.example.com N/A N/A Y 19836 Task Status of Volume volume1 ------------------------------------------------------------------------------ There are no active volume tasks

Si va a administrar los volúmenes de almacenamiento de GlusterFS, puede ser recomendable ir a la consola de GlusterFS. Esto le permitirá interactuar con el entorno de GlusterFS sin necesidad de anteponer sudo gluster a todo:

  • sudo gluster

Esto le mostrará un mensaje en el que podrá escribir los comandos. El comando help puede ayudarlo a encaminarse:

  • help
Output
peer help - display help for peer commands volume help - display help for volume commands volume bitrot help - display help for volume bitrot commands volume quota help - display help for volume quota commands snapshot help - display help for snapshot commands global help - list global commands

Cuando haya terminado, ejecute exit para salir de la consola de Gluster:

  • exit

Con esto, está listo para comenzar a integrar GlusterFS con su próxima aplicación.

Conclusión

Al final de este tutorial, tendrá un sistema de almacenamiento redundante que le permitirá escribir simultáneamente en dos servidores separados. Esto puede resultar útil para varias aplicaciones y puede garantizar que los datos estén disponibles incluso cuando un servidor falla.

Creative Commons License