Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:pacemaker_configuration_ip_virtuelle_plus_script_lsb [Le 01/09/2022, 00:11] moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
tutoriel:pacemaker_configuration_ip_virtuelle_plus_script_lsb [Le 11/09/2022, 12:24] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 24: | Ligne 24: | ||
* Bien connaître le principe de fonctionnement de [[:pacemaker]]. | * Bien connaître le principe de fonctionnement de [[:pacemaker]]. | ||
- | * Comprendre le principe de la norme LSB pour les scripts d'initialisation. | + | * Comprendre le principe de la norme LSB pour les scripts d'initialisation. |
| | ||
Ligne 30: | Ligne 30: | ||
Les scripts d'initialisation sont ceux disponibles dans le répertoire /etc/init.d/. Pacemaker va les utiliser pour démarrer, arrêter et superviser l'état du service. C'est pourquoi ces scripts doivent respecter les normes lsb. Pacemaker a par exemple besoin que les scripts possèdent un argument status. Pour plus d'informations visitez cette [[https://wiki.debian.org/LSBInitScripts|page]] | Les scripts d'initialisation sont ceux disponibles dans le répertoire /etc/init.d/. Pacemaker va les utiliser pour démarrer, arrêter et superviser l'état du service. C'est pourquoi ces scripts doivent respecter les normes lsb. Pacemaker a par exemple besoin que les scripts possèdent un argument status. Pour plus d'informations visitez cette [[https://wiki.debian.org/LSBInitScripts|page]] | ||
</note> | </note> | ||
- | * Avoir effectué le tutoriel officiel en anglais est une bonne chose. [[http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/index.html|lien]] | + | * Avoir effectué le tutoriel officiel en anglais est une bonne chose. [[http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/index.html|lien]] |
* Ne pas avoir peur de lire la documentation officielle de pacemaker qui se trouve [[http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/index.html|ici]]. | * Ne pas avoir peur de lire la documentation officielle de pacemaker qui se trouve [[http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/index.html|ici]]. | ||
Ligne 44: | Ligne 44: | ||
| | ||
- | Premierement nous allons désactiver deux fonctionnalités inutile pour notre cluster | + | Premierement nous allons désactiver deux fonctionnalités inutile pour notre cluster |
* mode stonith "shot the other node in the head" permet lorsqu'une machine n'est plus joignable d'être sur que cette machine soit bien hors ligne | * mode stonith "shot the other node in the head" permet lorsqu'une machine n'est plus joignable d'être sur que cette machine soit bien hors ligne | ||
Ligne 64: | Ligne 64: | ||
- | Avant toute chose pensez à désactiver le démarrage automatique du démon avec la commande ci dessous | + | Avant toute chose pensez à désactiver le démarrage automatique du démon avec la commande ci dessous |
sudo update-rc.d -f nginx remove | sudo update-rc.d -f nginx remove | ||
- | Ensuite nous allons indiquer à pacemaker de superviser le processus nginx. Pour cela il est nécessaire que le logiciel possède un script de démarrage et d'arrêt dans le répertoire /etc/init.d. Ce script doit en outre respecter les normes LSB (si il est est déjà présent il doit sûrement les respecter). A l'avenir c'est pacemaker qui démarrera nginx par intermédiaire de ce script. | + | Ensuite nous allons indiquer à pacemaker de superviser le processus nginx. Pour cela il est nécessaire que le logiciel possède un script de démarrage et d'arrêt dans le répertoire /etc/init.d. Ce script doit en outre respecter les normes LSB (si il est est déjà présent il doit sûrement les respecter). A l'avenir c'est pacemaker qui démarrera nginx par intermédiaire de ce script. |
Instruction permettant à pacemaker de superviser un programme par l'intermédiaire de son script systemV (init script) | Instruction permettant à pacemaker de superviser un programme par l'intermédiaire de son script systemV (init script) | ||
Ligne 76: | Ligne 76: | ||
primitive <nom de la ressource (ce que vous voulez)> lsb::<nom du démon> op monitor interval=5s | primitive <nom de la ressource (ce que vous voulez)> lsb::<nom du démon> op monitor interval=5s | ||
- | Dans notre cas | + | Dans notre cas |
primitive reverse-proxy lsb::nginx op monitor interval=5s | primitive reverse-proxy lsb::nginx op monitor interval=5s | ||
Ligne 86: | Ligne 86: | ||
clone <nom de la ressource> <nom de la ressource à cloner> | clone <nom de la ressource> <nom de la ressource à cloner> | ||
- | Dans notre cas | + | Dans notre cas |
| | ||
clone clone_reverse_proxy reverse-proxy | clone clone_reverse_proxy reverse-proxy | ||
Ligne 100: | Ligne 100: | ||
explications: | explications: | ||
- | ^ Options ^ explications ^ | + | ^ Options ^ explications ^ |
- | | target-role | started ou stopped l'état dans lequel pacemaker doit maintenir la ressource | | + | | target-role | started ou stopped l'état dans lequel pacemaker doit maintenir la ressource | |
- | | migration-threshold | nombre maximal d'échec de la ressource, après lesquels la machine est déclarée inéligible pour recevoir la ressource | | + | | migration-threshold | nombre maximal d'échec de la ressource, après lesquels la machine est déclarée inéligible pour recevoir la ressource | |
| resource-stickiness | Ce paramètre est utile lorsque l'on définit une règle "location" indiquant la machine élue par défaut pour héberger la ressource. Nous ferons une configuration de ce type plus tard. Ce paramètre empêche la ressource de retourner sur la machine élue par défaut après que celle ci est défaillit et soit revenue en ligne. La ressource devra être migrée manuellement. La valeure numérique attribuée à ce paramètre doit être supérieure à celle attribuée dans la règle "location". | | | resource-stickiness | Ce paramètre est utile lorsque l'on définit une règle "location" indiquant la machine élue par défaut pour héberger la ressource. Nous ferons une configuration de ce type plus tard. Ce paramètre empêche la ressource de retourner sur la machine élue par défaut après que celle ci est défaillit et soit revenue en ligne. La ressource devra être migrée manuellement. La valeure numérique attribuée à ce paramètre doit être supérieure à celle attribuée dans la règle "location". | | ||
- | Dans notre cas | + | Dans notre cas |
<code> | <code> | ||
Ligne 118: | Ligne 118: | ||
Par défaut pacemaker répartie les ressources entre les membres du cluster. Bien qu'ici une des ressources soit clonée il est préférable de créér un lien entre les deux ressources //clone_reverse_proxy// et //ip_virtuelle// | Par défaut pacemaker répartie les ressources entre les membres du cluster. Bien qu'ici une des ressources soit clonée il est préférable de créér un lien entre les deux ressources //clone_reverse_proxy// et //ip_virtuelle// | ||
- | Syntaxe de base | + | Syntaxe de base |
colocation link-ressources INFINITY: <nom de la deuxième ressource> <nom de la première ressource> | colocation link-ressources INFINITY: <nom de la deuxième ressource> <nom de la première ressource> | ||
| | ||
- | Dans notre cas | + | Dans notre cas |
colocation link-ressources INFINITY: ip_virtuelle clone_reverse_proxy | colocation link-ressources INFINITY: ip_virtuelle clone_reverse_proxy | ||
Ligne 128: | Ligne 128: | ||
Il est aussi nécessaire d'établir un ordre de démarrage entre les ressources. En effet l'ip virtuelle ne doit être activée que si le démon nginx est lancée | Il est aussi nécessaire d'établir un ordre de démarrage entre les ressources. En effet l'ip virtuelle ne doit être activée que si le démon nginx est lancée | ||
- | Syntaxe de base | + | Syntaxe de base |
order <nom de la ressource> mandatory: <première ressource à lancer> <deuxième ressource> | order <nom de la ressource> mandatory: <première ressource à lancer> <deuxième ressource> | ||
- | Dans notre cas | + | Dans notre cas |
order demon_before mandatory: clone_reverse_proxy ip_virtuelle | order demon_before mandatory: clone_reverse_proxy ip_virtuelle | ||
Ligne 142: | Ligne 142: | ||
location <nom ressource> <nom de la ressource> <score>: <nom du poste> | location <nom ressource> <nom de la ressource> <score>: <nom du poste> | ||
| | ||
- | Dans notre cas | + | Dans notre cas |
location node-master ip_virtuelle 50: machine1 | location node-master ip_virtuelle 50: machine1 | ||
Ligne 179: | Ligne 179: | ||
kill <numéro processus> | kill <numéro processus> | ||
| | ||
- | Vous devriez voir que le compteur d'échec a été incrémenté | + | Vous devriez voir que le compteur d'échec a été incrémenté |
Online: [ machine1 machine2 ] | Online: [ machine1 machine2 ] | ||
Ligne 186: | Ligne 186: | ||
ip_virtuelle (ocf::heartbeat:IPaddr2): Started machine1 | ip_virtuelle (ocf::heartbeat:IPaddr2): Started machine1 | ||
Migration summary: | Migration summary: | ||
- | * Node machine2: | + | * Node machine2: |
- | * Node machine1: | + | * Node machine1: |
reverse-proxy:0: migration-threshold=1000000 fail-count=1 | reverse-proxy:0: migration-threshold=1000000 fail-count=1 | ||
- | et si vous effectuez cette commande | + | et si vous effectuez cette commande |
sudo /etc/init.d/nginx status | sudo /etc/init.d/nginx status | ||
| | ||
- | Elle devrait vous retourner ce retour | + | Elle devrait vous retourner ce retour |
nginx is running | nginx is running | ||
Ligne 208: | Ligne 208: | ||
plop ! | plop ! | ||
| | ||
- | Tuer à nouveau le processus du démon nginx | + | Tuer à nouveau le processus du démon nginx |
Vous devriez obtenir ce résultat | Vous devriez obtenir ce résultat | ||
Ligne 218: | Ligne 218: | ||
ip_virtuelle (ocf::heartbeat:IPaddr2): Started machine2 | ip_virtuelle (ocf::heartbeat:IPaddr2): Started machine2 | ||
Migration summary: | Migration summary: | ||
- | * Node machine2: | + | * Node machine2: |
- | * Node machine1: | + | * Node machine1: |
reverse-proxy:0: migration-threshold=1000000 fail-count=1000000 | reverse-proxy:0: migration-threshold=1000000 fail-count=1000000 | ||