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 :

8 Comments

  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é.

  3. Bonjour Fred,

    Merci pour ton blog rempli d’info super intéressante !
    J’ai une petit question pour toi :
    j’ai actuellement deux serveurs, un sur lequel il y a Vmware avec ESX 8 et toutes mes VMS de Prods et un autre sur lequel j’ai commencer a installer ESX mais pour finir l’entreprise voudrait passer sur proxmox a cause du coup des licenses Vmware.
    Sur le deuxième serveur je vais pouvoir facilement installer Proxmox comme il n’y a rien dessus.
    J’aimerais a therme avoir les deux serveurs avec Proxmox et de la haute disponiblité, pouvoir faire l’équivalent du vmotion etc.
    Point de vue stockage (et c’est la que ça bloque pour moi), le stockage est interne aux serveurs , j’ai un serveur Dell et un HP tous les deux avec des SSD et des MNVE.

    J’aimerais configurer mon serveur DELL de manière a ce que je puises créer l’équivalant d’un Vsan transféré toutes mes Vms de prod de Vmware vers le proxmox et réinstaller le premier serveur en proxmox aussi et étendre le pseudo Vsan avec sa mémoire a lui.

    Je ne sais même pas si cest possible en Proxmox et encore moins comment

    Aurais-tu des pistes, des tutos a me conseiller ?

    D’avance un tout grand merci.

  4. Bonjour Eric,
    cet article date de 2015, depuis la HA sous Proxmox est obligatoirement sur 3 noeuds.
    Si tu veux rester uniquement sur deux noeuds, je te conseils de mettre en place de la réplication (https://memo-linux.com/proxmox-5-cluster-2-noeuds-avec-un-stockage-replique/) mais pour l’avoir fait, je te conseil quand même 3 noeuds pour la continuité de service (le troisième noeud peut être une machine moins performante, qui servira uniquement de quorum).

    Pour transférer tes VM ESXi vers Proxmox, faut ajouter l’ESXi comme stockage dans Proxmox (je n’ai pas encore écris d’article à ce jour).

    Sous Proxmox, il n’y a pas de VMotion, VSpère ou VSan mais il existe un nouveau projet -> https://pve.proxmox.com/wiki/Proxmox_Datacenter_Manager_Roadmap

    Bon courage

  5. Helle Fred,

    Merci pour tes conseilles

    Donc je peux avoir mes deux serveurs esx ( dell et hpe ) et prendre un plus petit serveur juste pour installer le Quorum, as-tu une idée de la puisses que doit avoir le serveur et la capacité de stockage ?
    j’ai cru comprendre qua ça pouvait être une machine plus petite mais je n’ai pas de stockage externalisée et partager entre les deux esx. mais j’imagine qu’il y a quand même moyen de faire un Datastore partager entre les deux serveurs avec la totalité des disques des deux serveurs ?

    Encore merci pour ton temps.

  6. Alors oui pour de la HA faut du stockage partagé
    Le troisième noeud peut avoir juste un petit RAID1 pour l’OS et pas de stockage
    Pour résumer si tu veux faire de la HA avec Proxmox faut trois noeuds et un stockage partagé (interne -> Ceph ou externe -> SAN ou NAS)

  7. Ok parfait donc je peux faire un stockage partager en Ceph avec le premier serveur et puis rajouter les autres au dur et a mesure ? Merci pour tout

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 la façon dont les données de vos commentaires sont traitées.