MySQL Cluster · 3 min read · Oct 02, 2025

Cómo Configurar Un Clúster MySQL Balanceado por Carga

Cómo Configurar Un Clúster MySQL Balanceado por Carga

Versión 1.0
Autor: Falko Timme

Este tutorial muestra cómo configurar un clúster MySQL 5 con tres nodos: dos nodos de almacenamiento y un nodo de gestión. Este clúster está balanceado por un balanceador de carga de alta disponibilidad que, de hecho, tiene dos nodos que utilizan el paquete Ultra Monkey, que proporciona heartbeat (para verificar si el otro nodo sigue vivo) y ldirectord (para dividir las solicitudes entre los nodos del clúster MySQL).

En este documento utilizo Debian Sarge para todos los nodos. Por lo tanto, la configuración puede diferir un poco para otras distribuciones. La versión de MySQL que utilizo en esta configuración es 5.0.19. Si no desea utilizar MySQL 5, también puede usar MySQL 4.1, aunque no lo he probado.

Este howto está destinado a ser una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.

¡Este documento se proporciona sin garantía de ningún tipo! Quiero decir que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que elijo. No emito ninguna garantía de que esto funcione para usted!

1 Mis Servidores

Utilizo los siguientes servidores Debian que están todos en la misma red (192.168.0.x en este ejemplo):

  • sql1.example.com: 192.168.0.101 Nodo del clúster MySQL 1
  • sql2.example.com: 192.168.0.102 Nodo del clúster MySQL 2
  • loadb1.example.com: 192.168.0.103 Balanceador de Carga 1 / Servidor de gestión del clúster MySQL
  • loadb2.example.com: 192.168.0.104 Balanceador de Carga 2

Además de eso, necesitamos una dirección IP virtual: 192.168.0.105. Esta será asignada al clúster MySQL por el balanceador de carga para que las aplicaciones tengan una única dirección IP para acceder al clúster.

Aunque queremos tener dos nodos del clúster MySQL en nuestro clúster MySQL, todavía necesitamos un tercer nodo, el servidor de gestión del clúster MySQL, por una razón principal: si uno de los dos nodos del clúster MySQL falla y el servidor de gestión no está en funcionamiento, entonces los datos en los dos nodos del clúster se volverán inconsistentes (“cerebro dividido”). También lo necesitamos para configurar el clúster MySQL.

Así que normalmente necesitaríamos cinco máquinas para nuestra configuración:

2 nodos del clúster MySQL + 1 servidor de gestión del clúster + 2 balanceadores de carga = 5

Como el servidor de gestión del clúster MySQL no utiliza muchos recursos y el sistema simplemente estaría allí sin hacer nada, podemos poner nuestro primer balanceador de carga en la misma máquina, lo que nos ahorra una máquina, así que terminamos con cuatro máquinas.

2 Configurar El Servidor de Gestión del Clúster MySQL

Primero tenemos que descargar MySQL 5.0.19 (¡la versión max!) e instalar el servidor de gestión del clúster (ndb_mgmd) y el cliente de gestión del clúster (ndb_mgm - se puede usar para monitorear lo que está sucediendo en el clúster). Los siguientes pasos se llevan a cabo en loadb1.example.com (192.168.0.103):

loadb1.example.com:

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.19-linux-i686-\
glibc23.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/
tar xvfz mysql-max-5.0.19-linux-i686-glibc23.tar.gz
cd mysql-max-5.0.19-linux-i686-glibc23
mv bin/ndb_mgm /usr/bin
mv bin/ndb_mgmd /usr/bin
chmod 755 /usr/bin/ndb_mg*
cd /usr/src
rm -rf /usr/src/mysql-mgm

A continuación, debemos crear el archivo de configuración del clúster, /var/lib/mysql-cluster/config.ini:

loadb1.example.com:

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini

| [NDBD DEFAULT] NoOfReplicas=2 [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] # Sección para el nodo de gestión del clúster [NDB_MGMD] # Dirección IP del nodo de gestión (este sistema) HostName=192.168.0.103 # Sección para los nodos de almacenamiento [NDBD] # Dirección IP del primer nodo de almacenamiento HostName=192.168.0.101 DataDir= /var/lib/mysql-cluster [NDBD] # Dirección IP del segundo nodo de almacenamiento HostName=192.168.0.102 DataDir=/var/lib/mysql-cluster # uno [MYSQLD] por nodo de almacenamiento [MYSQLD] [MYSQLD] |

Por favor, reemplace las direcciones IP en el archivo apropiadamente.

Luego iniciamos el servidor de gestión del clúster:

loadb1.example.com:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini  

Tiene sentido iniciar automáticamente el servidor de gestión al arrancar el sistema, así que creamos un script de inicio muy simple y los enlaces de inicio apropiados:

loadb1.example.com:

echo ‘ndb_mgmd -f /var/lib/mysql-cluster/config.ini’ > /etc/init.d/ndb_mgmd
chmod 755 /etc/init.d/ndb_mgmd
update-rc.d ndb_mgmd defaults

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.