Configurando nodos de MySql Cluster

La configuración del clúster debe hacerse de manera independiente en cada una de las maquinas o nodos que hagan parte del clúster. La configuración puede dividirse en dos partes, una para los nodos de datosy SQL y otra para los nodos de gestión.
Configuración de los nodos de Datos y SQL
La configuración de cada uno de estos nodos debe hacerse en el archivo my.cnf que se encuentra en el directorio /etc/. Seguramente dicho archivo no exista por tal razón debe crearse y debe contener las siguientes líneas. Esto en cada nodo de datos y cada nodo SQL
# vi /etc/my.cnf
Esta línea abrirá en consola el archivo my.cnf. Como el archivo no existía ese comando lo crea y nos deja dentro del para agregar las líneas requeridas para el correcto funcionamiento del clúster. Las líneas que se deben agregar en el archivo my.cnf son las siguientes:
1- [mysqld]
2- ndbcluster
3- ndb-connectstring=192.168.0.3
4- pid-file=mysqld.pid
5-
6- [mysql_cluster]
7- ndb-connectstring=192.168.0.3
La línea 1 indica que las opciones definidas a continuación corresponden a los procesos q se inicien bajo el motor de MySql. La línea dos arranca el motor de almacenamiento NDB cuando sea iniciado MySql. Si esta línea no se define MySql iniciaría con los motores de almacenamiento definidos por defecto, esta línea debe estar para que se puedan crear tablas corriendo con el storage engine NDB. La línea 3 le indicará a los elementos del clúster en donde está el management server, es decir en donde estarán todas las características del clúster, sol se debe indicar la IP y si MySql en ese servidor trabaja en un puerto diferente el puerto también. La línea 4 indica cuál es el pid de los procesos e MySql. La quinta línea no necesita explicación, en la sexta línea se indica que un nuevo grupo de características inician aquí y estas pertenecen a mysql clúster. En la sexta línea se indica nuevamente la IP del servidor de gestión o management server.
Si se tiene más de un servidor de administración (management server) en las líneas 3 y 6 se deben ingresar las IP de las maquinas en donde están los servidores de administración y se deben separar por un punto y coma (;) para que puedan ser tomadas por el motor del Clúster como direccione de administración paralelas y en ese caso su in nodo de administración se cae el otro tomará el control del Clúster de MySql. Esta metodología de trabajar con más de un servidor de administración o management server es muy comúnmente utilizada en ambientes de alta disponibilidad, es lo recomendado por MySql.
3- ndb-connectstring=192.168.0.3; 192.168.0.4
7- ndb-connectstring=192.168.0.3;192.168.0.4
Configuración del nodo de Gestión (Management Server)
La configuración de estos nodos debe hacerse en un directorio diferente al utilizado para configurar los nodos de datos o SQL. El directorio en donde estarán los archivos de configuración debe crearse y posterior mente crear el fichero config.ini
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini
El fichero config.ini debe contener las siguientes líneas:
# TCP/IP options:
[tcp default]        # Caracteristicas de Comunicación
SendBufferMemory=2M        # Tamano en memoria del buffer enviado
ReceiveBufferMemory=2M        # Tamano en memoria del buffer recibido
portnumber=2202        # Puerto utilizado por MySql
[ndbd default]        # Opciones definidas para los procesos ndbd en todos los nodos del cluster
NoOfReplicas=2        # Numero de replicas
DataMemory=2172M        # tamaño de la memoria que se asignará a los datos
IndexMemory=272M        # Tamaño en memoria asignado a índices
MaxNoOfConcurrentOperations=100000        # Máximo número de operaciones concurrentes permitoicas en el Cluster
MaxNoOfTables=1024        # Número máximo de tablas aceptadas en el CLuster
datadir=/var/lib/mysql-cluster        # Directorio en donde se almacenarán los logs del nodo de gestión
MaxNoOfOrderedIndexes=1024        # Máximo número de índices aceptados en el esquema del cluster (genera error 904).
MaxNoOfAttributes=4400        # Máximo número de campos en todo el esquema del clúster (genera error 708).
[ndb_mgmd]        # Opciones de los procesos de gestión
id=1        # Identificador del nodo, no es obligatorio
hostname=192.168.0.3        # Ip del nodo de gestión
datadir=/var/lib/mysql-cluster        # Directorio en donde se almacenarán los logs del nodo de gestión
[ndbd]        # Opciones para el nodo de datos “A”:
id=2        # Identificador del nodo, no es obligatorio
hostname=192.168.0.1        # Ip del nodo de de datos “A”
datadir=/usr/local/mysql/data        # Directorio en donde se almacenarán los logs del nodo de datos “A”
[ndbd]        # Opciones para el nodo de datos “A”:
id=2        # Identificador del nodo, no es obligatorio
hostname=192.168.0.1        # Ip del nodo de de datos “A”
datadir=/usr/local/mysql/data        # Directorio en donde se almacenarán los logs del nodo de datos “A”
[mysqld]        # Opciones para el nodo SQL
id=4        # Identificador del nodo, no es obligatorio
hostname=192.168.0.5        # Ip del nodo sql
El uso de id en la configuración de cada uno de los nodos es importante especialmente en ambientes de alta disponibilidad, pues generalmente cuando se tiene varios nodos de gestión se deben iniciar cada nodo de datos o Sql indicando a que nodo de gestión se conectará.

La configuración del clúster debe hacerse de manera independiente en cada una de las maquinas o nodos que hagan parte del clúster. La configuración puede dividirse en dos partes, una para los nodos de datosy SQL y otra para los nodos de gestión.

Configuración de los nodos de Datos y SQL

La configuración de cada uno de estos nodos debe hacerse en el archivo my.cnf que se encuentra en el directorio /etc/. Seguramente dicho archivo no exista por tal razón debe crearse y debe contener las siguientes líneas. Esto en cada nodo de datos y cada nodo SQL

# vi /etc/my.cnf

Esta línea abrirá en consola el archivo my.cnf. Como el archivo no existía ese comando lo crea y nos deja dentro del para agregar las líneas requeridas para el correcto funcionamiento del clúster. Las líneas que se deben agregar en el archivo my.cnf son las siguientes:

1- [mysqld]

2- ndbcluster

3- ndb-connectstring=192.168.0.3

4- pid-file=mysqld.pid

5- [mysql_cluster]

6- ndb-connectstring=192.168.0.3

La línea 1 indica que las opciones definidas a continuación corresponden a los procesos q se inicien bajo el motor de MySql. La línea dos arranca el motor de almacenamiento NDB cuando sea iniciado MySql. Si esta línea no se define MySql iniciaría con los motores de almacenamiento definidos por defecto, esta línea debe estar para que se puedan crear tablas corriendo con el storage engine NDB. La línea 3 le indicará a los elementos del clúster en donde está el management server, es decir en donde estarán todas las características del clúster, sol se debe indicar la IP y si MySql en ese servidor trabaja en un puerto diferente el puerto también. La línea 4 indica cuál es el pid de los procesos e MySql. La quinta línea no necesita explicación, en la sexta línea se indica que un nuevo grupo de características inician aquí y estas pertenecen a mysql clúster. En la sexta línea se indica nuevamente la IP del servidor de gestión o management server.

Si se tiene más de un servidor de administración (management server) en las líneas 3 y 6 se deben ingresar las IP de las maquinas en donde están los servidores de administración y se deben separar por un punto y coma (;) para que puedan ser tomadas por el motor del Clúster como direccione de administración paralelas y en ese caso su in nodo de administración se cae el otro tomará el control del Clúster de MySql. Esta metodología de trabajar con más de un servidor de administración o management server es muy comúnmente utilizada en ambientes de alta disponibilidad, es lo recomendado por MySql.

3- ndb-connectstring=192.168.0.3; 192.168.0.4

7- ndb-connectstring=192.168.0.3;192.168.0.4

Configuración del nodo de Gestión (Management Server)

La configuración de estos nodos debe hacerse en un directorio diferente al utilizado para configurar los nodos de datos o SQL. El directorio en donde estarán los archivos de configuración debe crearse y posterior mente crear el fichero config.ini

# mkdir /var/lib/mysql-cluster

# cd /var/lib/mysql-cluster

# vi config.ini

El fichero config.ini debe contener las siguientes líneas:

# TCP/IP options:

[tcp default]        # Caracteristicas de Comunicación

SendBufferMemory=2M        # Tamano en memoria del buffer enviado

ReceiveBufferMemory=2M        # Tamano en memoria del buffer recibido

portnumber=2202        # Puerto utilizado por MySql

[ndbd default]        # Opciones definidas para los procesos ndbd en todos los nodos del cluster

NoOfReplicas=2        # Numero de replicas

DataMemory=2172M        # tamaño de la memoria que se asignará a los datos

IndexMemory=272M        # Tamaño en memoria asignado a índices

MaxNoOfConcurrentOperations=100000        # Máximo número de operaciones concurrentes permitoicas en el Cluster

MaxNoOfTables=1024        # Número máximo de tablas aceptadas en el CLuster

datadir=/var/lib/mysql-cluster        # Directorio en donde se almacenarán los logs del nodo de gestión

MaxNoOfOrderedIndexes=1024        # Máximo número de índices aceptados en el esquema del cluster (genera error 904).

MaxNoOfAttributes=4400        # Máximo número de campos en todo el esquema del clúster (genera error 708).

[ndb_mgmd]        # Opciones de los procesos de gestión

id=1        # Identificador del nodo, no es obligatorio

hostname=192.168.0.3        # Ip del nodo de gestión

datadir=/var/lib/mysql-cluster        # Directorio en donde se almacenarán los logs del nodo de gestión

[ndbd]        # Opciones para el nodo de datos “A”:

id=2        # Identificador del nodo, no es obligatorio

hostname=192.168.0.1        # Ip del nodo de de datos “A”

datadir=/usr/local/mysql/data        # Directorio en donde se almacenarán los logs del nodo de datos “A”

[ndbd]        # Opciones para el nodo de datos “A”:

id=2        # Identificador del nodo, no es obligatorio

hostname=192.168.0.1        # Ip del nodo de de datos “A”

datadir=/usr/local/mysql/data        # Directorio en donde se almacenarán los logs del nodo de datos “A”

[mysqld]        # Opciones para el nodo SQL

id=4        # Identificador del nodo, no es obligatorio

hostname=192.168.0.5        # Ip del nodo sql

El uso de id en la configuración de cada uno de los nodos es importante especialmente en ambientes de alta disponibilidad, pues generalmente cuando se tiene varios nodos de gestión se deben iniciar cada nodo de datos o Sql indicando a que nodo de gestión se conectará.