Préambule.
Les configurations suivantes sont adoptées, elles sont "légères" mais largement suffisantes pour nos tests :
- GALE_1 : future machine "Maxscale"
Disque 40GB
Mémoire 2048M
2 VCPU
- GALE-2, GALE-3 et GALE-4 nos trois machines bases de données :
Disque 40GB
Mémoire 4096M
2 VCPU
Le partitionnement adopté, volontairement simple, est suffisant pour des tests :
/boot 656Mo
/ 36Go
Swap 3,5Go
Les deux premières machines ont été installées "normalement" à partir d'une image ISO, les machines 3 et 4 ont été "clonées" depuis la machine 2 après l'installation de la base de données et les premiers tests de validation. "dd" est un bon ami.
Installation.
Il faut commencer par installer la définition du repository spécifique à MariaDB qui installe tout ce qu'il faut pour MariaDB, Maxscale et quelques outils complémentaires.
- Commencer par installer les outils curl, net-tools, vim ou gvim-gtk3 ...
Pour pouvoir ensuite installer, valider, suivre et mettre à jour confortablement tout ce qu'il faut pour un système "normal".
- Installer le repository MariaDB :
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
Ce script gère tout, y compris un "apt update" pour mettre à jour les listes de paquets.
Comme les machines sont installées en Debian Bullseye on est limité aux versions 10.5 de MariaDB, 22.08 de Maxscale et Galera 3 ou 4 (on utilisera bien sûr la version 4).
- On installe ici (GALE-2) MariaDB et Galera :
apt install mariadb-client-10.5 mariadb-server-10.5 galera-4
Cela récupère un paquet de dépendances : #28Mo d'archives et promet d'occuper 213MO sur disque.
Après le fatidique "sysctl start mariadb" tout se passe bien !
Lancée sous "root" la commande "mysql" nous lance gentiment le client connecté à notre nouvelle base.
On peut alors mettre un mot de passe à l'utilisateur "root", limité à localhost et créer un compte spécifique d'administration avec une visibilité plus importante (/24 par exemple). Bien le faire avant le clonage de GALE-2 sur les deux machines suivantes.
Le système "modèle" est prêt et on peut le cloner dans les deux autres machines, il suffira de changer :
- hostname /etc/hostname
- IP /etc/network.interfaces IP statiques
et pour la base MariaDB.
- server_id /etc/mysql/mariadb.conf.d/50-server.cnf
y mettre 2,3 et 4, les numéros de nostrois braves machines.
Maintenant que nos trois machines bases de données sont prêtes on va pouvoir passer à la mise en service de Galera ce qui promet d'être plus amusant.
Avant de se lancer dans Galera proprement dit il vaut mieux "arranger un peu" la configuration de MariaDB.
Par exemple mettre les fichiers "binlog" ailleurs que dans /var/log/mariadb !
J'ai donc ici créé un répertoire /var/lib/binlogs :
mkdir /var/lib/binlogs
chown mysql: /var/lib/binlogs
et modifié en conséquence le fichier /etc/mysql/mariadb.conf.d/50-server.cnf.