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 hostFunción en el grupo de almacenamientogluster0 Servidorgluster1 Servidorgluster2 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 gluster****N  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 gluster``N``.example.com y uno corto que coincide con gluster``N. Puede cambiar la parte de gluster``N``.example.com y gluster``N 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 + XY 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.

#ubuntu

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