Cet article est un mémo pour mes besoins sur comment mettre en place un cluster de haute disponibilité avec 2 nœuds Proxmox.
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 :
- Gestion manuel :
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.
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 :
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
apt-get install tgt
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
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
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″.
ccs_config_validate -v -f /etc/pve/cluster.conf.new
/etc/init.d/rgmanager stop #cela bascule les Vms en mode HA /etc/init.d/cman reload #cela active la partition Quorum
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 »
Sélectionner les Vms :
Et pour finir cliquer sur Activer (sur la capture c’est grisé, mais normalement le bouton est actif) :
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
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 :
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 !
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é.
Merci ! je vais essayer je pense.
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.
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
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.
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)
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