ClusterControl facilite le déploiement d'une configuration de base de données - remplissez simplement certaines valeurs (fournisseur de base de données, répertoire de données de base de données, mot de passe et noms d'hôte) dans l'assistant de déploiement et vous êtes prêt à partir. Le reste des options de configuration sera automatiquement déterminé (et calculé) en fonction des spécifications de l'hôte (cœurs de processeur, mémoire, adresse IP, etc.) et appliqué au fichier de modèle fourni avec ClusterControl. Dans cet article de blog, nous allons examiner comment ClusterControl utilise les fichiers de modèle par défaut et comment les utilisateurs peuvent les personnaliser selon leurs besoins.
Fichiers de modèle de base
Tous les services configurés par ClusterControl utilisent un modèle de configuration de base disponible sous /usr/share/cmon/templates sur le nœud ClusterControl. Voici les fichiers modèles fournis par ClusterControl v1.4.0 :
Nom du fichier | Description |
---|---|
config.ini.mc | Fichier de configuration du cluster MySQL. |
haproxy.cfg | Modèle de configuration HAProxy pour Galera Cluster. |
haproxy_rw_split.cfg | Modèle de configuration HAProxy pour le fractionnement en lecture-écriture. |
garbd.cnf | Fichier de configuration du démon d'arbitrage Galera (garbd). |
keepalived-1.2.7.conf | Fichier de configuration keepalived hérité (pre 1.2.7). Ceci est obsolète. |
keepalived.conf | Fichier de configuration Keepalived. |
keepalived.init | Conservez le script d'initialisation. |
MaxScale_template.cnf | Modèle de configuration MaxScale. |
mongodb-2.6.conf.org | Modèle de configuration MongoDB 2.x. |
mongodb.conf.org | Modèle de configuration MongoDB 3.x. |
mongodb.conf.percona | Modèle de configuration MongoDB 3.x pour Percona Server pour MongoDB. |
mongos.conf.org | Modèle de configuration du routeur Mongo (mongos). |
my.cnf.galera | Modèle de configuration MySQL pour Galera Cluster. |
my57.cnf.galera | Modèle de configuration MySQL pour Galera Cluster sur MySQL 5.7. |
my.cnf.grouprepl | Modèle de configuration MySQL pour la réplication de groupe MySQL. |
my.cnf.gtid_replication | Modèle de configuration MySQL pour la réplication MySQL avec GTID. |
mon.cnf.mysqlcluster | Modèle de configuration MySQL pour MySQL Cluster. |
mon.cnf.pxc55 | Modèle de configuration MySQL pour Percona XtraDB Cluster v5.5. |
my.cnf.repl57 | Modèle de configuration MySQL pour MySQL Replication v5.7. |
my.cnf.replication | Modèle de configuration MySQL pour MySQL/MariaDB sans le GTID de MySQL. |
mysqlchk.galera | Modèle de script de vérification de l'état MySQL pour Galera Cluster. |
mysqlchk.mysql | Modèle de script de vérification de l'état MySQL pour la réplication MySQL. |
mysqlchk_xinetd | Modèle de configuration Xinetd pour la vérification de l'état de MySQL. |
mysqld.service.override | Modèle de fichier d'unité Systemd pour le service MySQL. |
proxysql_template.cnf | Modèle de configuration ProxySQL. |
La liste ci-dessus dépend de l'ensemble de fonctionnalités fourni par la version de ClusterControl installée. Dans une ancienne version, vous pourriez ne pas trouver certains d'entre eux. Vous pouvez modifier ces fichiers modèles directement, bien que nous ne le recommandions pas comme expliqué dans les sections suivantes.
Gestionnaire de configuration
Selon le type de cluster, ClusterControl importera ensuite le fichier de modèle de base nécessaire dans la base de données CMON et accessible via Gérer -> Configurations -> Modèles une fois le déploiement réussi. Par exemple, considérez le modèle de configuration suivant pour un cluster MariaDB Galera :
ClusterControl chargera le contenu du modèle de base du modèle de configuration Galera à partir de /usr/share/cmon/templates/my.cnf.galera dans la base de données CMON (dans la table cluster_configuration_templates) une fois le déploiement réussi. Vous pouvez ensuite personnaliser votre propre fichier de configuration directement dans l'interface utilisateur de ClusterControl. Chaque fois que vous appuyez sur le bouton Enregistrer, la nouvelle version du modèle de configuration sera stockée dans la base de données CMON, sans écraser le fichier de modèle de base.
Une fois le cluster déployé et en cours d'exécution, le modèle de l'interface utilisateur est prioritaire. Le fichier de modèle de base n'est utilisé que lors du déploiement initial du cluster via ClusterControl -> Deploy -> Deploy Database Cluster. Lors de la phase de déploiement, ClusterControl utilisera un répertoire temporaire situé dans /var/tmp/ pour préparer le contenu, par exemple :
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Variables dynamiques
Il existe un certain nombre de variables de configuration configurables dynamiquement par ClusterControl. Ces variables sont représentées par des lettres majuscules entre le signe "@", par exemple @[email protected] Pour plus de détails sur les variables prises en charge, veuillez vous référer à cette page. Les variables dynamiques sont automatiquement configurées en fonction de l'entrée spécifiée lors du déploiement du cluster, ou ClusterControl effectue une détection automatique en fonction du nom d'hôte, de l'adresse IP, de la RAM disponible, du nombre de cœurs de processeur, etc. Cela simplifie le déploiement où vous n'avez qu'à spécifier des options minimales lors de l'étape de déploiement du cluster
Si la variable dynamique est remplacée par une valeur (ou non définie), ClusterControl l'ignorera et utilisera la valeur configurée à la place. Ceci est pratique pour les utilisateurs avancés, qui disposent généralement de leur propre ensemble d'options de configuration adaptées à des charges de travail de base de données spécifiques.
Exemple de modèle de configuration de pré-déploiement
Au lieu de compter sur la variable dynamique de ClusterControl sur le nombre de max_connections pour nos nœuds de base de données, nous pouvons modifier la ligne suivante dans /usr/share/cmon/templates/my57.cnf.galera, à partir de :
[email protected]@sqldat.com
À :
max_connections=50
Enregistrez le fichier texte et dans la boîte de dialogue Déployer le cluster de bases de données, assurez-vous que ClusterControl utilise le bon fichier de modèle de base :
Cliquez sur le bouton Déployer pour démarrer le déploiement du cluster de base de données.
Exemple de modèle de configuration post-déploiement
Une fois le déploiement du cluster de bases de données terminé, vous avez peut-être effectué quelques ajustements sur les serveurs en cours d'exécution avant de décider de le mettre à l'échelle. Lors de la mise à l'échelle, ClusterControl utilisera le modèle de configuration dans la base de données CMON (celui rempli sous ClusterControl -> Configurations -> Modèles) pour déployer les nouveaux nœuds. N'oubliez donc pas d'appliquer la modification que vous avez effectuée sur le serveur de base de données au fichier de modèle.
Avant d'ajouter un nouveau nœud, il est recommandé de revoir le modèle de configuration pour s'assurer que le nouveau nœud obtient ce que nous attendions. Ensuite, allez dans ClusterControl -> Ajouter un nœud et assurez-vous que le bon fichier de modèle MySQL est sélectionné :
Ensuite, cliquez sur le bouton "Ajouter un nœud" pour démarrer le déploiement.
C'est ça. Même si ClusterControl effectue diverses tâches d'automatisation en matière de déploiement, il offre toujours aux utilisateurs la liberté de personnaliser le déploiement en conséquence. Bon regroupement !