Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
pacemaker [Le 28/01/2013, 22:23] – [Désinstallation] 86.66.176.54 | pacemaker [Le 19/08/2019, 21:25] (Version actuelle) – alignement corrigé 208.111.85.190 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Pacemaker ====== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Pacemaker est un gestionnaire de cluster haute disponibilité. Il est chargé de démarrer, arrêter et superviser les ressources du cluster. Ce projet est supporté par les entreprises Red Hat, Novel et Linbit. Un cluster est un groupe de deux ou plusieurs machines. | ||
+ | |||
+ | Pour des services vraiment délicats comme un serveur web il peut être intéressant de configurer deux serveurs webs sur deux machines physiques. Si l'un des deux serveurs tombe en panne pacemaker se chargera de remplacer le serveur défaillant par le deuxième. L' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Comme l'on peut le voir sur le schéma, Pacemaker s' | ||
+ | |||
+ | < | ||
+ | Une interface java développée par la société [[http:// | ||
+ | \\ \\ | ||
+ | Cette interface permet à partir d'un [[: | ||
+ | \\ \\ | ||
+ | Cette interface est initialement prévue pour mettre en place la technologie de raid réseau [[:drbd]]. Bien entendu dans le cas présent, nous n' | ||
+ | \\ \\ | ||
+ | Il est tout de même conseillé de bien comprendre la configuration en ligne de commande avant d' | ||
+ | \\ \\ | ||
+ | Téléchargez l' | ||
+ | </ | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * Savoir ce qu'est la notion de [[haute disponibilité]] | ||
+ | * Avoir des rudiments de connaissances concernant les réseaux | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Pour installer ce logiciel, il suffit d' | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | Dans cet exemple nous mettrons en place un cluster de deux machines. Avant de passer à la configuration du cluster, il est nécessaire de faire quelques modifications pour que les deux machines puissent communiquer entre elles. | ||
+ | |||
+ | Voici un tableau de la configuration qui sera utilisée par la suite : | ||
+ | |||
+ | | ^ Nom de poste ^ Adresse IP ^ | ||
+ | ^ pc 1 | machine1 | ||
+ | ^ pc 2 | machine2 | ||
+ | |||
+ | |||
+ | ==== Configuration des machines ==== | ||
+ | |||
+ | === Modification du nom des machines === | ||
+ | |||
+ | Donner des noms différents à chacune des machines permettra d' | ||
+ | |||
+ | sudo hostname <nom de machine> | ||
+ | |||
+ | [[: | ||
+ | |||
+ | Fermez votre session et reconnectez vous | ||
+ | | ||
+ | [[: | ||
+ | | ||
+ | Vous devriez voir un contenu semblable à celui-ci (le nom de machine dépend bien sûr de votre configuration) : | ||
+ | < | ||
+ | 127.0.0.1 | ||
+ | 127.0.1.1 | ||
+ | </ | ||
+ | |||
+ | Rajoutez ceci: | ||
+ | < | ||
+ | 127.0.0.1 | ||
+ | 192.168.1.101 machine1 | ||
+ | 192.168.1.102 machine2 | ||
+ | </ | ||
+ | |||
+ | === Configuration des adresses IP des interfaces === | ||
+ | |||
+ | Fixez les adresses IP des machines en suivant cette [[: | ||
+ | |||
+ | Pensez à configurer les serveurs DNS. | ||
+ | |||
+ | [[: | ||
+ | < | ||
+ | nameserver <adresse ip serveur dns> | ||
+ | </ | ||
+ | |||
+ | ==== Configuration de la partie exécutive du cluster ==== | ||
+ | |||
+ | Comme énoncé précédemment, | ||
+ | |||
+ | === Configuration de corosync === | ||
+ | |||
+ | |||
+ | Création d'une clé d' | ||
+ | |||
+ | corosync-keygen | ||
+ | |||
+ | <note tip> | ||
+ | Si vous êtes connecté au poste à distance. Ouvrez une autre session et téléchargez un fichier pour créer des entrées/ | ||
+ | </ | ||
+ | |||
+ | Envoi de ce fichier et modification des droits de ce fichier sur l' | ||
+ | |||
+ | sudo scp / | ||
+ | | ||
+ | Sur la machine 2 | ||
+ | |||
+ | sudo mv ~/authkey / | ||
+ | sudo chown root:root / | ||
+ | sudo chmod 400 / | ||
+ | | ||
+ | [[: | ||
+ | |||
+ | La partie du fichier à modifier est la partie concernant la configuration de l' | ||
+ | < | ||
+ | interface { | ||
+ | # The following values need to be set based on your environment | ||
+ | ringnumber: 0 | ||
+ | bindnetaddr: | ||
+ | mcastaddr: 226.94.1.1 | ||
+ | mcastport: 5405 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ^ Options | ||
+ | | ringnumber | ||
+ | | bindnetaddr | Correspond au réseau configuré sur la carte allant servir pour les tests entre membres | | ||
+ | | mcastaddr | ||
+ | | mcast port | Port multicast utilisé | ||
+ | |||
+ | === Activer le démon corosync === | ||
+ | |||
+ | [[: | ||
+ | |||
+ | Faites la modification suivante : | ||
+ | < | ||
+ | START=yes | ||
+ | </ | ||
+ | |||
+ | Lancement des deux démons sur les deux membres : | ||
+ | |||
+ | / | ||
+ | | ||
+ | Affichage de l' | ||
+ | |||
+ | sudo crm_mon --one-shot | ||
+ | |||
+ | Le résultat de la commande devrait ressembler à cela : | ||
+ | < | ||
+ | Last updated: Mon May 3 10:08:55 2010 | ||
+ | Stack: openais | ||
+ | Current DC: Ha-proxy-master - partition with quorum | ||
+ | Version: 1.0.8-2c98138c2f070fcb6ddeab1084154cffbf44ba75 | ||
+ | 2 Nodes configured, 2 expected votes | ||
+ | 0 Resources configured. | ||
+ | ============ | ||
+ | Online: [ machine1 machine2 ] | ||
+ | </ | ||
+ | |||
+ | === Configuration avancée de corosync === | ||
+ | |||
+ | Il peut être judicieux de configurer plusieurs interfaces redondantes pour le lien entre les deux postes. | ||
+ | |||
+ | Pour cela il suffit de déclarer une deuxième interface avec le paramètre **// | ||
+ | < | ||
+ | interface { | ||
+ | ringnumber: | ||
+ | bindnetaddr: | ||
+ | mcastaddr: | ||
+ | mcastport: | ||
+ | } | ||
+ | interface { | ||
+ | ringnumber: | ||
+ | bindnetaddr: | ||
+ | mcastaddr: | ||
+ | mcastport: | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Modifiez le paramètre // | ||
+ | < | ||
+ | rrd_mode: active | ||
+ | </ | ||
+ | |||
+ | |||
+ | ^ Options ^ Description | ||
+ | | active | ||
+ | | passive | La deuxième est utilisée seulement dans le cas où la première ne fonctionne plus | | ||
+ | |||
+ | ===== Commandes de gestion du cluster ===== | ||
+ | |||
+ | === Informations sur l' | ||
+ | |||
+ | * Affichez l' | ||
+ | |||
+ | |||
+ | ^ Options | ||
+ | | -f | Permet d' | ||
+ | | -1 --one-shot | ||
+ | |||
+ | === Action sur les postes et les ressources === | ||
+ | |||
+ | * Accéder à l' | ||
+ | |||
+ | |||
+ | ^ Commandes | ||
+ | | help | Liste les commandes disponibles | | ||
+ | | status | ||
+ | | end, | ||
+ | | quit, | ||
+ | |||
+ | |||
+ | * Mettre un poste en maintenance :< | ||
+ | * Sortir un poste de maintenance :< | ||
+ | * Migrer une ressource vers un autre poste :< | ||
+ | * Annuler la migration de la ressource :< | ||
+ | * Mettre à zéro les compteurs d' | ||
+ | * Mettre à zéro l' | ||
+ | |||
+ | === Modification de la configuration du cluster === | ||
+ | |||
+ | * Entrer dans la mode de configuration :< | ||
+ | | ||
+ | == Modifier la configuration d'un cluster en activité == | ||
+ | |||
+ | * Créer une copie de la configuration actuelle :< | ||
+ | crm(live)# cib new copy_config</ | ||
+ | * Utiliser la copie de la configuration :< | ||
+ | * Entrer dans le mode de configuration :< | ||
+ | * Voir la configuration :< | ||
+ | * Vérifier sa configuration :< | ||
+ | * Supprimer une ressource :< | ||
+ | * Appliquer la nouvelle configuration au cluster :< | ||
+ | |||
+ | ===== Configuration de clusters===== | ||
+ | |||
+ | Cette section regroupe tous les liens vers des tutoriels proposant des configurations de cluster. Si cette documentation vous a permis de comprendre et d' | ||
+ | |||
+ | ==== Cluster de deux machines ==== | ||
+ | |||
+ | Suivez le tutoriel **[[tutoriel: | ||
+ | |||
+ | ===== Supervision du cluster ===== | ||
+ | |||
+ | ==== Trap snmp ==== | ||
+ | |||
+ | Pacemaker gère l' | ||
+ | |||
+ | ==== Supervision avec l' | ||
+ | |||
+ | Cette partie s' | ||
+ | |||
+ | Il est possible de créer un script permettant de savoir si les compteurs d' | ||
+ | |||
+ | [[: | ||
+ | | ||
+ | Contenu de ce script : | ||
+ | < | ||
+ | OK_STATE=0 | ||
+ | WARNING_STATE=1 | ||
+ | CRITICAL_STATE=2 | ||
+ | cnt=0 | ||
+ | |||
+ | cnt=`sudo crm_mon -1f | grep -q fail-count` | ||
+ | |||
+ | if [ $? -eq 0 ] | ||
+ | then | ||
+ | echo " | ||
+ | exit $WARNING_STATE | ||
+ | else | ||
+ | |||
+ | echo "OK: all ressources are working properly" | ||
+ | exit $OK_STATE | ||
+ | |||
+ | fi</ | ||
+ | Déclarer le script dans la configuration de l' | ||
+ | |||
+ | [[: | ||
+ | < | ||
+ | command[check_pacemaker]=/ | ||
+ | </ | ||
+ | |||
+ | ===== Désinstallation ===== | ||
+ | |||
+ | Pour supprimer cette application, | ||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * **(en)** [[http:// | ||
+ | * **(en)** [[http:// | ||
+ | * **(en)** [[http:// | ||
+ | * **(en)** [[https:// | ||
+ | * //Basé sur l' | ||
+ | |||
+ | |||
+ | ---- | ||
+ | // | ||
+ | |||
+ | Mise en forme : // | ||