Galera est un puissant outil de clustering MySQL en multi-maître. Il permet de changer la topologie du cluster à chaud, c’est ce que nous allons voir ici.
Pour ajouter un noeud, installez simplement votre MySQL en mode Galera en vous assurant que la valeur de wsrep_cluster_address
correspond à des noeuds existants.
Par exemple, vous avez les nodes suivants:
Vous souhaitez ajouter 10.1.1.33 au cluster, configurez wsrep_cluster_address
de la manière suivante:
wsrep_cluster_address = gcomm://10.1.1.1,10.1.1.2
Redémarrez ensuite le nouveau noeud, il va rejoindre le cluster:
2020-02-04 14:16:04 0 [Note] WSREP: Shifting OPEN -> PRIMARY (TO: 13117042)
2020-02-04 14:16:04 115 [Note] WSREP: New cluster view: global state: 2701d088-7498-4ca6-8a21-34c4295b874a:13117042, view# 12: Primary, number of nodes: 3, my index: 2, protocol version 3
...
2020-02-04 14:16:04 0 [Note] WSREP: Shifting JOINER -> JOINED (TO: 13117045)
2020-02-04 14:16:04 0 [Note] WSREP: Member 3.0 (mynewnode3.example.org) synced with group.
2020-02-04 14:16:04 0 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 13117045)
Si vous êtes amenés à remplacer des nodes ou à les migrer, vous aurez besoin de reconfigurer la topologie de votre cluster.
Vous pourriez changer wsrep_cluster_address
dans la configuration fichier et ensuite redémarrer MySQL, mais niveau haute
disponibilité ce n’est pas top. Il est possible de changer cette valeur à chaud.
Depuis le prompt MySQL, entrez simplement:
set global wsrep_cluster_address='gcomm://10.1.1.2,10.1.1.3';
Le noeud courant va se déconnecter et reconnecter, cela engendre 2-3 secondes de lag sur le noeud, si vous avez un load balancer type haproxy ou proxysql, retirez le node du pool avant d’effectuer l’opération.
Sur le noeud à supprimer récupérez déjà son identifiant unique:
show global status like 'wsrep_gcomm_uuid';
Ensuite, sur l’un des noeuds du cluster qui va persister, demandez l’éviction du node:
set global wsrep_provider_options="evs.evict=f8f543d0-47f4-11ea-ad75-2b212fde7675";
Le node a été supprimé du cluster et a clotûré son processus Galera, vous pouvez désormais le décomissionner.