3

Proxmox : mise en place de 2 nœuds en Haute disponibilité(HA)

Cet article est un mémo pour mes besoins sur comment mettre en place un cluster de haute disponibilité avec 2 nœuds Proxmox.

proxmox-001

Il se peut qu’il manque certaines précisions, dans ce cas je vous invites à lire les 2 sites, que j’ai mis en référence à la fin.

Contexte

Pour mettre en place ma solution de haute disponibilité, je suis confronté aux contraintes suivantes :

  • 2 serveurs maximum pour le cluster,
  • Facilité de mise en œuvre en cas de réinstallation complète (pas de DRBD),
  • Les Vms, qui ont les rôles de : Contrôleur de domaine, DHCP, Proxy et DNS doivent toujours être joignable,
  • Une sauvegarde journalière des VMs ou se trouvent les données vivantes des services en plus de la sauvegarde périodique,
  • Les serveurs de données virtualisés peuvent être indisponible pour une durée maximum de 4heures.
  • Chaque Proxmox et le serveur NFS doivent être supervisé.

Mode de fonctionnement

  • Gestion automatique :
  • Les machines virtuelles sont hébergées sur le serveur NFS et partagées avec les nœuds Proxmox. Seul un Proxmox a la gestion des machines virtuelles et s’il est indisponible, le deuxième nœud prend la main. Lorsque le premier nœud est de nouveau opérationnel, la gestion des Vms reste sur le deuxième nœud Proxmox.

  • Gestion manuel :
  • Dans le cas ou le serveur NFS est injoignable, un technicien active les VMs sur un seul et unique nœud Proxmox.

Architecture serveur

Voici l’architecture qui sera mis en place :
proxmox-vm-ha01

Architecture réseau

Pour faire simple dans l’article, je ne représente que deux interfaces réseau sur les serveurs Proxmox et NFS.

  • Proxmox-01 :
    • eth0 : IP_noeud1
    • eth1 : Ip_Q1
  • Proxmox-02 :
    • eth0 : IP_noeud2
    • eth1 : IP_Q2
  • Serveur NFS :
    • eth0 : IP_NFS
    • eth1 : IP_Q

nb:
La partie sauvegarde des données vivantes n’est pas traité dans cet article.
La création d’une sauvegarde périodique des Vms n’est pas traité dans cet article, mais c’est très simple à mettre en place (Onglet Sauvegarde dans le Centre de données).
La supervision des serveurs Proxmox et NFS sera traitée dans un article futur.

Proxmox en cluster

Voir proxmox: mise en place d’un cluster entre deux serveurs

Serveur NFS

Important :
Suivant la distribution GNU/Linux choisi pour le serveur NFS, il faut prévoir lors du partitionnement un petit espace d’environ 10Mo de libre pour le Quorum.
Voir Debian/Ubuntu : installer et configurer un serveur NFS

Partition ISCSI Quorum

La partition Quorum a pour rôle de garantir la bonne marche du cluster HA lorsqu’il n’y a que 2 nœuds Proxmox. Cette partition doit être sur un troisième noeud, qui sera dans mon cas sur le serveur NFS.

Intervention sur le serveur NFS

  • Création de la partition LVM pour le Quorum :
  • lvcreate -n pve_quorum -L 10M
    
  • Installation du paquet tgt :
  • apt-get install tgt
    
  • Activation au démarrage :
  • update-rc.d tgt enable
    
  • Edition du fichier de configuration de tgt :
    nano /etc/tgt/targets.conf
    
  • Le fichier modifié :
  • <target IP_Q>
           backing-store /dev/deb-quorum-vg/quorum_vg
           initiator-address IP_noeud1
           initiator-address IP_noeud2
    </target>
    
  • Démarrage du service tgt :
  • service tgtd start
    
  • Vérification de la configuration :
  • tgt-admin -s
    

    Exemple de sortie :

    Target 1: IP_Q
        System information:
            Driver: iscsi
            State: ready
        I_T nexus information:
            I_T nexus: 10
                Initiator: iqn.1993-08.org.debian:01:353c04bd8b3 alias: proxmox-01
                Connection: 0
                    IP Address: IP_noeud1
            I_T nexus: 11
                Initiator: iqn.1993-08.org.debian:01:f830c0a48dc4 alias: proxmox-02
                Connection: 0
                    IP Address: IP_noeud2
        LUN information:
            LUN: 0
                Type: controller
                SCSI ID: IET     00010000
                SCSI SN: beaf10
                Size: 0 MB, Block size: 1
                Online: Yes
                Removable media: No
                Prevent removal: No
                Readonly: No
                SWP: No
                Thin-provisioning: No
                Backing store type: null
                Backing store path: None
                Backing store flags: 
            LUN: 1
                Type: disk
                SCSI ID: IET     00010001
                SCSI SN: beaf11
                Size: 13 MB, Block size: 512
                Online: Yes
                Removable media: No
                Prevent removal: No
                Readonly: No
                SWP: No
                Thin-provisioning: No
                Backing store type: rdwr
                Backing store path: /dev/deb-quorum-vg/quorum_vg
                Backing store flags: 
        Account information:
        ACL information:
            IP_noeud1
            IP_noeud2
    

Intervention sur chaque nœud Proxmox

Installation du paquet :

apt-get install tgt

Relance du service :

/etc/init.d/open-iscsi restart

Détection de du partage ISCI :

tail -f /var/log/dmesg
sd 8:0:0:1: [sdc] 24576 512-byte logical blocks: (12.5 MB/12.0 MiB)
sd 8:0:0:1: [sdc] Attached SCSI disk

Création de de partition :

fdisk /dev/sdc
n
p
1
w

Format de la partition Quorum

mkqdisk -c /dev/sdc1 -l pve_quorum

Modification du fichier de configuration du cluster

Intervention à faire sur le serveur Proxmox ou le cluster a été créé.

  • Copie du fichier de configuration :
  • cp /etc/pve/cluster.conf /etc/pve/cluster.conf.new
    
  • Modification du fichier cluster.conf.new :
  • nano /etc/pve/cluster.conf.new
    

    Dans mon cas :

    <?xml version="1.0"?>
    <cluster config_version="2" name="eole">
      <cman expected_votes="3" keyfile="/var/lib/pve-cluster/corosync.authkey"/>
      <quorumd allow_kill="0" interval="1" label="pve_quorum" tko="10" votes="1"/>
      <totem token="54000"/>
    ...
    

    A chaque modification il fait incrémenter de 1 la version du fichier : config_version= »2″.

  • Activation des modifications :
  • ccs_config_validate -v -f /etc/pve/cluster.conf.new
    
  • Relance des services rgmanager et cman :
  • /etc/init.d/rgmanager stop #cela bascule les Vms en mode HA
    /etc/init.d/cman reload #cela active la partition Quorum
    
  • Vérification du bon fonctionnement avec la commande clustat:
  • clustat
    
    Cluster Status for eole @ Fri Apr  3 15:42:25 2015
    Member Status: Quorate
    
     Member Name                                                     ID   Status
     ------ ----                                                     ---- ------
     proxmox-01                                                          1 Online, Local, rgmanager
     proxmox-02                                                          2 Online, rgmanager
     /dev/block/8:17                                                     0 Online, Quorum Disk
    

Configuration dans l’interface web de Proxmox

Pour finir la mise en place du cluster en mode HA, il faut ajouter la gestion des VMs en mode HA :
Cliquer sur « Centre de données » -> sur l’onglet « HA » -> bouton « Ajouter » -> « VM/CT gérée par HA »
proxmox-vm-ha1
Sélectionner les Vms :
proxmox-vm-crer

Et pour finir cliquer sur Activer (sur la capture c’est grisé, mais normalement le bouton est actif) :
proxmox-activer

Dans l’onlet « Résumé » vérifier que RGManager est actif, sinon le démarrer sur le serveur proxmox :

service rgmanager start
service rgmanager status

proxmox-resume

Test du bon fonctionnement

Pour visualiser la bascule des Vms sur le deuxième nœud Proxmox, il suffit d’arrêter le service rgmanager sur le premier nœud (cela évite d’éteindre le serveur pour rien) :

Proxmox-01#service rgmanager stop

Sur le premier nœud les Vms s’arrêtent, basculent sur le deuxième nœud où elles s’activent immédiatement. Alors effectivement, il y a une petite coupure de disponibilité le temps de la bascule. Pour mes besoins, ce n’est pas gênant.

Référence

Je me suis aidé des sites suivants (qui sont très bien fais au passage avec d’excellentes précisions) + le wiki de Proxmox :

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

3 commentaires

  1. J’aime bien ton blog dans lequel il y a toujours plein d’infos intéressantes.
    Je veux mettre en place une plate-forme de virtualisation chez moi et je vois que tu utilises promox. Pourquoi ce choix ? Est-ce que tu en as regardé d’autres ?
    Est-il possible d’afficher localement ou faut-il nécessairement se connecter à distance (comme esxi) ?
    Merci
    PS : j’utilise le même thème que toi sur mon blog et je viens de récupérer la modif que tu as faite sur celui-ci (enlever la bande autour de l’image à la une). Merci !

  2. Bonjour Olivier,
    Pourquoi Proxmox ? car il répond à certains critères de sélections :
    -Libre & Open-Source
    -Interface web d’administration
    -Facilité de prise en main
    -Clustering
    -Multi Users (ACL) …

    Oui, j’en ai regardé d’autre mais seul Proxmox offrait les services recherchés de manière relativement simple.
    Avec Proxmox, tout se fait (enfin presque tout) à travers son interface web, suivant les architectures que tu veux mettre en place, il peut y avoir de la ligne de commande à faire.

    En fait Proxmox, serait le concurrent direct à ESXI en version Libre.

    Pour revenir à l’article, il faut que je le mets à jour car j’ai séparé par un switch les réseaux. La communication entre le serveur NFS et les proxmox est sur un réseau séparé.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.