GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer le cluster MariaDB Galera sur Ubuntu 20.04

L'équilibrage de charge et le clustering sont très importants dans un environnement de production pour obtenir une haute disponibilité pour votre système de base de données. MariaDB Galera Cluster fournit une solution de clustering multi-maîtres et prend en charge les moteurs de stockage XtraDB/InnoDB. Un cluster multimaître permet la lecture et l'écriture sur n'importe quel nœud de cluster. Si vous modifiez des données sur un nœud, elles sont répliquées sur tous les autres nœuds. Le cluster Galera prend également en charge les environnements cloud et WAN pour créer un cluster distribué à travers les pays et les continents.

Dans cet article, nous montrerons comment configurer un cluster MariaDB Galera à trois nœuds sur le serveur Ubuntu 20.04.

Prérequis

  • Trois serveurs exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Avant de commencer, vous devrez mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour à l'aide de la commande suivante :

apt-get update -y

Une fois votre serveur mis à jour, vous pouvez passer à l'étape suivante.

Installer le serveur MariaDB

Tout d'abord, vous devrez installer le serveur MariaDB sur tous les nœuds. Vous pouvez l'installer en exécutant la commande suivante :

apt-get install mariadb-server -y

Une fois l'installation terminée, démarrez le service MariaDB et autorisez-le à démarrer au redémarrage du système :

systemctl start mariadb
systemctl status mariadb

Ensuite, vous devrez sécuriser l'installation de MariaDB et définir un mot de passe root MariaDB sur chaque nœud. Vous pouvez le faire avec la commande suivante :

mysql_secure_installation

Il vous sera demandé de définir un mot de passe root MariaDB comme indiqué ci-dessous :

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Une fois votre serveur MariaDB sécurisé, vous pouvez passer à l'étape suivante.

Configurer le cluster Galera

Ensuite, vous devrez créer un fichier de configuration Galera sur chaque nœud afin que chaque nœud puisse communiquer entre eux.

Sur le premier nœud, créez un fichier galera.cnf à l'aide de la commande suivante :

nano /etc/mysql/conf.d/galera.cnf

Ajoutez les lignes suivantes :

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="node1-ip-address"
wsrep_node_name="node1"

Enregistrez et fermez le fichier lorsque vous avez terminé.

Sur le deuxième nœud, créez un fichier galera.cnf à l'aide de la commande suivante :

nano /etc/mysql/conf.d/galera.cnf

Ajoutez les lignes suivantes :

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="node2-ip-address"
wsrep_node_name="node2"

Enregistrez et fermez le fichier lorsque vous avez terminé.

Sur le troisième nœud, créez un fichier galera.cnf à l'aide de la commande suivante :

nano /etc/mysql/conf.d/galera.cnf

Ajoutez les lignes suivantes :

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="node3-ip-address"
wsrep_node_name="node3"

Enregistrez et fermez le fichier lorsque vous avez terminé.

Initialiser le cluster Galera

À ce stade, tous les nœuds sont configurés pour communiquer entre eux.

Ensuite, vous devrez arrêter le service MariaDB sur tous les nœuds. Vous pouvez exécuter la commande suivante pour arrêter le service MariaDB :

systemctl stop mariadb

Sur le premier nœud, initialisez le cluster MariaDB Galera avec la commande suivante :

galera_new_cluster

Maintenant, vérifiez l'état du cluster avec la commande suivante :

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Vous devriez voir le résultat suivant :

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Sur le deuxième nœud, démarrez le service MariaDB avec la commande suivante :

systemctl start mariadb

Ensuite, vérifiez l'état du cluster MariaDB Galera avec la commande suivante :

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Vous devriez voir le résultat suivant :

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Sur le troisième nœud, démarrez le service MariaDB avec la commande suivante :

systemctl start mariadb

Ensuite, vérifiez l'état du cluster MariaDB Galera avec la commande suivante :

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Vous devriez voir le résultat suivant :

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

À ce stade, le cluster MariaDB Galera est initialisé. Vous pouvez maintenant passer à l'étape suivante.

Vérifier la réplication du cluster

Ensuite, vous devrez vérifier si la réplication fonctionne ou non.

Sur le premier nœud, connectez-vous à MariaDB avec la commande suivante :

mysql -u root -p

Une fois connecté, créez une base de données avec la commande suivante :

MariaDB [(none)]> create database db1;
MariaDB [(none)]> create database db2;

Ensuite, quittez MariaDB avec la commande suivante :

MariaDB [(none)]> exit;

Ensuite, allez au deuxième nœud et connectez-vous à MariaDB avec la commande suivante :

mysql -u root -p

Ensuite, exécutez la commande suivante pour afficher toutes les bases de données :

MariaDB [(none)]> show databases;

Vous devriez voir que les deux bases de données que nous avons créées sur le premier nœud sont répliquées sur le deuxième nœud :

+--------------------+
| Database           |
+--------------------+
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)

Ensuite, allez au troisième nœud et connectez-vous à MariaDB avec la commande suivante :

mysql -u root -p

Ensuite, exécutez la commande suivante pour afficher toutes les bases de données :

MariaDB [(none)]> show databases;

Vous devriez voir que les deux bases de données que nous avons créées sur le premier nœud sont répliquées sur le troisième nœud :

+--------------------+
| Database           |
+--------------------+
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)

Conclusion

Dans le guide ci-dessus, nous avons appris à configurer un cluster MariaDB Galera à trois nœuds sur le serveur Ubuntu 20.04. Vous pouvez maintenant ajouter plus de nœuds au cluster MariaDB Galera facilement. N'hésitez pas à me demander si vous avez des questions.


Ubuntu
  1. Comment installer MariaDB 10.4 sur Ubuntu 18.04

  2. Comment installer MariaDB Galera Cluster sur Ubuntu 16.04

  3. Comment configurer HAProxy dans Ubuntu 16.04

  4. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  5. Comment installer et configurer MariaDB Galera Cluster sur Ubuntu 18.04

Comment configurer la réplication CouchDB sur Ubuntu 16.04

Comment configurer MariaDB Galera Cluster avec HAproxy sur CentOS 7

Comment installer MariaDB sur Ubuntu 18.04 / Ubuntu 16.04

Comment configurer OpenVPN sur Ubuntu Server

Comment installer MariaDB sur Ubuntu 20.04 LTS

Comment installer MariaDB sur Ubuntu 16.04