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 | ||
pacemaker_tutoriel_ip_plus_script_lsb [Le 29/06/2010, 19:39] 86.210.64.20 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Lucid tutoriel pacemaker BROUILLON}} | ||
- | ---- | ||
- | |||
- | ====== Cluster de deux machines ip virtuelle + supervision service ====== | ||
- | |||
- | <note important> | ||
- | Cet article est en cours de rédaction. Si vous avez des améliorations à apporter ou des sugestions à me proposer n'hésitez pas à me contacter via la mailling list de la documentation. | ||
- | </note> | ||
- | |||
- | |||
- | Ce tutoriel est une sous partie de la documentation pacemaker. Il décrit les différentes étapes de configuration du cluster par l'intermédiaire du crm. | ||
- | |||
- | Le but de cette configuration est de crée un cluster de serveur web (ou de reverse proxy) dedeux machines. Une adresse virtuelle est partagée entre les deux machines, lorsque l'une d'entre elle est hors ligne l'autre machine peut prendre le relais automatiquement. | ||
- | |||
- | Détails des étapes de la configuration: | ||
- | |||
- | - Adresse ip virtuelle partagée entre les deux menbres du cluster ici 192.168.1.100 | ||
- | - Lancement, arrêt et supervision d'un service par l'intermédiaire d'un script d'initialisation compatible LSB (ici nginx) | ||
- | - clonage le service nginx devra être démarrée sur les deux machines | ||
- | - ordonancement des ressources le service (nginx) devra être démarrée pour que l'adresse ip virtuelle soit attribuée à un membre du cluster | ||
- | |||
- | ===== Pré-requis ===== | ||
- | |||
- | * Disposer des [[:sudo|droits d'administration]]. | ||
- | * Bien connaître le principe de fonctionnement de [[pacemaker]]. | ||
- | * Comprendre le principe de norme LSB pour les scripts d'initialisation. | ||
- | | ||
- | |||
- | <note> | ||
- | Les scripts d'initialisation sont ceux disponible 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. | ||
- | </note> | ||
- | * Avoir effectuer 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]]. | ||
- | |||
- | ===== Configuration ===== | ||
- | |||
- | Entrer dans le mode de configuration du cluster | ||
- | |||
- | sudo crm configure | ||
- | | ||
- | Premierement nous allons désactivé 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 hors ligne | ||
- | * quorum indique le nombre minimal de membres pour prendre une décision. Ce paramètre est utile pour les cluster de plus de deux machines | ||
- | |||
- | |||
- | désactivation du mode stonith | ||
- | |||
- | property stonith-enabled=false | ||
- | |||
- | désctivation du paramètre quorum | ||
- | |||
- | property no-quorum-policy=ignore | ||
- | |||
- | Supervision d'un service grace à son script situé dans le dossier /etc/init.d. Pacemaker s'assurera qu'il est bien lancé toutes les 5 secondes. | ||
- | |||
- | Avant toute chose pensez à désactiver le démarage automatique du démon avec la commande ci dessous | ||
- | |||
- | sudo update-rc.d -f nginx remove | ||
- | |||
- | Syntaxe de base | ||
- | |||
- | primitive <nom de la ressource (ce que vous voulez)> lsb::<nom du démon> op monitor interval=5s | ||
- | |||
- | Dans notre cas | ||
- | |||
- | primitive reverse-proxy lsb::nginx op monitor interval=5s | ||
- | | ||
- | Clonage de la ressource pour que le démon nginx soit démarré sur les deux machines | ||
- | |||
- | Syntaxe de base | ||
- | |||
- | clone <nom de la ressource> <nom de la ressource à cloner> | ||
- | |||
- | Dans notre cas | ||
- | | ||
- | clone clone_reverse_proxy reverse-proxy | ||
- | | ||
- | Création d'une ip virtuelle partagée entre les deux membres du cluster | ||
- | |||
- | primitive <nom de la ressource> ocf:heartbeat:IPaddr2 params ip="<adresse ip virtuelle>" broadcast="<adresse de broadcast>" cidr_netmask="<masque en écriture décimal>" nic="<nom de l'interface virtuelle>" meta target-role="started" migration-threshold="2" op monitor interval="<interval de temps de supervision>" | ||
- | | ||
- | explications: | ||
- | |||
- | ^ Options ^ explications ^ | ||
- | | target-role | started ou stopped l'état dans lequel pacemaker doit maintenir la ressource | | ||
- | | migration-threshold | nombre de fois maximal d'échec de la ressource, après le nombre de tentatives la machine est déclarée inéligible pour recevoir la ressource | | ||
- | |||
- | |||
- | |||
- | Dans notre cas | ||
- | | ||
- | primitive ip_virtuelle ocf:heartbeat:IPaddr2 params ip="192.168.1.100" broadcast="192.168.1.255" cidr_netmask="24" nic="eth0:0" meta target-role="started" migration-threshold="2" op monitor interval="10s" | ||
- | |||
- | Par défaut pacemaker répartie les ressources entre les membres du cluster. Bien qu'ici une des ressource soit clonée il est préférable de crée un lien entre les deux ressources clone_reverse_proxy et ip_virtuelle | ||
- | |||
- | Syntaxe de base | ||
- | |||
- | colocation link-ressources INFINITY: <nom de la première ressource> <nom de la deuxième> | ||
- | | ||
- | Dans notre cas | ||
- | |||
- | colocation link-ressources INFINITY: clone_reverse_proxy ip_virtuelle | ||
- | | ||
- | Il est aussi nécéssaire d'établir un ordre de démmarage 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 | ||
- | |||
- | order <nom de la ressource> mandatory: <première ressource à lancer> <deuxième ressource> | ||
- | |||
- | Dans notre cas | ||
- | |||
- | order demon_before mandatory: clone_reverse_proxy ip_virtuelle | ||
- | | ||
- | Il peut aussi être intéressant de choisir une machine préférée pour accueillir la ressource. Ici nous voulons que l'adresse ip virtuelle soit activée par défaut sur la machine1. | ||
- | |||
- | Syntaxe de base | ||
- | |||
- | location <nom ressource> <nom de la ressource> <score>: <nom du poste> | ||
- | | ||
- | Dans notre cas | ||
- | |||
- | location node-master ip_virtuelle 50: machine1 | ||
- | |||
- | Vérifier que votre configuration est correcte, normalement l'analyse ne doit pas rapporter d'erreurs | ||
- | |||
- | verify | ||
- | | ||
- | Puis appliquez votre configuration au cluster | ||
- | |||
- | commit | ||
- | |||
- | |||
- | ===== Voir aussi ===== | ||
- | |||
- | * **(fr)** [[pacemaker|fiche du logiciel pacemaker]] | ||
- | |||
- | |||
- | |||
- | ---- | ||
- | //Contributeurs principaux : [[:utilisateurs:Miam Miam]].// | ||
- | |||