Galera Cluster: vista general de un clúster MariaDB

En las soluciones modernas de gestión de bases de datos, un funcionamiento ininterrumpido y una alta disponibilidad son características tan indispensables como la flexibilidad en las opciones de ampliación. Solo así es posible satisfacer las demandas de los sistemas actuales, en el que los accesos fluctúan fuertemente y hay picos de carga impredecibles. La complejidad de esta maniobra yace en lograr cumplir estos requisitos con costes de infraestructura mínimos en la nube.

Galera Cluster te ayuda en esta difícil tarea: su solución de clustering multimaster para bases de datos se basa en la replicación síncrona de alto rendimiento, para que todos los nodos de una red de bases de datos dispongan siempre de los mismos datos en tiempo real. Disponible para MariaDB, entre otros, Galera Cluster minimiza las pérdidas de datos y garantiza la más alta fiabilidad. A continuación, te contamos cómo funcionan exactamente los clústeres MariaDB basados en Galera Cluster, cuáles son las ventajas de esta tecnología y para qué se usa exactamente.

¿Qué es Galera Cluster?

Galera Cluster 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 Cluster 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 Cluster 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.

Consejo

Los sistemas de bases de datos que se benefician de Galera Cluster son MariaDB y MySQL. Nuestro artículo MariaDB vs. MySQL contiene una comparación detallada entre las dos aplicaciones de gestión de datos.

¿Cómo funcionan los clústeres MariaDB de Galera?

Un clúster MariaDB basado en Galera Cluster 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:

  1. 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 confirmada o Transacción rechazada). El nodo que inició la transacción transmite el resultado al cliente.
  2. 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 Galera Cluster experimentan algún problema técnico, solo se podrán excluir de la replicación síncrona temporalmente.

¿Cómo es la estructura de un Galera Cluster?

La arquitectura interna de un Galera Cluster está estructurada en torno a estos cuatro componentes:

  • 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, Galera Cluster 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 o Galera replication plug-in: 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.
  • Plugins de comunicación de grupo o Group Communication plug-ins: Galera Cluster proporciona varias extensiones para la implementación de sistemas de comunicación de grupo como el Spread Toolkit o gcomm. Estos plugins 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.

Nota

IONOS ofrece alojamiento de servidor SQL a medida. Podrás elegir entre diferentes soluciones de servidor y alojamiento para tu sistema de base de datos personalizado con MariaDB, MySQL o MSSQL.

Casos de uso: ¿para qué se usa Galera Cluster?

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.

Clustering para WAN

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.

Disaster Recovery (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 recuperarlos 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, Galera Cluster 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.

Consejo

Nuestro artículo La importancia de contar con un disaster recovery plan contiene información detallada sobre el plan de recuperación ante desastres.

¿Le ha resultado útil este artículo?
Page top