LINUX:Pacemaker - deux routers en failover - trois serveurs WEB en Loadbalancing, Galera et GlusterFs

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de la Haute disponibilité


But

Cette configuration est très semblable à la précédente, Quatre serveurs WEB en Loadbalancing, Galera et GlusterFs. La différence est qu'on met en Failover deux routers, qui utilisent Ldirectord comme répartiteur de requêtes. Les trois serveurs Web sont en loadbalancing. Ils utilisent en outre les fonctionnalités de GlusterFs et de MariaDb-Galera qui travaillent en réplication.


Matériel et adressage IP

Dans notre exemple, nous utilisons trois serveurs Web mis en cluster sous le réseau "192.168.2.0/24". Pour améliorer les performances et de sécurité, le trafic généré par la réplication des espaces disques et des bases de données se fera au travers d'un troisième réseau ("192.168.3.0/24"), chaque machine est pour cette raison équipée d'une seconde carte réseau. La fonctionnalité de Loadbalancing est assurée par deux routers qui fait la répartition des tâches et la liaison avec la Lan d'entrée. Ces deux routers sont configurés en Failover.

Le schéma ci-dessous nous montre l'adressage IP et le nom de ces machines.

LINUX:Loadbalancing.web3.pdf


Principe

Nous avons trois serveurs Web gérants le même site. La charge Web sera répartie équitablement entre ces trois serveurs Web. Cette tâche est assurée par le paquet Ldirectord en mode "Mask". Il se place sur les routers "sv5.home.dom" et "sv4.home.dom". Ils travaillent en Failover. Celui qui a la main possède une adresse IP virtuelle "192.168.1.70" sous le nom de "cluster.home.dom" et cette adresse servira de passerelle par défaut pour les trois serveurs Web. Ce site utilisera le cryptage SSL sous le nom de "cluster.home.dom". Pour cette raison, l'interface réseau utilisé par les utilisateurs sera accessible sous le nom "cluster.home.dom" du réseau "192.168.1.0/24". La configuration du router "192.168.1.70" peut être trouvée dans l'article sur le Routage statique. Dans cadre d'un réseau à domicile, vous aurez des problème d'appliquer un routage statique; l'article suivant vous aidera à le résoudre via le Natting.

Les fichiers utilisés pour ce site sont placés dans un espace disque commun aux trois serveurs. Pour cette tâche, nous utilisons un volume GlusterFs en réplication. La réplication se passe au travers du réseau "192.168.3.0/24".

Ce site utilise une base de données. Chacun de ces trois serveurs comporte une base de données; elles sont identiques. Cette réplication se fait grâce au gestionnaire de base de données Mariadb-Galera au travers du réseau "192.168.3.0/24". Comme nous avons un nombre impaire de serveurs de base de données, nous n'devons pas besoin du service Garb.

Toute cette configuration sera supervisée par le logiciel Pacemaker. Il assurera que l'ensemble fonctionne et dans le cas extrême, l'ensemble des applications concernées s'arrêtera.

Pour cette mise en place, deux grandes parties sont à considérer:

  • la configuration des trois serveurs qui vont travailler de concert.
  • la configuration des deux routers qui auront la tâche de rediriger et répartir les requêtes des clients.

Avant de passer à Pacemaker.


Prérequis

Configurations de base

En premier, les Prérequis doivent être effectués.


Fichier "hosts"

Sur chaque machine du cluster, on ajoute un nom aux différentes adresses réseaux. On le fait en local dans le fichier "/etc/hosts" suivant le schéma ci-dessus. Son contenu devient:


127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 
192.168.1.70 cluster.home.dom cluster
192.168.1.75 lb5.home.dom lb5
192.168.1.74 lb4.home.dom lb4
192.168.2.75 sv5.home.dom sv5
192.168.2.74 sv4.home.dom sv4
 
192.168.2.71 sv1.home.dom sv1
192.168.2.72 sv2.home.dom sv2
192.168.2.73 sv3.home.dom sv3
 
192.168.3.71 dt1.home.dom dt1
192.168.3.72 dt2.home.dom dt2
192.168.3.73 dt3.home.dom dt3
 
# serveur mail
192.168.1.110 servermail.home.dom home.dom


Configuration des services sur les serveurs Web

Nous avons à configurer les différents services nécessaires qui vont être utilisés par Pacemaker. Ces configurations sont à faire sur les quatre serveurs Web: "192.168.2.71", "192.168.2.72" et "192.168.2.73".


Routage

Comme l'adresse IP de la passerelle sera changeante car c'est celle de l'adresse IP virtuelle du router maître, elle sera définie via Pacemaker. Mais quand Pacemaker est arrêté, il faut y pallier. Pour cette raison, nous ajoutons deux adresses IP de routage statique; l'une va vers l'adresse IP "192.168.2.74" et l'autre vers "192.168.2.75". On peut ne pas le faire. Dans cette situation, la ressource de passerelle par défaut de Pacemaker non activée, ces serveurs Web sont isolés dans le réseau "192.168.2.0/24".


En pratique, dans le fichier de l'interface du réseau "192.168.2.0/24" dans le répertoire "/etc/NetworkManager/system-connections", on ajoute les deux lignes suivantes sous la section "[ipv4]":


[ipv4]
...
route1=192.168.1.0/24,192.168.2.75,201
route2=192.168.1.0/24,192.168.2.74,202

Ou on le fait via l'interface utilisateur texte:

nmtui

Voyez l'article sur le Routage statique.


Service GlusterFs

Sur chaque machine, il faut configurer le serveur Gluster. La configuration se base sur celle présentée dans l'article sur Glusterfs. Toute la configuration centralisée se fera à partir de la machine "sv1.home.dom".

Le volume sera placé sur un partition d'un disque distinct que nous avons monté sur le répertoire "/disk1".


Démarrage

Sur chaque machine, on lance le service "glusterd.service":

systemctl start glusterd.service


Constitution du "Pool"

On constitue le "Pool" de serveurs qui va utiliser le réseau "192.168.3.0/24". Voici la suite des commandes:

gluster peer probe dt2.home.dom
gluster peer probe dt3.home.dom


Constitution du volume en réplication

On crée ensuite le volume en réplication "diskgfs1" sur les quatre machines:

gluster volume create diskgfs1 replica 3 transport tcp dt1.home.dom:/disk1/glusterfs/brique1 dt2.home.dom:/disk1/glusterfs/brique1 \
                                                       dt3.home.dom:/disk1/glusterfs/brique1
gluster volume start  diskgfs1


Services HTTPD et PHP

Les fichiers des sites se trouvent sous le répertoire "/web". Cet espace sera monté sur le volume GlusterFs configuré ci-dessus.

mkdir /data
mount -t glusterfs  localhost:/diskgfs1 /data

La configuration est similaire à celle présentée dans l'article sur le Paramétrage des services en Failover. La mise en place des certificats est nécessaire. Celle concernant la messagerie n'est pas reprise dans ce cas-ci même si elle pourrait y être ajoutée facilement. La configuration de Mariadb sera abordée ci-dessous. Nous plaçons les fichiers du site sous le répertoire "/data/web".

On ajoute un fichier "/data/web/vivant.html" dont le contenu est:


Je suis vivant.

Il servira au service "ldirectord.service" de vérifier qu'Apache est bien actif.


Service MariaDb-Galera

La configuration se base sur celle présentée dans l'article sur Galera - Cluster de MariaDB.


Configuration de MariaDb et de Galera

Nous prendrons la même configuration; nous mettrons la base de données dans le répertoire "/produc/mysql". Nous garderons aussi l'utilisation du répertoire "/produc/mysql.bat" et de son script "mysql.bat".

Seules deux options liées à Galera seront adaptées dans le fichier de configuration du serveur "/etc/my.cnf.d/mariadb-server.cnf".

Celle liée à l'ensemble des machines du cluster utilisant le réseau "192.168.3.0/24":


wsrep_cluster_address = "gcomm://192.168.3.71,192.168.3.72,192.168.3.73"

Et comme nous avons deux interfaces réseaux, il faut spécifier l'option "wsrep_node_address". Sur chaque machine, il faut mettre l'adresse IP de son interface réseau. Dans cet exemple, c'est celle de la machine "sv1.home.dom":


wsrep_node_address="192.168.3.71"


Configuration du service "checkgalera.service"

Nous utilisons le service "checkgaler.service" vu à l'article concernant la MariaDB/Galera - Solution d'automatisation de démarrage.

Il faut adapter le fichier "/manager/galera/hosts.txt":


sv1.home.dom
sv2.home.dom
sv3.home.dom


Configuration du service Rsyncd

Le service précédent utilise le service Rsyncd (voir MariaDB/Galera - Solution d'automatisation de démarrage). ). La seule option à adapter dans le fichier "/etc/rsyncd.conf" est liée à la sécurité:


hosts allow = 192.168.2.71 192.168.2.72 192.168.2.73


Initialisation

Après la configuration, il est préférable de lancer une fois ces services avant d'aborder Pacemaker pour au moins initialiser correctement MariaDb. Pour initier au début le processus, on lance une première fois sur une machine la commande:

galera_new_cluster

Ensuite on peut lancer sur chaque machine le service "checkgalera.service":

systemctl start checkgalera.service

On les arrête ensuite.


Arrêt des services

Tous ces services que nous venons de configurer, nous avons dû les lancer pour effectuer les configurations.

Mais ce sera le rôle de Pacemaker de les gérer. Il faut donc les désactiver et les arrêter avant d'aborder la configuration de Pacemaker.

Sur toutes les machines, on effectue ces tâches:

umount /data
systemctl stop httpd.service
systemctl stop php-fpm.service
systemctl stop glusterd.service
systemctl stop mariadb.service
systemctl stop rsyncd.service
systemctl stop checkgalera.service

systemctl disable httpd.service
systemctl disable php-fpm.service
systemctl disable glusterd.service
systemctl disable mariadb.service
systemctl disable rsyncd.service
systemctl disable checkgalera.service


Configuration des paramètres et des services sur le router

Les routers "sv4.home.dom" et "sv5.home.dom" demandent quelques configurations et service.


Activer le routage

Sur les routers Linux, il ne faut pas oublier d'activer le transfert inter-réseaux en ajoutant un fichier, par exemple "router.conf", dans le répertoire "/etc/sysctl.d". Ce fichier doit contenir la ligne:


net.ipv4.ip_forward = 1

On active cette fonctionnalité par un redfémarrage ou via la commande:

sysctl -p /etc/sysctl.d/router.conf


SSL

Nous avons configuré le service Web qui utilise le cryptage SSL et les certificats associés: HTTPS sur les serveurs Web. Pour valiser ces connexions, Ldirectord doit aussi valider leurs certificats.

Mais les certificats utilisés n'ont pas été validés par une autorité de certification officielle (CA). Il nous faut l'intégrer à la liste officielle du router comme expliqué dans l'article sur les Certificats sous Linux.

Dans l'article sur le Paramétrage des services en Failover, nous avions créé les certificats. Le certificat de l’autorité de certification (CA) se nomme "ca.home.crt". On va le copier dans le répertoire "/etc/pki/ca-trust/source/anchors" du router "cluster.home.dom". Ensuite on exécute la commande:

update-ca-trust

pour l'intégrer à la liste officielle des autorités de certification officielle (CA).


Configuration de Ldirectord

Le fichier de configuration se nomme "/etc/ha.d/ldirectord.cf". Il existe plusieurs types de configuration. Voici le contenu choisi:


emailalert="root"
emailalertfreq=3600
emailalertstatus=all
quiescent=yes
checkinterval=20
fork=yes
 
virtual=192.168.1.75:80
       real=192.168.2.71:80 masq 65000
       real=192.168.2.72:80 masq 65000
       real=192.168.2.73:80 masq 65000
       request="vivant.html"
       receive="Je suis vivant."
       checktype=negotiate
       service=http
       scheduler=lblcr
       persistent=3600
       protocol=tcp
       checkport=80
 
virtual=192.168.1.75:443
       real=192.168.2.71:443 masq 65000
       real=192.168.2.72:443 masq 65000
       real=192.168.2.73:443 masq 65000
       request="vivant.html"
       receive="Je suis vivant."
       checktype=negotiate
       service=https
       scheduler=lblcr
       persistent=3600
       protocol=tcp
       checkport=443

Cette configuration permet de répartir vers nos trois serveurs Web, les protocoles HTTP et HTTPS en validant le contenu de la page "vivant.html".


Arrêt des services

Tous ces services que nous venons de configurer, nous avons dû les lancer pour effectuer les configurations.

Mais ce sera le rôle de Pacemaker de les gérer. Il faut donc les désactiver et les arrêter avant d'aborder la configuration de Pacemaker.

Sur toutes les machines, on effectue ces tâches:

systemctl stop ldirectord.service

systemctl disable ldirectord.service


Configuration de base de Pacemaker

La Configuration de base de Pacemaker doit être effectuée avec quelques modifications car nous avons cinq machines dans le cluster au lieu de deux. Nous allons passer rapidement en revue ces opérations.


Opérations locales

Sur chaque machine:

  • le mot de passe de l'utilisateur "hacluster" est à implémenter. "Chasse4321Eau" pour mémoire.
  • le service "pcsd.service" est à configurer et est lancé.


Initialisation du cluster

Pour initialiser le cluster, on effectue ces opérations sur une seule machine du cluster:

pcs host auth sv1.home.dom sv2.home.dom sv3.home.dom sv4.home.dom sv5.home.dom -u hacluster -p Chasse4321Eau
pcs cluster setup fo_cluster \
 sv1.home.dom addr=192.168.2.71 sv2.home.dom addr=192.168.2.72 sv3.home.dom addr=192.168.2.73 \
 sv4.home.dom addr=192.168.2.74 sv5.home.dom addr=192.168.2.75 \
 transport knet ip_version=ipv4 link transport=udp mcastport=5420


Quorum

Pour la suite:

  • Si nous ignorons la contrainte du "quorum" avec la commande:
pcs property set no-quorum-policy=ignore

le système continuera à tourner mais sans fonctionner si le router est arrêté ou si tous les serveurs Web le sont.

  • Si nous maintenons la contrainte du "quorum" avec la commande:
pcs property set no-quorum-policy=stop

on désire que si aucun router ne tourne, le système Pacemaker s'arrête et de même, si aucun serveur Web ne tourne, le système Pacemaker s'arrête aussi. Notons qu'il est conseillé qu'au moins trois serveurs GlusterFs soient utilisés pour des volumes en réplication. Si un seul serveur GlusterFs s'exécute, le montage pose problème.

Nous n'avons pas trouvé se solution satisfaisante via les votes.

Nous avons opté pour l'utilisation de l'option "auto_tie_breaker" en action son action sur les routers. Cette option activée nécessite qu'au moins un de ces routers soit actif sinon le système Pacemaker s'arrête. Pour la suite, le quorum classique est pris en compte mais avec des conséquences différentes en fonction des machines en action.

Le quorum par défaut est de 3. Donc on peut avoir deux situations:

  • un router et deux serveurs Web
  • deux routers et un serveur Web

pour que le système continue à fonctionner; en dessous le système s'arrête:

  • un router et un serveur Web
  • deux routers


Notons que pour cette fonctionnalité s'active complétement, il faut qu'au moins une ressource des routers soit impliquée dans l'ensemble de la chaîne doit être impliquée. Dans notre cas, c'est l'ordre qui est utilisé.


Modification de la configuration de Corosync

Il faut adapter sur chaque machine du cluster, le fichier "/etc/corosync/corosync.conf". La dernière commande a créé ce fichier.

Ce fichier devient pour la section "quorum":


quorum {
   provider: corosync_votequorum
   auto_tie_breaker: 1
   auto_tie_breaker_node: sv5.home.dom sv4.home.dom
}

Notons que pour que cette modification soit effective, il faut arrêter puis redémarrer le cluster:

pcs cluster stop --all
pcs cluster start --all


Fin de la configuration

Par la même occasion exécutez la fin de la configuration de base:

pcs property set stonith-enabled=false
pcs property set no-quorum-policy=stop

La dernière spécifie que si le quorum n'est pas atteint, les ressources de Pacemaker sont arrêtées.


Configuration des ressources de Pacemaker

Script

On effectue la suite des commandes suivantes à partir d'une des machines du cluster. On peut les mettre dans un script.

Particularité, si on applique ces commandes directement, diverses erreurs apparaissent car tant que mes contraintes ne sont pas mises en routes, le système essaie de lancer la ressource sur toutes les machines.

La solution vient via la création d'un fichier Pacemaker temporaire; ce dernier sera intégré globalement à Pacemaker en fin de traitement. Ce fichier intermédiaire sera nomme "create.xml". Il prend une copie de la configuration de Pacemaker.

Voici le script:


#!/bin/bash
 
pcs cluster cib create.xml
 
pcs -f create.xml resource create ClusterIP0 ocf:heartbeat:IPaddr2 ip=192.168.1.70 nic=eth1 cidr_netmask=24 iflabel=ethcl0 lvs_support=true op monitor interval=30s
pcs -f create.xml constraint location ClusterIP0 prefers sv1.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterIP0 prefers sv2.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterIP0 prefers sv3.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterIP0 prefers sv4.home.dom=100
pcs -f create.xml constraint location ClusterIP0 prefers sv5.home.dom=200
 
pcs -f create.xml resource create ClusterDefaultRoute ocf:heartbeat:Route destination="default" gateway=192.168.2.70 device=eth1 family=ip4 clone
pcs -f create.xml constraint location ClusterDefaultRoute-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterDefaultRoute-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterDefaultRoute-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterDefaultRoute-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterDefaultRoute-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterIP0 then start ClusterDefaultRoute-clone
 
pcs -f create.xml resource create ClusterLdirectord systemd:ldirectord  op monitor interval=30s
pcs -f create.xml constraint location ClusterLdirectord prefers sv1.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterLdirectord prefers sv2.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterLdirectord prefers sv3.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterLdirectord prefers sv4.home.dom=100
pcs -f create.xml constraint location ClusterLdirectord prefers sv5.home.dom=200
pcs -f create.xml constraint order ClusterDefaultRoute-clone then start ClusterLdirectord
pcs -f create.xml constraint colocation add ClusterIP0 with ClusterLdirectord score=INFINITY
 
pcs -f create.xml resource create ClusterGlusterd systemd:glusterd op monitor interval=20s clone
pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterLdirectord then start ClusterGlusterd-clone
 
pcs -f create.xml resource create ClusterRsyncd systemd:rsyncd op monitor interval=30s clone
pcs -f create.xml constraint location ClusterRsyncd-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterRsyncd-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterRsyncd-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterRsyncd-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterRsyncd-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterGlusterd-clone then start ClusterRsyncd-clone
 
pcs -f create.xml resource create ClusterCheckGalera systemd:checkgalera op monitor interval=30s clone
pcs -f create.xml constraint location ClusterCheckGalera-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterCheckGalera-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterCheckGalera-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterCheckGalera-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterCheckGalera-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterRsyncd-clone then start ClusterCheckGalera-clone
 
pcs -f create.xml resource create ClusterFsWeb ocf:heartbeat:Filesystem \
 device="localhost:/diskgfs1" \
 directory="/data" fstype="glusterfs" \
 "options=defaults,_netdev" \
 op monitor interval=20s on-fail=stop clone
pcs -f create.xml constraint location ClusterFsWeb-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterFsWeb-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterFsWeb-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterFsWeb-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterFsWeb-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterCheckGalera-clone then start ClusterFsWeb-clone
 
pcs -f create.xml resource create ClusterHttpd systemd:httpd op monitor interval=30s clone
pcs -f create.xml constraint location ClusterHttpd-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterHttpd-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterHttpd-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterHttpd-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterHttpd-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterFsWeb-clone then start ClusterHttpd-clone
 
pcs -f create.xml resource create ClusterPhp systemd:php-fpm op monitor interval=30s clone
pcs -f create.xml constraint location ClusterPhp-clone prefers sv1.home.dom=100
pcs -f create.xml constraint location ClusterPhp-clone prefers sv2.home.dom=100
pcs -f create.xml constraint location ClusterPhp-clone prefers sv3.home.dom=100
pcs -f create.xml constraint location ClusterPhp-clone prefers sv4.home.dom=-INFINITY
pcs -f create.xml constraint location ClusterPhp-clone prefers sv5.home.dom=-INFINITY
pcs -f create.xml constraint order ClusterHttpd-clone then start ClusterPhp-clone
 
pcs -f create.xml resource create ClusterMailTo ocf:heartbeat:MailTo email=root subject="FailOver_Home" op monitor interval=30s clone
pcs -f create.xml constraint order ClusterPhp-clone then start ClusterMailTo-clone
 
pcs cluster cib-push create.xml


Ajout des ressources sur les serveurs Web

La majorité des ressources sont clonées. En effet les quatre serveurs WEB ont la même configuration. Mais ces ressources ne doivent pas s'exécuter sur le router d'où la contrainte de localisation dont le score est "-INFINITY" sur le router.

  • La ressource "ClusterDefaultRoute" va activer la passerelle par défaut.
  • La ressource "ClusterGlusterd" va activer le service GlusterFs configuré ci-dessus.
  • La ressource "ClusterRsyncd" va activer le service Rsync configuré ci-dessus.
  • La ressource "ClusterCheckGalera" va activer le service CheckGalera configuré ci-dessus qui lancera le service MariaDb.
  • La ressource "ClusterFsWeb" va monter le volume "diskgfs1" local sur le répertoire "/data".
  • La ressource "ClusterHttpd" va activer le service Apache configurée ci-dessus.
  • La ressource "ClusterPhp" va activer le service Php.

Par contre la ressource "ClusterMailTo" doit s'exécuter sur toutes les machines.


Ajout des ressources sur les routers

Les deux dernières ressources "ClusterLdirectord" et "ClusterIP0" ne doivent s'exécuter que sur une seule router en Failover. Ici nous avons mis la préférence sur la machine "sv5.home.dom".


Ordre

Nous avons intercalé le lancement de Rsyncd, MariaDb entre le service Glusterd et le montage du volume afin de laisser à GlusterFs le temps de se lancer.

Nous avons ordonné l'ordre des lancements de ces ressources en commençant par une se situant sur un router.


Statut

Après cette opération, l'état du cluster peut être visualisé par la commande:

crm_mon -1rnf

qui donne dans le cas des cinq machines actives:


Cluster Summary:
 * Stack: corosync (Pacemaker is running)
 * Current DC: sv5.home.dom (version 2.1.6-4.fc38-6fdc9deea29) - partition with quorum
 * Last updated: Sat Jun 24 13:32:39 2023 on sv1.home.dom
 * Last change:  Sat Jun 24 13:24:15 2023 by root via cibadmin on sv1.home.dom
 * 5 nodes configured
 * 42 resource instances configured
 
Node List:
 * Node sv1.home.dom: online:
   * Resources:
     * ClusterDefaultRoute     (ocf::heartbeat:Route):  Started
     * ClusterGlusterd (systemd:glusterd):      Started
     * ClusterRsyncd   (systemd:rsyncd):        Started
     * ClusterCheckGalera      (systemd:checkgalera):   Started
     * ClusterFsWeb    (ocf::heartbeat:Filesystem):     Started
     * ClusterHttpd    (systemd:httpd):         Started
     * ClusterPhp      (systemd:php-fpm):       Started
     * ClusterMailTo   (ocf::heartbeat:MailTo):         Started
 * Node sv2.home.dom: online:
   * Resources:
     * ClusterDefaultRoute     (ocf::heartbeat:Route):  Started
     * ClusterGlusterd (systemd:glusterd):      Started
     * ClusterRsyncd   (systemd:rsyncd):        Started
     * ClusterCheckGalera      (systemd:checkgalera):   Started
     * ClusterHttpd    (systemd:httpd):         Started
     * ClusterPhp      (systemd:php-fpm):       Started
     * ClusterMailTo   (ocf::heartbeat:MailTo):         Started
     * ClusterFsWeb    (ocf::heartbeat:Filesystem):     Started
 * Node sv3.home.dom: online:
   * Resources:
     * ClusterDefaultRoute     (ocf::heartbeat:Route):  Started
     * ClusterGlusterd (systemd:glusterd):      Started
     * ClusterRsyncd   (systemd:rsyncd):        Started
     * ClusterCheckGalera      (systemd:checkgalera):   Started
     * ClusterHttpd    (systemd:httpd):         Started
     * ClusterPhp      (systemd:php-fpm):       Started
     * ClusterMailTo   (ocf::heartbeat:MailTo):         Started
     * ClusterFsWeb    (ocf::heartbeat:Filesystem):     Started
 * Node sv4.home.dom: online:
   * Resources:
     * ClusterMailTo   (ocf::heartbeat:MailTo):         Started
 * Node sv5.home.dom: online:
   * Resources:
     * ClusterIP0      (ocf::heartbeat:IPaddr2):        Started
     * ClusterLdirectord       (systemd:ldirectord):    Started
     * ClusterMailTo   (ocf::heartbeat:MailTo):         Started
 
Inactive Resources:
 * Clone Set: ClusterDefaultRoute-clone [ClusterDefaultRoute]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 * Clone Set: ClusterGlusterd-clone [ClusterGlusterd]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 * Clone Set: ClusterRsyncd-clone [ClusterRsyncd]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 * Clone Set: ClusterCheckGalera-clone [ClusterCheckGalera]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 * Clone Set: ClusterFsWeb-clone [ClusterFsWeb]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 * Clone Set: ClusterHttpd-clone [ClusterHttpd]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 * Clone Set: ClusterPhp-clone [ClusterPhp]:
   * Started: [ sv1.home.dom sv2.home.dom sv3.home.dom ]
   * Stopped: [ sv4.home.dom sv5.home.dom ]
 
Migration Summary:


Client

Pour atteindre le site Web, le client doit introduire l'URL: https://cluster.home.dom/

Cette machine "cluster.home.dom" doit être liée à l'adresse IP "192.168.1.70" via le fichier "hosts" ou le serveur DNS.






retour au menu de la Haute disponibilité