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.