23 enero 2022

Galera clúster con MaríaDb

 

Galera clúster

Galera clúster es un paquete de software para sistemas operativos Linux que permite la creación y gestión de clústeres de MySQL, XtraDB y MariaDB. Esta aplicación de clúster se basa en el motor de almacenamiento InnoDB o su derivado XtraDB. Experimentalmente es compatible con el motor MyISAM, que durante mucho tiempo se utilizó también en MySQL y MariaDB como predecesor de InnoDB. Galera Clúster aplica el principio de la replicación síncrona al almacenamiento de datos en los diversos nodos independientes del clúster. Todos los procesos de copia y modificación de los datos almacenados tienen lugar simultáneamente en todas las unidades de almacenamiento primarias y secundarias, de forma que los datos presentes en todos los nodos están siempre actualizados y no difieren entre ellos.

La expresión mínima de un Galera clúster consiste en tres nodos (los desarrolladores recomiendan en general usar un número impar). Si uno de los nodos falla durante la transacción de datos, por ejemplo, debido a problemas de la red o del sistema, los otros dos nodos siguen formando la mayoría necesaria para realizar la transacción correctamente.

¿Cómo funciona un  clúster MariaDB de Galera?

Un clúster MariaDB basado en Galera clúster se caracteriza por el hecho de que todos los nodos de la red tienen los mismos datos en todo momento. Por tanto, en el software de clúster desaparece la distinción tradicional entre servidores de bases de datos maestros (servidores en los que se puede escribir) y esclavos (servidores de los que solo se puede leer). Los usuarios pueden escribir datos en cualquier nodo de almacenamiento y estos se reenviarán automáticamente a todos los demás participantes del clúster. Esta propiedad también se llama multimaster.

Para garantizar este intercambio de datos flexible, Galera Cluster emplea un procedimiento de replicación síncrona para la administración, basado en el intercambio de certificados. Si los datos se replican, es decir, se escriben en una de las bases de datos del clúster MariaDB de Galera, se aplican estos dos principios:

  • A cada transacción en la base de datos se le asigna un número de secuencia único. Antes de que un nodo del clúster apruebe los cambios respectivos en la base de datos, este compara el número secuencial con el número de la última transacción confirmada. En la comprobación, todos los nodos llegan a la misma conclusión (Transacción OK o Transacción KO). El nodo que inició la transacción transmite el resultado al cliente.
  • En cada transacción se actualizan todas las réplicas de la base de datos. De este modo, si una transacción se confirma después de la certificación, todos los nodos hacen los cambios correspondientes en su registro de datos. Si los nodos de un  clúster Galera experimentan algún problema técnico, solo se podrán excluir de la replicación síncrona temporalmente.

¿Qué morfología presenta un clúster Galera?

  • Sistema de gestión de la base de datos: el SGBD es la unidad central del clúster. En cada nodo se ejecuta el servidor de base de datos correspondiente. Como ya mencionamos, clúster Galera es compatible con MySQL y Percona XtraDB, además de con MariaDB.
  • API wsrep: la API wsrep define e implementa la interfaz y las funciones de acceso a los servidores de bases de datos implicados. Asimismo, wsrep controla la replicación de datos. Entre otras cosas, la API proporciona los wsrep hooks (enlaces al servidor de la base de datos para su replicación) y la función dlopen(), que permite la comunicación con los hooks.
  • Plugin de replicación de Galera: este plugin implementa la API de wsrep. Para esto, proporciona una capa para el proceso de certificación, una capa para la replicación (incluido el protocolo) y el marco de comunicación de grupo.
  • Plugin de comunicación de grupo: Galera Cluster proporciona varias extensiones para la implementación de sistemas de comunicación de grupo como el Spread Toolkit o gcomm. Estos plugin están basados en el marco de comunicación de grupo.

¿Cuáles son las ventajas de un clúster MariaDB?

Ya hemos mencionado en este artículo las principales ventajas de los clústeres MariaDB de Galera. Cambiar a esta tecnología de clúster te ofrece flexibilidad en el almacenamiento de datos sin renunciar a un máximo de fiabilidad y disponibilidad, algo que no es posible en las configuraciones habituales de MariaDB.

La replicación síncrona garantiza que todas las unidades de almacenamiento involucradas estén actualizadas en todo momento. Galera Cluster envía automáticamente todos los cambios a todas las unidades de la base de datos, lo que elimina completamente la necesidad de realizar copias manuales o de pasar por engorrosos procesos de copias de seguridad. El enfoque multimaster también permite acceder a todos los servidores de la base de datos integrada de MariaDB para escribir, modificar o borrar sus datos. Puesto que los nodos pueden estar cerca de los clientes, es posible minimizar la latencia.

Otra ventaja de un clúster MariaDB basado en un Galera Cluster es el excelente soporte en la nube de este tipo de arquitecturas. Están particularmente bien adaptadas a una escalabilidad flexible y basadas en la nube de los recursos de base de datos. Incluso la distribución de los datos a los diferentes centros de datos deja de ser un problema, ya que cada transacción en Galera Cluster solo se debe enviar una vez a cada centro de datos.

Casos de uso: ¿para qué se usa Clúster Galera?

Un clúster MariaDB de Galera es una solución excelente para gestionar tu propia solución de base de datos, gracias a las características y ventajas que ya hemos mencionado. Específicamente, la configuración de clúster abarca, entre otros, los siguientes casos de uso:

Aplicaciones de bases de datos con requisitos de alto rendimiento de escritura

La distribución de las operaciones de escritura por todo el grupo permite optimizar el uso de los recursos de escritura disponibles. Tras el procesamiento inicial de una transacción de cliente, los nodos a los que se transmite la transacción solo tienen que registrar los cambios realizados. De este modo, el método de replicación de Galera Cluster garantiza generalmente un rendimiento de escritura mucho mayor al que ofrecen la mayoría de las configuraciones de base de datos, lo que hace a la tecnología de clúster muy interesante para aplicaciones de escritura intensivas.



Plan de recuperación ante desastres

El principio de Disaster Recovery es el siguiente:los datos se almacenan por separado en un centro de datos independiente para mantener una imagen completa de ellos, con el fin de poder recuperar en caso de emergencia. Este enfoque está estrechamente relacionado con el almacenamiento general y la gestión de los activos de datos en la nube. En este caso, el clúster Galera transmite los datos replicados, pero no los pone a disposición para procesar las transacciones de los clientes. Si es necesario restablecer el sistema, la parte Disaster Recovery del clúster MariaDB se convierte temporalmente en instancia primaria para reducir al mínimo el tiempo de inactividad.

Clustering para WAN

Menos atractivo es la última de las características. En las WAN (Wide Area Network) de Internet, Galera Cluster funciona también sin problemas. Aunque se produce un pequeño retardo (retraso en la transmisión) proporcional al tiempo de rotación de los paquetes de red (RTT), esto solo afecta al proceso de confirmación de las transacciones entrantes a la base de datos. El uso de los clústeres MariaDB en la nube es, por lo tanto, uno de los ejemplos más interesantes.