El servidor de base de datos MariaDB facilita la configuración de un potente cluster de nodos. Este artículo lo guía a través del proceso.
Si está buscando una forma de obtener la mayor potencia posible de su servidor de base de datos MariaDB, puede que le interese un Cluster MariaDB Galera. Con esta configuración puede crear un clúster de base de datos activo-activo, de modo que cuando los datos se escriben en una base de datos, se escriben en la misma base de datos en todos los nodos.
Quiero guiarte a través del proceso de creación de un Cluster MariaDB Galera. Estaré demostrando esto en una instancia recién instalada de Ubuntu Server 16.04. Para esta configuración, necesitará al menos tres servidores que ejecuten Ubuntu 16.04. Tenga en cuenta, tres servidores es la cantidad mínima de nodos que puede tener para un Cluster MariaDB Galera. Mis servidores estarán en las siguientes direcciones IP:
- Nodo 1 – 192.168.1.245
- Nodo 2 – 192.168.1.235
- Nodo3 – 192.168.1.253
Obviamente, usted puede tener sus servidores en cualquier dirección IP que necesite; pero tendrá que seguir de cerca y asegurarse de que inserta las direcciones IP correctas donde sea necesario.
VER: Kit de contratación: Administrador de MongoDB (Tech Pro Research)
Instalación
Los siguientes pasos se toman en todos los nodos.
Lo primero que debe hacer es instalar el software necesario. Como estamos trabajando con MariaDB, necesitarás añadir el repositorio correcto. Esto se hace con los siguientes comandos (el primero añade la clave necesaria y el segundo añade el repositorio):
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8sudo add-apt-repository 'deb[arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main
Una vez añadido el repositorio, actualice apt con el comando:
sudo apt update -
Instalar MariaDB y rsync (necesario para sincronizar los nodos) con el comando:
sudo apt-get install mariadb-server rsync
Durante la instalación, se le pedirá que escriba una contraseña de usuario root para MariaDB (. Haga esto y la instalación se completará.
Lo siguiente que necesitas es asegurar el MariaDB. Para ello, emita el comando:
sudo mysql_secure_installation
Conteste sí a todas las preguntas excepto Cambiar la contraseña de root?
Completa lo anterior para los tres nodos y estarás listo para continuar.
VER: Lista de comprobación de implementación/migración de servidores (ConsejoTecnologico.com)
Configuración de los nodos
Desde el terminal del Nodo 1, emita el comando sudo nano /etc/mysql/conf.d/galera.cnf, que abrirá un archivo vacío para editar. En ese archivo, copie el siguiente contenido:
[mysqld]binlog_format=ROWdefault-storage-engine=innodb_autoinc_lock_mode=2bind-address=0.0.0.0.0# Galera Provider Configurationwsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera Cluster Configurationwsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.1.245,192.168.168.1.235,192.168.1.253"# Galera Synchronization Configurationwsrep_sst_method=rsync# Galera Node Configurationwsrep_node_address="192.168.1.245"wsrep_node_name="Node1"
Recuerde, si sus direcciones IP son diferentes, cámbielas en el archivo anterior para reflejar sus necesidades.
Haz lo mismo para el Nodo 2 y el Nodo 3, sólo que en esta sección usarás sus respectivas direcciones IP y Nombres:
# Galera Node Configurationwsrep_node_address="192.168.1.245"wsrep_node_node_name="Node1"
Así sería el Nodo 2:
# Galera Node Configurationwsrep_node_address="192.168.1.235"wsrep_node_name="Node2"
Y el Nodo 3 lo sería:
# Galera Node Configurationwsrep_node_address="192.168.1.253"wsrep_node_name="Node3"
Configurar el cortafuegos
Esto debe hacerse en los tres Nodos. Vuelva a la ventana del terminal y emita los siguientes comandos para abrir los puertos necesarios:
sudo ufw enablesudo ufw allow 3306/tcpsudo ufw allow 4444/tcpsudo ufw allow 4567/tcpsudo ufw allow 4568/tcpsudo ufw allow 4567/udp
Nota: Si asegura shell en estos nodos, asegúrese de emitir lo siguiente (para abrir el puerto 22 para ssh):
sudo ufw allow 22/tcp
Eso es todo por la configuración.
Iniciando el cúmulo de Galera
Lo primero que debe hacer es detener la base de datos en todos los nodos. Haga esto con el comando (ejecute en cada nodo):
sudo systemctl stop mysql
Una vez que todos los servidores de la base de datos estén parados, inicie el Cluster Galera en el primer nodo con el comando:
sudo galera_new_cluster
El nodo quedará registrado en el cluster. Puede probar esto emitiendo el comando:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Se le pedirá la contraseña del usuario root de la base de datos. Una vez autenticado, el comando reportará que un nodo se ha unido al cluster .
Vuelva al segundo y tercer nodos y arranque la base de datos con el comando:
sudo systemctl start mysql
Una vez que los servidores de la base de datos estén en funcionamiento, vuelva al primer nodo y emita el comando:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
En este punto, debería ver que los tres nodos se han unido .
Prueba de la réplica
Hagamos una prueba rápida, creando una base de datos simple en el primer nodo. Esta base de datos debería replicarse automáticamente a los otros nodos. En el primer nodo, acceda al shell de la base de datos con el comando mysql -u root -p. Una vez dentro del shell de la base de datos, cree la nueva base de datos con el comando:
CREAR BASE DE DATOS tr_test;
Asegúrese de que la base de datos se haya creado correctamente con el comando:
mostrar bases de datos;
Debería ver la base de datos recién creada en la lista .
Salir del shell de la base de datos con el comando exit. Si salta a los nodos dos y tres, inicie sesión en el shell de la base de datos y emita el comando mostrar bases de datos; verá que la base de datos de prueba se ha replicado automáticamente.
Su cúmulo de MariaDB Galera está listo para servir.
La potencia de la base de datos al alcance de su mano
Linux hace que la configuración de sistemas tan potentes como los clústeres de bases de datos sea increíblemente sencilla. Saca un cúmulo de MariaDB Galera para dar una vuelta y ver cuánta energía puedes tener al alcance de tu mano.
Boletín Semanal de Código Abierto
No se pierda nuestros consejos, tutoriales y comentarios sobre el sistema operativo Linux y las aplicaciones de código abierto. Entregado los martes