Galera Cluster: configurar un clúster de MariaDB en Ubuntu 20.04
Configurar un clúster de MariaDB con Galera Cluster mejora la fiabilidad y facilita el escalado de tu base de datos. A continuación, te mostramos cómo instalar un Galera Cluster en Ubuntu 20.04.
Galera Cluster MariaDB: requisitos previos
Para instalar un Galera Cluster en MariaDB en Ubuntu 20.04, debes cumplir con los siguientes requisitos:
- Varios servidores: necesitas al menos tres servidores o máquinas virtuales para crear un clúster. Todos los servidores deben estar en la misma red.
- Permisos de root: necesitas tener acceso root o al menos permisos de administrador en los servidores.
Guía paso a paso: configurar un Galera Cluster MariaDB en Ubuntu 20.04
Un Galera Cluster de MariaDB es una solución de base de datos práctica que mejora la disponibilidad, la integridad de datos y la escalabilidad de cara a aplicaciones exigentes. Te acompañamos en el proceso de configuración de un Galera Cluster de MariaDB en Ubuntu 20.04. Antes de empezar, asegúrate de que tienes al menos tres servidores o máquinas virtuales disponibles para configurar el clúster.
Paso 1: actualiza los paquetes
Es esencial que primero actualices tu sistema Ubuntu a su última versión para asegurarte de que tienes paquetes y las actualizaciones de seguridad más recientes.
Abre un terminal y ejecuta el siguiente comando para actualizar las fuentes de los paquetes:
Instala todas las actualizaciones disponibles:
También es recomendable eliminar los paquetes obsoletos o no utilizados para limpiar los servidores:
Paso 2: instala MariaDB en los servidores
Ahora instala MariaDB en cada uno de tus servidores. Desde la versión 10.1, los paquetes de Galera vienen incluidos en los servidores MariaDB.
Después de la instalación, inicia el servicio MariaDB:
Ejecuta el siguiente comando para que MariaDB se active automáticamente cada vez que se reinicie el sistema:
Comprueba si MariaDB se está ejecutando:
Realiza algunos ajustes básicos de seguridad y configura la base de datos. Para ello, inicia el asistente de configuración:
El asistente te guiará a través de los pasos necesarios, como definir una contraseña root, eliminar usuarios anónimos o eliminar la base de datos de prueba.
El script pregunta primero por la contraseña root actual. Si es la primera vez que instalas MariaDB en Ubuntu 20.04, simplemente pulsa la tecla Enter e introduce una nueva contraseña.
Paso 3: configura los nodos del Galera Cluster en MariaDB
Crea un archivo cnf
en el directorio /etc/mysql/conf.d
de cada nodo para definir la configuración específica de Galera.
El archivo contiene la configuración general de la base de datos, como el formato del protocolo binario y el motor de almacenamiento predeterminado. También contiene configuraciones para el Galera Cluster, incluyendo el nombre del clúster y la dirección del clúster.
Introduce las siguientes líneas en el primer nodo:
- Configuración general de la base de datos: incluye configuraciones como
binlog_format=ROW
para el formato de registro binario ydefault-storage-engine=innodb
para el motor de almacenamiento predeterminado. - Configuración del proveedor de Galera: configuraciones como
wsrep_on=ON
para activar la replicación de Galera ywsrep_provider=/usr/lib/galera/libgalera_smm.so
para especificar la ruta a la biblioteca de Galera. - Configuración del Galera Cluster: incluye el nombre del clúster (
wsrep_cluster_name
) y la dirección del clúster (wsrep_cluster_address
), que contiene las direcciones IP o los nombres de host de los nodos del clúster. - Configuración de sincronización de Galera: configura el método para la transferencia de instantáneas de estado (State Snapshot Transfer, SST), por ejemplo
wsrep_sst_method=rsync
. - Configuración del nodo de Galera: define la dirección IP o el nombre de host del nodo actual (
wsrep_node_address
) y el nombre del nodo (wsrep_node_name
).
Después de guardar el archivo, crea uno para el segundo nodo:
Ahora haz lo mismo con el último nodo:
Paso 4: modifica el firewall en los servidores
Dado que los nodos se comunican entre sí a través de ciertos puertos, debes ajustar la configuración del firewall.
Abre los siguientes puertos en tu firewall:
- Puerto 3306: es el puerto predeterminado de MariaDB. Se utiliza para comunicarse con la base de datos y realizar peticiones.
- Puertos de Galera: además del puerto predeterminado 3306, Galera también utiliza otros puertos para la comunicación interna entre los nodos. Los puertos predeterminados de Galera suelen ser 4567, 4568 y 4444 para la transferencia de instantáneas de estado (State Snapshot Transfer, SST).
Configura las reglas del firewall en tu servidor Ubuntu con el siguiente comando:
Paso 5: inicia Galera Cluster en MariaDB
Detén el servicio MariaDB si ya se está ejecutando:
El siguiente comando inicia el servidor MariaDB y crea un nuevo Galera Cluster en el primer nodo:
Comprueba el número de nodos en el clúster:
Deberías obtener el siguiente resultado:
El primer nodo se ha iniciado correctamente.
Activa el segundo nodo:
Comprueba si el número de nodos ha aumentado:
En la consola verás lo siguiente:
Ahora inicia el tercer nodo:
Comprueba que el nodo funciona correctamente:
Ahora debería haber tres nodos en el clúster:
Paso 6: prueba la replicación
Asegúrate de que puedes conectarte a cada uno de los nodos del clúster. Utiliza el cliente de MariaDB para iniciar sesión como usuario root o como otro usuario con suficientes permisos.
Crea una nueva base de datos de prueba (test_db) en uno de los nodos del clúster:
Inicia sesión en los otros nodos y comprueba que la base de datos de prueba existe:
La base de datos de prueba debería aparecer en la lista de bases de datos:
Añade una nueva tabla de prueba (test_table) a la base de datos de prueba (test_db):
Introduce algunos datos de prueba en la columna name
de la tabla de prueba:
Comprueba en los otros nodos si la tabla de prueba y los datos introducidos se han replicado:
El resultado muestra la lista de personas con sus nombres e ID:
Así puedes modificar un registro de datos en la tabla de prueba:
Intenta eliminar un registro de datos:
Comprueba en los demás nodos si se han replicado las modificaciones y eliminaciones:
Los cambios aparecen correctamente en cada nodo: