Mise en place de la haute disponibilité OpenNebula

À partir d'EOLE 2.7.1, le module Hâpy implémente nativement le mode clustering afin de fournir une solution de haute disponibilité[1].

Prérequis

La mise en place de la haute-disponibilité sur Hâpy nécessite au minimum 3 serveurs pour que le cluster soit fonctionnel.

Il faut également disposer de :

  • 4 adresses IP dans le même sous-réseau (une adresse par machine et une adresse IP virtuelle[2]) ;
  • 4 noms DNS pouvant être résolus par les serveurs (un par machine et un pour l'adresse IP virtuelle).

Truc & astuce

Les nœuds à ajouter au cluster doivent avoir une entrée sur le DNS local ou être ajoutés dans le fichier /etc/hosts du module Hâpy maître.

La déclaration des nœuds peut s'effectuer en activant la fonctionnalité Déclarer des noms d'hôtes supplémentaires disponible dans l'onglet expert Réseau avancé.

Installation et configuration des serveurs

Pour commencer, il faut installer les serveurs (nœuds) et en choisir un qui sera le "premier" leader.

Ensuite, il faut saisir la configuration de chacun des serveurs en activant le support de la haute disponibilité en mode expert dans l'onglet Virtualisation.

Le nœud choisi pour être le "premier" leader aura l'index 0.

À partir d'EOLE 2.7.2, une variable supplémentaire permet de déclarer le nom DNS associé à l'adresse IP virtuelle.

Ce nom de domaine permettra de toujours utiliser le nœud master pour d'accéder à l'interface OpenNebula.

Truc & astuce

Les configurations de tous les serveurs sont identiques à quelques détails près :

  • l'adresse IP du serveur ;
  • le nom DNS du serveur ;
  • l'index du serveur dans la liste des nœuds de virtualisation.

Attention

La liste des nœuds de virtualisation doit contenir tous les nœuds du cluster dans l'ordre de leur index.

Instanciation des serveurs de la grappe

  • Instancier tous les nœuds avec un index supérieur à 0 en répondant non à la question concernant l'inscription de nouveaux nœuds dans la grappe ;

  • Instancier le nœud avec l'index 0 et répondre oui à la question concernant l'inscription de nouveaux nœuds dans la grappe ;

    1
    Vous allez inscrire un noeud dans une grappe Hâpy
    2
    Pour ce faire vous devez vous munir du mot de passe de l'utilisateur 'root' de chacun des noeuds
    3
    Voulez-vous commencer ? [oui/non]
    4
    [oui] : 
    5
    6
    7
    Traitement du noeud hapy1
    8
    9
     * Gestion des clés SSH
    10
    11
    [ ... ]
  • Reconfigurer tous les nœuds avec un index supérieur à 0

Vérification de la santé de la grappe

Toutes les commandes doivent être exécutées sur le "leader", le "leader" est le porteur de la VIP, il est donc préférable d'utiliser la VIP pour l'interaction avec la grappe.

Vérifier la "zone"

1
# onezone show 0
2
ZONE 0 INFORMATION
3
ID                : 0
4
NAME              : OpenNebula
5
6
ZONE SERVERS
7
ID NAME            ENDPOINT
8
 0 hapy1.ac-test.f http://hapy1.ac-test.fr/RPC2
9
 1 hapy2.ac-test.f http://hapy2.ac-test.fr/RPC2
10
 2 hapy3.ac-test.f http://hapy3.ac-test.fr/RPC2
11
12
HA & FEDERATION SYNC STATUS
13
ID NAME            STATE      TERM       INDEX      COMMIT     VOTE  FED_INDEX
14
 0 hapy1.ac-test.f leader     1          200        200        0     -1
15
 1 hapy2.ac-test.f follower   1          200        200        1     -1
16
 2 hapy3.ac-test.f follower   1          200        200        2     -1
17
18
ZONE TEMPLATE
19
ENDPOINT="http://localhost:2633/RPC2" 

Vérifier la grappe ONE

1
# onehost list
2
  ID NAME            CLUSTER   TVM      ALLOCATED_CPU      ALLOCATED_MEM STAT
3
   0 hapy1.ac-test.f default     0       0 / 100 (0%)     0K / 1.9G (0%) on
4
   1 hapy2.ac-test.f default     0       0 / 100 (0%)     0K / 1.9G (0%) on
5
   2 hapy3.ac-test.f default     0       0 / 100 (0%)     0K / 1.9G (0%) on

Remarque

Il est possible que les hôtes soient en "err" et non en "on".

Après quelques minutes si les noeuds ne sont pas passé à "on" vous avez un problème.

Espace de stockage réseau répliqué

Le projet eole-glusterfs, basé sur le système de fichier distribué GlusterFS[3], été conçu dans le but de fournir un espace de stockage à une grappe de serveurs Hâpy.

Truc & astuceHowto

Un tutoriel est disponible dans le projet git hebergé sur la forge du pôle :

https://dev-eole.ac-dijon.fr/projects/eole-glusterfs/repository/entry/doc/howto.md