MariaDB - Grappe de serveurs avec Galera

De Wiki doc

Révision datée du 6 novembre 2020 à 20:21 par Ycharbi (discussion | contributions) (Ycharbi a déplacé la page MariaDB - Cluster de serveurs (Galera) vers MariaDB - Grappe de serveurs avec Galera sans laisser de redirection : Francisation du titre)

Suite a plusieurs tests, cette solution n'est pas adaptée pour faire du cluster via VPN. Cette outils ne fonctionne que dans un réseau interne. Nous somme partie sur une solution de réplication MySQL Master-Master.

Tous les manipulations sont à faire sur tous les serveur (sauf contraction).

Ajout des dépôts MariaDB

Sur Debian 8 "Jessie", les paquets de Galera ne sont pas dans les dépôts de Debian contrairement à Debian 9 "Stretch".

  • Ajouter la clef du dépôt de MariaDB:
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
  • Ajouter dans le fichier /etc/apt/sources.list :
[...]
deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
  • Faire un update:
# apt update

Installer MariaDB et Galera

  • Installer MariaDB et Galera:
# apt install -y rsync mariadb-client mariadb-galera-server galera

Configurer le cluster

  • Créer le fichier /etc/mysql/conf.d/galera.cnf sur tous les serveurs et ajouter:
[mysqld]
#mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0

#galera settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="test_cluster"
wsrep_cluster_address=gcomm://cluster01,cluster02,cluster03
wsrep_sst_method=rsync

Modifier cluster01,cluster02,cluster03 par les IP de tous vos serveurs en cluster. ex: gcomm://10.0.99.31,10.0.99.32,10.0.99.33.
Modifier test_cluster par le nom du cluster de votre choix.

  • Stopper MariaDB sur tous les machines du cluster:
# service mysql stop
  • Sur l'un des serveur du cluster que l'on va appeler cluster01 dans ce tuto, exécuter:
# galera_new_cluster
  • Toujours sur cluster01, exécuter la commende suivant:
# mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'

Résultat:

+--------------+
| cluster size |
+--------------+
| 1            |
+--------------+

Le 1 correspond au nombre de serveur connecté au cluster.

  • Sur les autres serveurs du cluster, il suffit de démarrer MariaDB:
# service mysql start
  • Sur cluster01, si vous exécutez:
# mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'

Résultat:

+--------------+
| cluster size |
+--------------+
| 2            |
+--------------+

Vous voyez le chiffre augmenté suivant le nombre de serveur connecté dans le cluster.

Sources