Publicado en

Instalación de MySQL Cluster en Linux para Alta Disponibilidad

MySQL Cluster es una solución de base de datos distribuida diseñada para ofrecer alta disponibilidad y escalabilidad. Permite la replicación automática y el balanceo de carga, ideal para entornos que requieren alta disponibilidad y tolerancia a fallos.

En este artículo, explicaremos cómo instalar y configurar un MySQL Cluster en Linux, incluyendo la configuración de nodos y aspectos clave para el rendimiento.

Requisitos previos

Antes de comenzar, asegúrate de tener:

  • Tres o más servidores Linux (uno para el nodo de gestión y dos o más para nodos de datos y SQL).
  • Privilegios de superusuario (root o sudo) en cada servidor.
  • Conexión de red estable entre los servidores.

Requisitos de hardware

Para un rendimiento óptimo del MySQL Cluster, se recomienda:

  • Nodo de gestión:
    • CPU: 2 núcleos
    • RAM: 2 GB
    • Almacenamiento: 10 GB libres
  • Nodos de datos:
    • CPU: 4 núcleos o más
    • RAM: 8 GB o más
    • Almacenamiento: SSD con al menos 50 GB libres
  • Nodos SQL:
    • CPU: 4 núcleos o más
    • RAM: 4 GB o más
    • Almacenamiento: 20 GB libres

Es recomendable utilizar una red de baja latencia (Gigabit Ethernet o superior) para evitar cuellos de botella en la comunicación entre nodos.

Arquitectura del MySQL Cluster

El MySQL Cluster consta de tres tipos de nodos:

  1. Nodo de gestión (ndb_mgmd): Coordina el clúster y supervisa los nodos de datos.
  2. Nodos de datos (ndbd): Almacenan los datos y ejecutan operaciones de procesamiento.
  3. Nodos SQL (mysqld): Proveen acceso SQL a los datos del clúster.

Instalación de MySQL Cluster

Paso 1: Instalar MySQL Cluster en todos los nodos

En cada servidor, ejecuta:

sudo apt update && sudo apt install -y mysql-cluster-community-server

Para CentOS/RHEL:

sudo yum install -y mysql-cluster-community-server

Configuración del Nodo de Gestión

Paso 2: Configurar ndb_mgmd

En el servidor de gestión, edita el archivo de configuración:

sudo nano /etc/my.cnf

Agrega la siguiente configuración:

[mysqld]
default-storage-engine=NDBCLUSTER

[ndb_mgmd]
nodeid=1
datadir=/var/lib/mysql-cluster

Crea el directorio de datos:

sudo mkdir -p /var/lib/mysql-cluster

Inicia el servicio:

sudo systemctl start ndb_mgmd
sudo systemctl enable ndb_mgmd

Configuración de Nodos de Datos

Paso 3: Configurar ndbd

En cada nodo de datos, edita el archivo de configuración:

sudo nano /etc/my.cnf

Agrega:

[mysqld]
default-storage-engine=NDBCLUSTER

[ndbd]
nodeid=2
datadir=/var/lib/mysql-cluster
ndb-connectstring=<IP_DEL_NODO_DE_GESTIÓN>

Inicia el servicio:

sudo systemctl start ndbd
sudo systemctl enable ndbd

Configuración de Nodos SQL

Paso 4: Configurar mysqld

En los nodos SQL, edita /etc/my.cnf:

[mysqld]
default-storage-engine=NDBCLUSTER
ndbcluster
ndb-connectstring=<IP_DEL_NODO_DE_GESTIÓN>

Inicia MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Verificación y Pruebas

Para verificar que el clúster está en funcionamiento, accede al nodo de gestión y ejecuta:

ndb_mgm -e show

Si todos los nodos aparecen activos, la instalación fue exitosa.

Consideraciones de Rendimiento

  • Asegura una red de baja latencia para minimizar retrasos en la replicación.
  • Habilita balanceo de carga con múltiples nodos SQL para distribuir las consultas.
  • Configura backups automáticos usando mysqldump o herramientas de snapshot para mayor seguridad.

Conclusión

MySQL Cluster es una solución poderosa para garantizar alta disponibilidad y escalabilidad en entornos de bases de datos distribuidas. Con esta guía, ahora tienes un clúster funcional y optimizado para gestionar datos de forma eficiente.

Si te fue útil esta guía, compártela y sigue explorando más tutoriales sobre bases de datos y administración de sistemas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *