Galera Cluster

¿De qué se trata?

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 clusteringmultimaster 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.

El uso de clústeres añade una alta disponibilidad a su base de datos mediante la distribución de cambios en servidores diferentes. En caso de que una de las instancias no se produzca, otras están rápidamente disponibles para continuar con el servicio.

 

¿Qué son las galeras exactamente?

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.

 

¿Cómo funciona?

Los clústeres vienen con dos configuraciones generales: activo-pasivo y activo-activo. En los clústeres activo-pasivo, todo lo que escribe queda en un único servidor activo y luego se copia a uno o más servidores pasivos que están preparados para tomar el control solo en caso de que se produzca una falla en el servidor activo. Algunos clústeres activo-pasivo también permiten operaciones SELECT en nodos pasivos. En un clúster activo, todos los nodos son de lectura-escritura y cualquier cambio que se haga en uno de ellos se replica en el resto.

MySQL es un sistema de administración de bases de datos relacionales de código abierto que representa una opción popular para bases de datos SQL. Galera es una solución de clústeres de bases de datos que le permite configurar clústeres multimaestro mediante reproducción sincrónica. Galera administra de forma automática la sincronización de los datos sobre diferentes nodos y le permite enviar consultas de lectura y escritura a cualquiera de los nodos del clúster.

 

¿Cuál es su procedimiento?

La 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:

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.

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 está estructurado 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.

¿Por qué es beneficioso?

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