Outils pour utilisateurs

Outils du site


kb:linux:generalites:monter_cluster_mariadb_galera_avec_haproxy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
kb:linux:generalites:monter_cluster_mariadb_galera_avec_haproxy [2020/04/27 20:07] – créée beukb:linux:generalites:monter_cluster_mariadb_galera_avec_haproxy [2020/04/28 21:02] beu
Ligne 2: Ligne 2:
  
 Un cluster Galera est un cluster de bases de données de type MySQL/MariaDB, avec a **minima 3 nœuds**, chacun des nœuds pouvant être Master. Un cluster Galera est un cluster de bases de données de type MySQL/MariaDB, avec a **minima 3 nœuds**, chacun des nœuds pouvant être Master.
 +
 +Ça permet d'obtenir de meilleurs performances, mais aussi de la redondance. J'ai réalisé rapidement un benchmark que vous pouvez trouver [[:kb:linux:generalites:benchmark-mariadb|ici]].
  
 Mais attention, l'installation d'un cluster MariaDB nécessitera de bien faire attention aux règles de parefeu et aux bases de sécurité. Mais attention, l'installation d'un cluster MariaDB nécessitera de bien faire attention aux règles de parefeu et aux bases de sécurité.
Ligne 23: Ligne 25:
 Puis on va créer un fichier sur CHAQUE serveur : Puis on va créer un fichier sur CHAQUE serveur :
  
-<code ini>+<code ini /etc/mysql/mariadb.conf.d/51-galera.cnf>
 [galera] [galera]
 wsrep_on=ON wsrep_on=ON
Ligne 66: Ligne 68:
 ==== Configuration de HAProxy ==== ==== Configuration de HAProxy ====
  
-FIXME+Il existe plusieurs solutions pour équilibrer les requêtes, l'une des plus simples est HAProxy.
  
 +HAProxy a un système de vérification d'état spécialement pour MariaDB/MySQL, pour cela il s’appuie sur un compte **SANS AUTHENTIFICATION**. Il faut donc que le nom d'utilisateur soit non déterminable par une personne malveillante.
 +
 +Dans cette exemple, ce sera **haproxy12345**.
 +
 +Pour commencer on va le créer dans le cluster avec comme spectre l'IP du serveur HAproxy : 
 +
 +<code mysql>
 +MariaDB [(none)]> CREATE USER 'haproxy12345'@'192.168.1.210';
 +Query OK, 0 rows affected (0.023 sec)
 +</code>
 +
 +
 +Ensuite, sur le serveur HAProxy, on va l'installer  :
 +
 +<code bash>
 +# apt update
 +</code><code bash>
 +# apt install -y haproxy
 +</code>
 +
 +puis ajouter dans le fichier **/etc/haproxy/haproxy.cfg** :
 +
 +<code yaml>
 +listen mysql-cluster
 + bind 0.0.0.0:3306
 + mode tcp
 + option mysql-check user haproxy12345
 + balance roundrobin
 + server sql1 192.168.1.211:3306 check
 + server sql2 192.168.1.212:3306 check
 + server sql3 192.168.1.213:3306 check
 +</code>
 +
 +Après, redémarrez le service HAproxy pour rendre le serveur opérationnel :
 +
 +<code bash>
 +# systemctl restart haproxy
 +</code>
  
 ==== Redémarrage d'un cluster a froid ==== ==== Redémarrage d'un cluster a froid ====
Ligne 73: Ligne 113:
 Un cluster MariaDB Galera n'aime pas du tout être arrêté. Il y a donc une petite manipulation pour relancer le cluster. Un cluster MariaDB Galera n'aime pas du tout être arrêté. Il y a donc une petite manipulation pour relancer le cluster.
  
-FIXME+Pour cela, sur le noeud avec les modifications les plus récentes, modifiez la valeur **safe_to_bootstrap** a **1** dans le fichier **/var/lib/mysql/grastate.dat** comme ceci : 
 + 
 +<code none /var/lib/mysql/grastate.dat> 
 +# GALERA saved state 
 +version: 2.1 
 +uuid:    39d3c447-8706-11ea-b589-02ca185f3e79 
 +seqno:   -1 
 +safe_to_bootstrap:
 +</code> 
 + 
 +puis toujours sur ce même noeud, lancez la commande : 
 + 
 +<code bash> 
 +# galera_new_cluster 
 +</code> 
 + 
 +Le service devrait a présent être lancé sur le serveur, a partir de maintenant vous devriez pouvoir relancer les services MariaDB sur les autres serveurs avec la commande : 
 + 
 +<code bash> 
 +# systemctl start mysql 
 +</code> 
kb/linux/generalites/monter_cluster_mariadb_galera_avec_haproxy.txt · Dernière modification : 2020/04/28 21:34 de beu