Skip to main content

Créer un cluster MariaDB

Prérequis : 
  • 5 serveur Rocky Linux ou RHEL
  • MariaDB
  • IP de nos machines : 192.168.1.1, 192.168.1.2, 192.168.1.3, 192.168.1.4, 192.168.1.5
Création de notre maitre

On commence à choisir notre premier serveur qui fera office de maitre pour le début. Voici donc mes machines virtuelle :

CleanShot 2023-01-11 at 11.16.12@2x.png

Bien évidement, il est pas nécessaire d'avoir 5 serveur MariaDB. Simplement 2 pourrait largement suffire. 

Dans notre première machine (Gluster1) on installe mariadb, socat, galera et rsync si vous avez une version minimal de RockyLinux. 

dnf install rsync galera mariadb-server-galera mariadb-server mariadb

On lance ensuite notre MariaDB au lancement de notre machine et on le lance. 

systemctl enable --now mariadb

On lance la configuration de notre MariaDB en mettant un mot de passe sécuriser : 

mysql_secure_installation

Une fois fini on va dans notre dossier my.cnf.d et on modifie le fichier mariadb-server.cnf et on rajoute en dessous de [galera] le texte ci-dessous :

nano /etc/my.cnf.d/mariadb-server.cnf 

#Texte à rajouter

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="Tutobdd"
wsrep_sst_method=rsync
wsrep_node_address="192.168.1.1"
wsrep_node_name="Gluster1"

bien évidement on modifie les adresses ip selon votre configuration, le cluster name, le node address par votre ip maitre et le node name, pour ma part c'est le nom de ma machine. 

On rajoute ensuite dans notre fichier hosts ces informations : 

#Attention de bien mettre les noms de vos nodes
192.168.1.1 Gluster1
192.168.1.2 Gluster2
192.168.1.3 Gluster3
192.168.1.4 Gluster4
192.168.1.5 Gluster5

On arrete notre MariaDB et on créer notre cluster.

systemctl stop mariadb
galera_new_cluster
Ajouter nos autres machines

Sur nos autres machines on installe tout les logiciels nécessaire pour faire fonctionner notre cluster. 

dnf install rsync mariadb galera 

On lance le MariaDB et on fait la configuration de notre MariaDB. Vous pouvez mettre un mot de passe different du serveur. 

systemctl enable --now mariadb
mysql_secure_installation

On modifie notre fichier mariadb-server.cnf

nano /etc/my.cnf.d/mariadb-server.cnf 

#Texte à rajouter en bas de [galera]

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="Tutobdd"
wsrep_sst_method=rsync
wsrep_node_address="192.168.1.2"
wsrep_node_name="Gluster2"

et on modifie le node adresse et le node name. 

On redemarre notre MariaDB sur chaque machine et apres avoir mis le configuration sur toutes nos machines on peut ce reconnecter a notre maitre. 

Vérifier que notre cluster fonctionne

Pour verifier que notre cluster fonctionne on retourne sur notre maitre et on ce connecte avec mysql

mysql -u root -p

et on tape cette commande : 

SHOW STATUS LIKE 'wsrep_cluster_size';

ce qui doit donner le bon nombre de machine dans notre cluster 

CleanShot 2023-01-11 at 11.58.35@2x.png

On peut maintenant créer des bases de données et les voir sur toutes les machines de notre cluster. On peut aussi arreter des machines pour faire des tests de resynchronisation et voir que tout fonctionne bien meme si notre "maitre" tombe.