sql >> Base de Datos >  >> RDS >> Mysql

Implementación y administración de MySQL NDB Cluster con ClusterControl

En ClusterControl 1.5 agregamos soporte para MySQL NDB Cluster 7.5. En esta publicación de blog, veremos algunas de las características que hacen de ClusterControl una excelente herramienta para administrar MySQL NDB Cluster. En primer lugar, dado que existen numerosos productos con "Cluster" en su nombre, nos gustaría decir algunas palabras sobre MySQL NDB Cluster y cómo se diferencia de otras soluciones.

Clúster NDB de MySQL

MySQL NDB Cluster es un clúster síncrono sin nada compartido para MySQL, basado en el motor NDB. Es un producto con su propia lista de características, y bastante diferente a Galera Cluster o MySQL InnoDB Cluster. Una diferencia principal es el uso del motor NDB, no InnoDB, que es el motor predeterminado para MySQL. En el clúster NDB, los datos se dividen en varios nodos de datos, mientras que Galera Cluster o MySQL InnoDB Cluster contienen el conjunto de datos completo en cada uno de los nodos. Esto tiene serias repercusiones en la forma en que MySQL NDB Cluster trata las consultas que usan JOIN y grandes porciones del conjunto de datos.

Cuando se trata de arquitectura, MySQL NDB Cluster consta de tres tipos de nodos diferentes. Los nodos de datos almacenan los datos utilizando el motor NDB. Los datos se duplican para redundancia, con hasta 4 réplicas de datos. Tenga en cuenta que ClusterControl implementará 2 réplicas por grupo de nodos, ya que esta es la configuración más probada y estable. Los nodos de administración están destinados a controlar el clúster; por razones de alta disponibilidad, normalmente tiene dos nodos de este tipo. Los nodos SQL se utilizan como puntos de entrada al clúster. Analizan SQL, solicitan datos de los nodos de datos y agregan conjuntos de resultados cuando es necesario.

Características de ClusterControl para MySQL NDB Cluster

Despliegue

ClusterControl 1.5 admite la implementación de MySQL NDB Cluster 7.5. Se realiza a través del mismo asistente de implementación que con los tipos de clúster restantes.

En el primer paso, debe configurar cómo ClusterControl puede iniciar sesión a través de SSH en los hosts; este es un requisito estándar para ClusterControl; no tiene agente, por lo que requiere acceso SSH raíz directamente, a la cuenta raíz o a través de (contraseña o sin contraseña) sudo.

En el siguiente paso, define los nodos de administración para su clúster.

Aquí, debe decidir cuántos nodos de datos le gustaría tener. Como dijimos anteriormente, cada 2 nodos formará parte de un grupo de nodos, por lo que debería ser un número par.

Finalmente, debe decidir cuántos nodos SQL desea implementar en su clúster. Una vez que haga clic en implementar, ClusterControl se conectará a los hosts, instalará el software y configurará todos los servicios. Después de un tiempo, debería ver su clúster implementado.

Escalado del clúster MySQL NDB

Para MySQL NDB Cluster, ClusterControl 1.5.0 admite el escalado de nodos SQL. Puede acceder al trabajo desde el menú desplegable Trabajos del clúster.

Allí puede completar el nombre de host del nodo que desea agregar y eso es todo lo que necesita:ClusterControl se encargará del resto.

Administración del Clúster MySQL NDB

ClusterControl lo ayuda a administrar MySQL NDB Cluster. En esta sección, nos gustaría repasar algunas de las funciones de administración que tenemos.

Copias de seguridad

Las copias de seguridad son cruciales para cualquier entorno de producción. En caso de desastre, solo una buena copia de seguridad puede minimizar la pérdida de datos y ayudarlo a recuperarse rápidamente del problema. Es posible que la replicación no siempre sea una solución que funcione:DROP TABLE colocará la tabla en todos los hosts de la topología. Incluso un esclavo retrasado puede retrasar lo inevitable por mucho.

ClusterControl admite la copia de seguridad ndb para MySQL NDB Cluster.

Puede crear fácilmente un programa de copia de seguridad para que lo ejecute ClusterControl.

Capa de proxy

ClusterControl le permite implementar una pila completa de alta disponibilidad sobre MySQL NDB Cluster. Para la capa de proxy, admitimos la implementación de HAProxy y MaxScale.

Como se muestra en la captura de pantalla anterior, la implementación se parece mucho a los otros tipos de clústeres. Debe decidir si desea utilizar un HAProxy existente o implementar uno nuevo. Luego, debe elegir cómo instalarlo:usar paquetes de repositorios disponibles en el nodo o compilarlo desde el código fuente de la última versión.

Si decide utilizar HAProxy, tendrá la posibilidad de configurar una alta disponibilidad mediante Keepalived e IP virtual.

El proceso es el siguiente:usted define una IP virtual y la interfaz en la que debe abrirse. Luego, puede implementarlo para cada HAProxy que haya instalado. Uno de los procesos de Keepalived se determinará como "maestro" y habilitará VIP en su nodo. Su aplicación luego se conecta a esta IP en particular. Cuando un HAProxy activo actual no está disponible, el VIP se moverá a otro HAProxy disponible, restaurando la conectividad.

Gestión de recuperación

Si bien MySQL NDB Cluster puede tolerar fallas de nodos individuales, es importante reaccionar rápidamente ante ellas. ClusterControl proporciona recuperación automatizada para todos los componentes del clúster. Independientemente de lo que falle (nodo de gestión, nodo de datos o nodo SQL), ClusterControl los reiniciará automáticamente.

Monitoreo del Clúster MySQL NDB

Cualquier entorno listo para la producción tiene que ser monitoreado. ClusterControl le proporciona una variedad de métricas para monitorear. En la página "Descripción general", mostramos gráficos basados ​​en las métricas más importantes para su clúster. También puede crear sus propios paneles, mostrando datos adicionales que serían útiles en su entorno.

Además de los gráficos, la página "Descripción general" le brinda información sobre el estado del clúster en función de algunas métricas del clúster NDB de MySQL, como la memoria de índice utilizada, la memoria de datos y el estado de algunos búferes.

También proporciona monitoreo de las métricas del host, incluida la utilización de CPU, RAM, disco o estadísticas de red. Esos gráficos también son cruciales para crear una vista de la salud del clúster.

ClusterControl también puede ayudarlo a mejorar el rendimiento de sus bases de datos brindándole acceso a Query Monitor, que contiene estadísticas sobre su tráfico.

Como se ve en la captura de pantalla anterior, puede ver qué tipo de consultas se ejecutan en su clúster, cuántas consultas de un tipo determinado, cuáles son sus tiempos de ejecución y los tiempos totales de ejecución. Esto ayuda a identificar qué consultas son lentas y cuáles son responsables de la mayor parte del tráfico. A continuación, puede centrarse en las consultas que pueden proporcionarle la mayor mejora de rendimiento.