CentOS 7: Installation de MariaDB Galera Cluster

De Pegasus45

On va installer MariaDB Galera Cluster qui va permettre d'avoir un cluster de serveurs MariaDB en mode Multi-Master.

Dans ce contexte, j'ai 2 serveurs:

  • mariadb1 = 192.168.26.141
  • mariadb2 = 192.168.26.142


Installation du dépôt MariaDB

Sur les 2 serveurs, on déclare le dépôt de MariaDB pour pouvoir installer la version Galera:

Configuration File vi /etc/yum.repos.d/mariadb.repo
# MariaDB 10.0 CentOS repository list
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=0

Et on installe MariaDB Galera:

Command
yum --enablerepo=mariadb -y install MariaDB-Galera-server


Configuration du noeud1

On configure le premier serveur (mariadb1):

Configuration File vi /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
# IP de tous les noeuds:
wsrep_cluster_address="gcomm://192.168.26.141,192.168.26.142"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster"
# IP local:
wsrep_node_address="192.168.26.141"
wsrep_sst_method=rsync

On initialise le cluster:

Command
/etc/rc.d/init.d/mysql bootstrap

Bootstrapping the cluster.. Starting MySQL.. SUCCESS!

Et on finit par faire une configuration basique sur serveur:

Command
mysql_secure_installation


Configuration du noeud2

Maintenant, on configure le 2e serveur (mariadb2):

Configuration File vi /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
# IP de tous les noeuds:
wsrep_cluster_address="gcomm://192.168.26.141,192.168.26.142"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster"
# IP local:
wsrep_node_address="192.168.26.142"
wsrep_sst_method=rsync

C'est la même configuration que pour mariadb1, à part la variable wsrep_node_address qui doit avoir l'IP de la machine.

Et on démarre MariaDB:

Command
systemctl start mysql

La configuration du cluster est terminée.


Vérification du status du Cluster

Pour vérifier l'état du cluster, on vérifie que la variable wsrep_local_state_comment vaut synced:

Command
mysql -u root -p

MariaDB [(none)]> show status like 'wsrep_local_state_comment';

+---------------------------+--------+
| Variable_name             | Value  |
+---------------------------+--------+
| wsrep_local_state_comment | Synced |
+---------------------------+--------+
1 row in set (0.00 sec)


On peut également s'amuser à créer un database sur un noeud et vérifier qu'il est présent sur l'autre noeud.