« LINUX:Pacemaker - deux routers en failover - trois serveurs WEB en Loadbalancing, Galera et GlusterFs » : différence entre les versions

Aucun résumé des modifications
Aucun résumé des modifications
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 45 : Ligne 45 :
   
   
  192.168.1.70 cluster.home.dom cluster
  192.168.1.70 cluster.home.dom cluster
  192.168.1.75 cluster5.home.dom cluster5
  192.168.1.75 lb5.home.dom lb5
  192.168.1.74 cluster4.home.dom cluster4
  192.168.1.74 lb4.home.dom lb4
  192.168.2.75 sv5.home.dom sv5
  192.168.2.75 sv5.home.dom sv5
  192.168.2.74 sv4.home.dom sv4
  192.168.2.74 sv4.home.dom sv4
Ligne 65 : Ligne 65 :
=Configuration des services sur les serveurs Web=
=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:  
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". Voyez l'article sur le [[LINUX:Routage statique|Routage statique]].
"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]":
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]":
Ligne 71 : Ligne 76 :
  [ipv4]
  [ipv4]
  ...
  ...
  route1=192.168.1.0/24,192.168.2.75,101
  route1=192.168.1.0/24,192.168.2.75,201
  route2=192.168.1.0/24,192.168.2.74,102
  route2=192.168.1.0/24,192.168.2.74,202
----
----
 
Ou on le fait via l'interface utilisateur texte:
 
nmtui
==Routage==
Voyez l'article sur le [[LINUX:Routage statique|Routage statique]].
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".




Ligne 336 : Ligne 340 :
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.
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 doit être inexistant au démarrage.
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:
Voici le script:
Ligne 369 : Ligne 373 :
   
   
  pcs -f create.xml resource create ClusterGlusterd systemd:glusterd op monitor interval=20s clone
  pcs -f create.xml resource create ClusterGlusterd systemd:glusterd op monitor interval=20s clone
pcs constraint order ClusterLdirectord then start ClusterGlusterd-clone
  pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv1.home.dom=100
  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 sv2.home.dom=100
Ligne 375 : Ligne 378 :
  pcs -f create.xml constraint location ClusterGlusterd-clone prefers sv4.home.dom=-INFINITY
  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 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 resource create ClusterRsyncd systemd:rsyncd op monitor interval=30s clone
Ligne 427 : Ligne 431 :




==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: <nowiki>https://cluster.home.dom/</nowiki>


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