• Installation d’un MariaDB Galera Cluster sous CentOS 7

    mariadb-seal-shaded-browntext-galeraAvec les services de location VPS actuellement offerts tel que DigitalOcean ou aws.amazon.ca, il est très facile d’obtenir plusieurs serveurs dans différentes parties du monde. Ainsi une application qui utilise mysql peut très facilement être répliquée afin d’assurer un maximum de disponibilité.

    Le faible coût d’une telle solution la rend particulièrement intéressante.

    Voici donc une manière rapide de procéder à l’installation.  Je vous recommande fortement de lire la documentation officielle et d’utiliser cet article comme un simple guide.

    Afin de simplifier le texte, nous n’utiliserons que 2 nodes. En production, il est préférable d’en utiliser 3.

    Configuration initiale des serveurs :

    OS : CentOS 7

    • stunnel
    • firewalld
    • rsync

    Structure du réseau : 

    network

     

    Étape 1 : Installation de Galera sur chacun des serveurs

    Pour chacune des machines, avec l’utilisateur root ajoutez le repository de Mariadb et installez Galera.

    Étape 2 : Ouvrir les ports opportuns entre les serveurs

     Sur 10.0.0.1 :

    Sur 10.0.0.2

     

     

    Étape 3 : Créer des certificats SSL

    Il est important que les serveurs communiquent entre eux de façon sécure. Pour faire, nous aurons besoins de plusieurs certificats de sécurités que nous généreront dans le répertoire /etc/ssl/certs/mysql

    Pour les détails, consultez  http://galeracluster.com/documentation-webpages/sslcert.html

    ATTENTION :

    Quelle que soit la méthode que vous utilisez pour générer le certificat et les fichiers clés , la valeur du Common Name utilisée pour les certificats serveur et client / clés doivent  différer de la valeur du Common Name utilisé pour le certificat de CA . Sinon , le certificat et les clés des fichiers ne fonctionneront pas pour les serveurs utilisant OpenSSL compilées . (https://dev.mysql.com/doc/refman/5.7/en/creating-ssl-files-using-openssl.html)

    Copiez  les certificats générés sur chacun des serveur en utilisant une méthode de transfert sécurisé tel sftp.

     

    Étape 4 : Configurer Galera et stunel

    Trois fichiers doivent être ajustés sur chacun des serveurs.

    • Sur 10.0.0.1

    /etc/my.cnf.d/server.cnf

    /etc/my.cnf.d/mysql-clients.cnf

    /etc/stunnel/stunnel.conf

     

     

    • Sur 10.0.0.2

    /etc/my.cnf.d/server.cnf

    /etc/my.cnf.d/mysql-clients.cnf

    /etc/stunnel/stunnel.conf

     

    ** Ajouté 04 Novembre 2015 ************

    La configuration présentée dans la documentation officielle ne semble pas cohérente en ce qui a trait à stunnel (https://dev.mysql.com/doc/refman/5.7/en/creating-ssl-files-using-openssl.html)

    Afin de la rendre fonctionnelle, j’ai retiré de stunnel.conf la section ssync qui ne se voulait qu’un duplicata de la section rsync. Ensuite, j’ai ajouté un script de démarrage de stunnel pour qu’il soit géré par systemd .

    Donc,  j’ai ajouté le fichier suivant /etc/systemd/system/stunnel.service copié tel quel de l’article : http://duykhanh.me/stunnel-init-systemd-script-on-centos7/

    Il est par la suite aisé de l’ajouté à la séquence de démarage du serveur :

    ******************************************

    Étape 5 : Démarage des serveurs  et exécution de mysql_secure_installation

    Sur 10.0.0.1 :

    Sur 10.0.0.2 :

     

    Étape 6 : Une petite vérification 

    ** Ajouté 04 Novembre 2015 ************

    Sur chacun des serveurs, afin d’automatiser le démarage de mysql lors de l’initialisation de la machine :

    *****************************************

    Si j’ai oublié quelque chose ou si vous désirez apporter une précision, n’hésitez pas à commenter. J’espère vous avoir été utile.

     

One Responseso far.

  1. José Ntumba dit :

    Très utile. ton article m’a bcp aidé pour mon mémoire…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *