En las so­lu­cio­nes modernas de gestión de bases de datos, un fu­n­cio­na­mie­n­to in­i­n­te­rru­m­pi­do y una alta di­s­po­ni­bi­li­dad son ca­ra­c­te­rí­s­ti­cas tan in­di­s­pe­n­sa­bles como la fle­xi­bi­li­dad en las opciones de am­plia­ción. Solo así es posible sa­ti­s­fa­cer las demandas de los sistemas actuales, en el que los accesos fluctúan fue­r­te­me­n­te y hay picos de carga im­pre­de­ci­bles. La co­m­ple­ji­dad de esta maniobra yace en lograr cumplir estos re­qui­si­tos con costes de in­frae­s­tru­c­tu­ra mínimos en la nube.

Galera Cluster te ayuda en esta difícil tarea: su solución de clu­s­te­ri­ng mu­l­ti­ma­s­ter para bases de datos se basa en la re­pli­ca­ción síncrona de alto re­n­di­mie­n­to, para que todos los nodos de una red de bases de datos dispongan siempre de los mismos datos en tiempo real. Di­s­po­ni­ble para MariaDB, entre otros, Galera Cluster minimiza las pérdidas de datos y garantiza la más alta fia­bi­li­dad. A co­n­ti­nua­ción, te contamos cómo funcionan exac­ta­me­n­te los clústeres MariaDB basados en Galera Cluster, cuáles son las ventajas de esta te­c­no­lo­gía y para qué se usa exac­ta­me­n­te.

¿Qué es Galera Cluster?

Galera Cluster es un paquete de software para sistemas ope­ra­ti­vos Linux que permite la creación y gestión de clústeres de MySQL, XtraDB y MariaDB. Esta apli­ca­ción de clúster se basa en el motor de al­ma­ce­na­mie­n­to InnoDB o su derivado XtraDB. Ex­pe­ri­me­n­ta­l­me­n­te es co­m­pa­ti­ble con el motor MyISAM, que durante mucho tiempo se utilizó también en MySQL y MariaDB como pre­de­ce­sor de InnoDB. Galera Cluster aplica el principio de la re­pli­ca­ción síncrona al al­ma­ce­na­mie­n­to de datos en los diversos nodos in­de­pe­n­die­n­tes del clúster. Todos los procesos de copia y mo­di­fi­ca­ción de los datos al­ma­ce­na­dos tienen lugar si­mu­l­tá­nea­me­n­te en todas las unidades de al­ma­ce­na­mie­n­to primarias y se­cu­n­da­rias, de forma que los datos presentes en todos los nodos están siempre ac­tua­li­za­dos y no difieren entre ellos.

La expresión mínima de un Galera Cluster consiste en tres nodos (los de­sa­rro­lla­do­res re­co­mie­n­dan en general usar un número impar). Si uno de los nodos falla durante la tra­n­sac­ció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 tra­n­sac­ción co­rre­c­ta­me­n­te.

Consejo

Los sistemas de bases de datos que se be­ne­fi­cian de Galera Cluster son MariaDB y MySQL. Nuestro artículo MariaDB vs. MySQL contiene una co­m­pa­ra­ción detallada entre las dos apli­ca­cio­nes de gestión de datos.

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

Un clúster MariaDB basado en Galera Cluster se ca­ra­c­te­ri­za 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 des­apa­re­ce la di­s­ti­n­ción tra­di­cio­nal entre se­r­vi­do­res de bases de datos maestros (se­r­vi­do­res en los que se puede escribir) y esclavos (se­r­vi­do­res de los que solo se puede leer). Los usuarios pueden escribir datos en cualquier nodo de al­ma­ce­na­mie­n­to y estos se re­en­via­rán au­to­má­ti­ca­me­n­te a todos los demás pa­r­ti­ci­pa­n­tes del clúster. Esta propiedad también se llama mu­l­ti­ma­s­ter.

Para ga­ra­n­ti­zar este in­te­r­ca­m­bio de datos flexible, Galera Cluster emplea un pro­ce­di­mie­n­to de re­pli­ca­ción síncrona para la ad­mi­ni­s­tra­ción, basado en el in­te­r­ca­m­bio de ce­r­ti­fi­ca­dos. 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 pri­n­ci­pios:

  1. A cada tra­n­sac­ció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 re­s­pe­c­ti­vos en la base de datos, este compara el número se­cue­n­cial con el número de la última tra­n­sac­ción co­n­fi­r­ma­da. En la co­m­pro­ba­ción, todos los nodos llegan a la misma co­n­clu­sión (Tra­n­sac­ción co­n­fi­r­ma­da o Tra­n­sac­ción rechazada). El nodo que inició la tra­n­sac­ción transmite el resultado al cliente.
  2. En cada tra­n­sac­ción se ac­tua­li­zan todas las réplicas de la base de datos. De este modo, si una tra­n­sac­ción se confirma después de la ce­r­ti­fi­ca­ción, todos los nodos hacen los cambios co­rre­s­po­n­die­n­tes en su registro de datos. Si los nodos de un Galera Cluster ex­pe­ri­me­n­tan algún problema técnico, solo se podrán excluir de la re­pli­ca­ción síncrona te­m­po­ra­l­me­n­te.

¿Cómo es la es­tru­c­tu­ra de un Galera Cluster?

La ar­qui­te­c­tu­ra interna de un Galera Cluster está es­tru­c­tu­ra­da en torno a estos cuatro co­m­po­ne­n­tes:

  • 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 co­rre­s­po­n­die­n­te. Como ya me­n­cio­na­mos, Galera Cluster es co­m­pa­ti­ble con MySQL y Percona XtraDB, además de con MariaDB.
  • API wsrep: la API wsrep define e im­ple­me­n­ta la interfaz y las funciones de acceso a los se­r­vi­do­res de bases de datos im­pli­ca­dos. Asimismo, wsrep controla la re­pli­ca­ción de datos. Entre otras cosas, la API pro­po­r­cio­na los wsrep hooks (enlaces al servidor de la base de datos para su re­pli­ca­ción) y la función dlopen(), que permite la co­mu­ni­ca­ción con los hooks.
  • Plugin de re­pli­ca­ción de Galera o Galera re­pli­ca­tion plug-in: este plugin im­ple­me­n­ta la API de wsrep. Para esto, pro­po­r­cio­na una capa para el proceso de ce­r­ti­fi­ca­ción, una capa para la re­pli­ca­ción (incluido el protocolo) y el marco de co­mu­ni­ca­ción de grupo.
  • Plugins de co­mu­ni­ca­ción de grupo o Group Co­m­mu­ni­ca­tion plug-ins: Galera Cluster pro­po­r­cio­na varias ex­te­n­sio­nes para la im­ple­me­n­ta­ción de sistemas de co­mu­ni­ca­ción de grupo como el Spread Toolkit o gcomm. Estos plugins están basados en el marco de co­mu­ni­ca­ción de grupo.

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

Ya hemos me­n­cio­na­do en este artículo las pri­n­ci­pa­les ventajas de los clústeres MariaDB de Galera. Cambiar a esta te­c­no­lo­gía de clúster te ofrece fle­xi­bi­li­dad en el al­ma­ce­na­mie­n­to de datos sin renunciar a un máximo de fia­bi­li­dad y di­s­po­ni­bi­li­dad, algo que no es posible en las co­n­fi­gu­ra­cio­nes ha­bi­tua­les de MariaDB.

La re­pli­ca­ción síncrona garantiza que todas las unidades de al­ma­ce­na­mie­n­to in­vo­lu­cra­das estén ac­tua­li­za­das en todo momento. Galera Cluster envía au­to­má­ti­ca­me­n­te todos los cambios a todas las unidades de la base de datos, lo que elimina co­m­ple­ta­me­n­te la necesidad de realizar copias manuales o de pasar por en­go­rro­sos procesos de copias de seguridad. El enfoque mu­l­ti­ma­s­ter también permite acceder a todos los se­r­vi­do­res 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 ar­qui­te­c­tu­ras. Están pa­r­ti­cu­la­r­me­n­te bien adaptadas a una es­ca­la­bi­li­dad flexible y basadas en la nube de los recursos de base de datos. Incluso la di­s­tri­bu­ción de los datos a los di­fe­re­n­tes centros de datos deja de ser un problema, ya que cada tra­n­sac­ción en Galera Cluster solo se debe enviar una vez a cada centro de datos.

Nota

IONOS ofrece alo­ja­mie­n­to de servidor SQL a medida. Podrás elegir entre di­fe­re­n­tes so­lu­cio­nes de servidor y alo­ja­mie­n­to para tu sistema de base de datos pe­r­so­na­li­za­do 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 ca­ra­c­te­rí­s­ti­cas y ventajas que ya hemos me­n­cio­na­do. Es­pe­cí­fi­ca­me­n­te, la co­n­fi­gu­ra­ción de clúster abarca, entre otros, los si­guie­n­tes casos de uso:

Apli­ca­cio­nes de bases de datos con re­qui­si­tos de alto re­n­di­mie­n­to de escritura

La di­s­tri­bu­ción de las ope­ra­cio­nes de escritura por todo el grupo permite optimizar el uso de los recursos de escritura di­s­po­ni­bles. Tras el pro­ce­sa­mie­n­to inicial de una tra­n­sac­ción de cliente, los nodos a los que se transmite la tra­n­sac­ción solo tienen que registrar los cambios rea­li­za­dos. De este modo, el método de re­pli­ca­ción de Galera Cluster garantiza ge­ne­ra­l­me­n­te un re­n­di­mie­n­to de escritura mucho mayor al que ofrecen la mayoría de las co­n­fi­gu­ra­cio­nes de base de datos, lo que hace a la te­c­no­lo­gía de clúster muy in­te­re­sa­n­te para apli­ca­cio­nes de escritura in­te­n­si­vas.

Clu­s­te­ri­ng 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 tra­n­s­mi­sión) pro­po­r­cio­nal al tiempo de rotación de los paquetes de red (RTT), esto solo afecta al proceso de co­n­fi­r­ma­ción de las tra­n­sac­cio­nes 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 in­te­re­sa­n­tes.

Disaster Recovery (plan de re­cu­pe­ra­ción ante desastres)

El principio de Disaster Recovery es el siguiente: los datos se almacenan por separado en un centro de datos in­de­pe­n­die­n­te para mantener una imagen completa de ellos, con el fin de poder re­cu­pe­rar­los en caso de eme­r­ge­n­cia. Este enfoque está es­tre­cha­me­n­te re­la­cio­na­do con el al­ma­ce­na­mie­n­to general y la gestión de los activos de datos en la nube. En este caso, Galera Cluster transmite los datos re­pli­ca­dos, pero no los pone a di­s­po­si­ción para procesar las tra­n­sac­cio­nes de los clientes. Si es necesario re­s­ta­ble­cer el sistema, la parte Disaster Recovery del clúster MariaDB se convierte te­m­po­ra­l­me­n­te en instancia primaria para reducir al mínimo el tiempo de inac­ti­vi­dad.

Consejo

Nuestro artículo La im­po­r­ta­n­cia de contar con un disaster recovery plan contiene in­fo­r­ma­ción detallada sobre el plan de re­cu­pe­ra­ción ante desastres.

Ir al menú principal