MariaDB Cluster es un sistema de replicación Multi Master creado a partir del servidor MariaDB, el parche wsrep de MySQL y el proveedor de wsrep de Galera.
Galera se basa en el método de replicación síncrona (o "virtualmente síncrona"), que garantiza que los datos se apliquen a otros nodos antes de que se confirmen. Tener los mismos datos en todos los nodos significa que las fallas de los nodos se pueden tolerar fácilmente y no se pierden datos. También es más fácil realizar la conmutación por error a otro nodo, ya que todos los nodos están actualizados con los mismos datos. Es justo decir que MariaDB Cluster es una solución de alta disponibilidad que puede lograr un alto tiempo de actividad para organizaciones con acuerdos de nivel de servicio de base de datos estrictos.
Además de administrar alta disponibilidad, también se puede usar para escalar el servicio de base de datos y expandir el servicio a varias regiones.
Implementación del clúster de MariaDB
MariaDB Cluster en ClusterControl es realmente sencillo y está disponible en la Community Edition de uso gratuito. Puede pasar por "Implementar", elija MySQL Galera como se muestra a continuación:
Complete la información de usuario y credenciales de SSH, el nombre del clúster que desea usar y luego Continuar.
Elija MariaDB como el proveedor de la base de datos que desea instalar. Server Data Directory, Server Port puede usar la configuración predeterminada, a menos que defina una configuración específica. Complete la contraseña de la base de datos de administrador/raíz y, finalmente, agregue el nodo para agregar las direcciones IP de destino de los nodos de la base de datos.
Los nodos de Galera requieren al menos 3 nodos o puede usar 2 nodos de base de datos y un árbitro de galera configurado en un host separado.
Después de completar todos los campos, simplemente implemente el clúster. Activará un nuevo trabajo para Crear clúster como se muestra a continuación:
Implementación a máxima escala
Maxscale es un equilibrador de carga de base de datos, un proxy de base de datos y un cortafuegos que se encuentra entre su aplicación y los nodos de MariaDB. Algunas de las funciones de Maxscale son:
- Failover automático para alta disponibilidad
- Balance de carga de tráfico (división de lectura y escritura)
- Controles de tráfico para consultas y conexiones.
Hay dos formas de pasar por la implementación del balanceador de carga, puede "Agregar balanceador de carga" en el menú del clúster como se muestra a continuación:
O puede ir a Administrar -> Equilibrador de carga. Irá a la misma página, que es la página Load Balancer. Elija la pestaña "Maxscale" para la implementación del balanceador de carga Maxscale:
Elija la dirección del servidor, defina el nombre de usuario y la contraseña de maxscale, puede dejar el configuración predeterminada para subprocesos y puerto de lectura/escritura. Incluya también los nodos de MariaDB que se agregarán en el balanceador de carga. Puede "Implementar MaxScale" para implementar el proxy de base de datos MaxScale y el equilibrio de carga.
La mejor práctica para hacer que el balanceador de carga esté altamente disponible es configurar al menos 2 instancias de MaxScale en diferentes hosts.
Implementación mantenida
Keepalived es un servicio daemon en Linux que se utiliza para las comprobaciones de estado y también para la conmutación por error si uno de los servidores no funciona. El mecanismo utiliza VIP (dirección IP virtual) para lograr una alta disponibilidad, que consta de un servidor que actúa como maestro y el otro que actúa como respaldo.
La implementación de Keepalived es un servicio que se puede realizar en Administrar -> Equilibrador de carga.
Elija su tipo de Load Balancer, que es MaxScale. Actualmente, ClusterControl admite HAProxy, ProxySQL y MaxScale como balanceadores de carga que se pueden integrar con Keepalived. Defina su IP virtual (VIP) y la interfaz de red para la dirección IP virtual.
Después de eso, simplemente haga clic en Implementar Keepalived. Activará un nuevo trabajo para implementar Keepalived en ambos hosts MaxScale.
La arquitectura final de MariaDB Cluster for High Availability consta de 3 nodos de base de datos, 2 nodos de balanceador de carga y un servicio de mantenimiento en la parte superior de cada balanceador de carga, como se muestra en la topología a continuación:
Conclusión
Hemos mostrado cómo podemos implementar rápidamente un clúster MariaDB de alta disponibilidad con MaxScale y Keepalived a través de ClusterControl. Revisamos las configuraciones para los nodos de base de datos y los nodos de proxy. Para leer más sobre Galera Cluster, consulte nuestro tutorial en línea. Tenga en cuenta que ClusterControl también es compatible con otros balanceadores de carga como ProxySQL y HAProxy. Pruébelos y háganos saber si tiene alguna pregunta.