Mettre en place un cluster haute disponibilité

EOLE propose un service de haute disponibilité[1] dont le rôle principal est de garantir la disponibilité d'un service et son bon fonctionnement. Ce service repose sur les logiciels libres Corosync[2] pour mettre les serveurs utilisés en cluster[3] [1] et Pacemaker[4] pour la gestion des ressources (démarrage, arrêt et supervision des ressources du cluster).

http://clusterlabs.org/

Dans le cas d'EOLE l'implémentation du logiciel permet un cluster de deux machines (maître/esclave ou actif/passif). Chaque machine est un nœud du cluster.

Le dialogue entre les nœuds du cluster s'effectue en multicast[5].

Conseil

Il est recommandé d'utiliser une interface réseau dédiée pour le dialogue inter nœud.

Il est possible, depuis l'interface de configuration du module, d'activer ou non ce service.

Il est préférable de réaliser des liaisons physiques directes entre les nœuds.

La génération de la configuration se fait à l'aide du script appliquer_hautedispo.

Installer et configurer un module Sphynx qui sera la machine maître.

Installer et configurer un module Sphynx qui sera la machine esclave.

Sur le serveur Sphynx maître, exécuter l'instance à l'aide de la commande :

# instance

À la question Voulez vous synchroniser les nœuds ? il ne faut rien saisir et passer l'autre machine.

Sur le serveur Sphynx esclave, exécuter l'instance à l'aide de la commande :

# instance

À la question Voulez vous synchroniser les nœuds ? répondre oui (les deux serveurs Sphynx doivent pouvoir communiquer en SSH).

Au moment de l'envoi de la clé RSA sur le serveur Sphynx, saisir le mot de passe de l'utilisateur root du serveur Sphynx maître.

À la question Voulez vous attendre le script synchro-nodes.sh soit exécuté sur le nœud maître ? il ne faut rien saisir et passer l'autre machine.

Sur le serveur Sphynx maître, à la question Voulez vous synchroniser les nœuds ?, toujours en attente, il faut répondre oui.

Au moment de l'envoi de la clé RSA sur le serveur Sphynx esclave, saisir le mot de passe de l'utilisateur root du serveur Sphynx esclave.

Terminer la procédure d'instanciation en répondant aux 2 autres questions.

Remarque

Si vous êtes connecté en SSH avec la fonctionnalité transfert d’agent[6] (option par défaut de la commande ssh) et que la clé privée a été copiée sur le serveur distant, la phrase secrète n'est pas demandée.

Sur le serveur Sphynx esclave, à la question Voulez vous attendre le script synchro-nodes.sh soit executé sur le nœud maître ?, toujours en attente, il faut répondre oui.

Terminer la procédure d'instanciation en répondant aux 2 autres questions.

Sur le serveur Sphynx esclave, exécuter la commande diagnose :

# diagnose

Les compte rendus sont à OK.

Sur le serveur Sphynx maître, exécuter la commande diagnose :

# diagnose

Les compte rendus sont à OK.

Sur le serveur Sphynx maître, afficher le contenu du fichier /etc/ha.d/.rsc_list :

# cat /etc/ha.d/.rsc_list

Les ressources suivantes de type service sont présentes :

ipsec_rsc

arv_rsc

Sur le serveur Sphynx esclave, afficher le contenu du fichier /etc/ha.d/.rsc_list :

# cat /etc/ha.d/.rsc_list

Les ressources suivantes de type service sont présentes :

ipsec_rsc

arv_rsc

Sur le serveur Sphynx maître :

# crm_mon -1

La sortie de crm_mon permet de visualiser l'état du cluster.

À la ligne Online toutes les machines actives sont visibles : le serveur Sphynx maître et le serveur Sphynx esclave.

Exemple

Ressources démarrées sur le serveur Sphynx maître :

VIP_externe

VIP_interne

VIP_src_addr

ipsec_rsc

arv_rsc

Exemple

Ressources démarrées sur les 2 nœuds :

gw_pingd_clone

La commande crm_mon permet d'afficher l'état du cluster, l'option -1 –one-shot affiche l'état à un seul instant et quitte.Il est également possible d'utiliser la commande crm status. Cette commande peut aussi bien être utilisé dans l'interface de configuration du cluster.