ClusterControl facilita la implementación de una configuración de base de datos:solo complete algunos valores (proveedor de la base de datos, directorio de datos de la base de datos, contraseña y nombres de host) en el asistente de implementación y listo. El resto de las opciones de configuración se determinarán (y calcularán) automáticamente según las especificaciones del host (núcleos de CPU, memoria, dirección IP, etc.) y se aplicarán al archivo de plantilla que viene con ClusterControl. En esta publicación de blog, veremos cómo ClusterControl usa los archivos de plantilla predeterminados y cómo los usuarios pueden personalizarlos según sus necesidades.
Archivos de plantilla base
Todos los servicios configurados por ClusterControl usan una plantilla de configuración básica disponible en /usr/share/cmon/templates en el nodo de ClusterControl. Los siguientes son archivos de plantilla proporcionados por ClusterControl v1.4.0:
Nombre de archivo | Descripción |
---|---|
config.ini.mc | Archivo de configuración del clúster MySQL. |
haproxy.cfg | Plantilla de configuración HAProxy para Galera Cluster. |
haproxy_rw_split.cfg | Plantilla de configuración HAProxy para división de lectura y escritura. |
garbd.cnf | Archivo de configuración del demonio árbitro de Galera (garbd). |
keepalived-1.2.7.conf | Archivo de configuración heredado keepalived (anterior a 1.2.7). Esto está en desuso. |
keepalived.conf | Archivo de configuración Keepalived. |
keepalived.init | Script de inicio Keepalived. |
MaxScale_template.cnf | Plantilla de configuración MaxScale. |
mongodb-2.6.conf.org | Plantilla de configuración de MongoDB 2.x. |
mongodb.conf.org | Plantilla de configuración de MongoDB 3.x. |
mongodb.conf.percona | Plantilla de configuración de MongoDB 3.x para Percona Server para MongoDB. |
mongos.conf.org | Plantilla de configuración del enrutador Mongo (mongos). |
my.cnf.galera | Plantilla de configuración MySQL para Galera Cluster. |
my57.cnf.galera | Plantilla de configuración MySQL para Galera Cluster en MySQL 5.7. |
my.cnf.grouprepl | Plantilla de configuración de MySQL para la replicación de grupos de MySQL. |
my.cnf.gtid_replication | Plantilla de configuración de MySQL para replicación de MySQL con GTID. |
mi.cnf.mysqlcluster | Plantilla de configuración MySQL para MySQL Cluster. |
my.cnf.pxc55 | Plantilla de configuración MySQL para Percona XtraDB Cluster v5.5. |
my.cnf.repl57 | Plantilla de configuración MySQL para MySQL Replication v5.7. |
my.cnf.replication | Plantilla de configuración de MySQL para MySQL/MariaDB sin el GTID de MySQL. |
mysqlchk.galera | Plantilla de secuencia de comandos de comprobación de estado de MySQL para Galera Cluster. |
mysqlchk.mysql | Plantilla de secuencia de comandos de comprobación de estado de MySQL para la replicación de MySQL. |
mysqlchk_xinetd | Plantilla de configuración de Xinetd para comprobación de estado de MySQL. |
mysqld.service.override | Plantilla de archivo de unidad Systemd para el servicio MySQL. |
proxysql_template.cnf | Plantilla de configuración de ProxySQL. |
La lista anterior depende del conjunto de funciones proporcionado por la versión de ClusterControl instalada. En una versión anterior, es posible que no encuentre algunos de ellos. Puede modificar estos archivos de plantilla directamente, aunque no lo recomendamos como se explica en las siguientes secciones.
Administrador de configuración
Según el tipo de clúster, ClusterControl importará el archivo de plantilla base necesario en la base de datos de CMON y se podrá acceder a él a través de Administrar -> Configuraciones -> Plantillas una vez que la implementación se realice correctamente. Por ejemplo, considere la siguiente plantilla de configuración para un clúster Galera de MariaDB:

ClusterControl cargará el contenido de la plantilla base de la plantilla de configuración de Galera desde /usr/share/cmon/templates/my.cnf.galera en la base de datos CMON (dentro de la tabla cluster_configuration_templates) después de que la implementación se realice correctamente. A continuación, puede personalizar su propio archivo de configuración directamente en la interfaz de usuario de ClusterControl. Siempre que presione el botón Guardar, la nueva versión de la plantilla de configuración se almacenará dentro de la base de datos de CMON, sin sobrescribir el archivo de la plantilla base.
Una vez que el clúster se implementa y se ejecuta, la plantilla en la interfaz de usuario tiene prioridad. El archivo de plantilla base solo se usa durante la implementación inicial del clúster a través de ClusterControl -> Implementar -> Implementar clúster de base de datos. Durante la etapa de implementación, ClusterControl utilizará un directorio temporal ubicado en /var/tmp/ para preparar el contenido, por ejemplo:
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Variables dinámicas
Hay un número de variables de configuración configurables dinámicamente por ClusterControl. Estas variables se representan con letras mayúsculas encerradas por el signo '@', por ejemplo @[email protected] Para obtener detalles completos sobre las variables admitidas, consulte esta página. Las variables dinámicas se configuran automáticamente en función de la entrada especificada durante la implementación del clúster, o ClusterControl realiza una detección automática en función del nombre de host, la dirección IP, la RAM disponible, la cantidad de núcleos de CPU, etc. Esto simplifica la implementación donde solo necesita especificar opciones mínimas durante la etapa de implementación del clúster
Si la variable dinámica se reemplaza con un valor (o indefinido), ClusterControl la omitirá y usará el valor configurado en su lugar. Esto es útil para usuarios avanzados, que generalmente tienen su propio conjunto de opciones de configuración que se adaptan a las cargas de trabajo específicas de la base de datos.
Ejemplo de plantilla de configuración previa a la implementación
En lugar de confiar en la variable dinámica de ClusterControl sobre el número de conexiones máximas para nuestros nodos de base de datos, podemos cambiar la siguiente línea dentro de /usr/share/cmon/templates/my57.cnf.galera, desde:
[email protected]@sqldat.com
Para:
max_connections=50
Guarde el archivo de texto y, en el cuadro de diálogo Implementar clúster de base de datos, asegúrese de que ClusterControl utilice el archivo de plantilla base correcto:

Haga clic en el botón Implementar para iniciar la implementación del clúster de la base de datos.
Ejemplo de plantilla de configuración posterior a la implementación
Una vez completada la implementación del clúster de la base de datos, es posible que haya realizado algunos ajustes en los servidores en ejecución antes de decidir escalarlos. Al escalar, ClusterControl usará la plantilla de configuración dentro de la base de datos CMON (la que se encuentra en ClusterControl -> Configuraciones -> Plantillas) para implementar los nuevos nodos. Por lo tanto, recuerde aplicar la modificación que realizó en el servidor de la base de datos al archivo de plantilla.
Antes de agregar un nuevo nodo, es una buena práctica revisar la plantilla de configuración para asegurarse de que el nuevo nodo obtenga lo que esperábamos. Luego, vaya a ClusterControl -> Agregar nodo y asegúrese de seleccionar el archivo de plantilla MySQL correcto:

Luego, haga clic en el botón "Agregar nodo" para iniciar la implementación.
Eso es todo. Aunque ClusterControl realiza varios trabajos de automatización en lo que respecta a la implementación, aún brinda libertad para que los usuarios personalicen la implementación en consecuencia. ¡Feliz agrupamiento!