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.