La problématique de la virtualisation des serveurs est devenue une problématique centrale des entreprises. 

Le marché est trusté par des acteurs assez éloignés du monde de l'OpenSource tels que VMWare ou Microsoft. Proxmox constitue donc une alternative particulièrement intéressante et performante. 

Nous vous proposons donc d'étudier comment mettre en œuvre un cluster Proxmox. Ce type d'installation permet de répondre aux besoins suivants : 

  1. Déployer des Containers de type LXC
  2. Déployer des Machines Virtuelles de type KVM (en mode cluster)
  3. Créer un cluster Proxmox avec trois nœuds afin d'assurer une redondance complète 
  4. Permettre l'utilisation de la HA en utilisant un point de montage NFS partagé
  5. Assurer une sauvegarde des machines virtuelles et des containers 
  6. Déployer l'ensemble de notre architecture en utilisant le système de fichiers ZFS en plus du montage NFS

 

Description de l'environnement :

Nous avons à notre disposition un ensemble de cinq serveurs opérationnels composés de la façon suivante : 

  1. 3x serveurs Proxmox 
  2. 1x serveur NFS FreeNAS
  3. 1x serveur de backup FreeNAS

Cluster Proxmox NFS
 

Les trois serveurs Proxmox sont en cluster : c'est à dire qu'ils partagent un même réseau et échangent des informations qui permettent à tous les nœuds du cluster d'être au courant de l'ensemble des VM et containers déployés sur le Cluster. 

Les données du Cluster sont généralement échangées sur un réseau distinct du réseau de diffusion des donnés. Autrement dit : il faut prévoir deux réseaux distincts : un pour vos donnés et un pour les échanges internes au cluster. 

Afin de répondre à ces besoins, nous utilisons OpenVSwitch. Cette technologie est une technologie de Switch virtuels qui peuvent être déployés sur ProxMox. Attention : afin de disposer d'une version à jour d'OpenVSwitch vous devez avoir un accès au répertoire Entreprise de Proxmox. 

Attention : il faut impérativement démarrer la configuration de votre cluster en utilisant des serveurs Proxmox ou il n'y a aucun container ou VM déployé dessus et aucun service réseau (montage NFS, ZFS, Ceph, …). L'idéal est de démarrer votre configuration avec des serveurs neufs ou qui viennent d'être ré-initialisés. 

 

Mise en œuvre du cluster :

Après vous être synchronisé avec le répertoire entreprise de Proxmox, vous disposerez d'un serveur prêt à être inscrit dans votre cluster. Comme indiqué précédemment, vous devez disposer d'un réseau opérationnel pour votre la communication de votre cluster. 

Les opérations d'inscription du cluster sont assez simple : 

# pvecm add 192.168.21.11

Vous pouvez vérifier que votre cluster est opérationnel avec la commande suivante : 

# pvecm status
Quorum information
------------------
Date:             Mon Jul 11 18:23:06 2016
Quorum provider:  corosync_votequorum
Nodes:            3
Node ID:          0x00000003
Ring ID:          80
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2  
Flags:            Quorate 

Membership information
----------------------
    Nodeid      Votes Name
0x00000002          1 192.168.21.10
0x00000001          1 192.168.21.11
0x00000003          1 192.168.21.12 (local)

 

Inscription des serveurs FreeNAS pour NFS et le backup :

Les serveurs s'inscrivent en allant simplement dans l'interface (Datacenter >> Storage >> Add >> NFS) de l'un de vos nœuds de cluster et en ajoutant un serveur de type "NFS". 

Si vous souhaitez utiliser NFS v.4 au lieu de la version 3, il faudra éditer à la main les paramètres de votre serveur NFS dans /etc/pve/storage.cfg et modifier la ligne : 

#options vers=3 
options vers=4

 

Pour activer la prise en compte de la modification de version, il faut démonter à la main le serveur NFS avec une commande umount - puis remonter le point de montage qui sera cette fois bien en version 4. 

# umount /mnt/pve/NFS_LXC

 

Migration d'un serveur KVM en cluster :

Nous disposons maintenant d'un point de montage NFS partagé entre tous les nœuds de notre Cluster. Nous allons maintenant pouvoir migrer un serveur existant vers notre nœud de stockage NFS. 

Je prendrais l'exemple d'un nœud créé avec une image disque de type "raw". Tout d'abord il faut éteindre le serveur et effectuer une sauvegarde à froid. 

Ensuite vous pouvez restaurer ce backup en sélectionnant l'archive VMA sauvegardée. Prenez bien soin de restaurer l'image sur votre point de montage partagé NFS nouvellement créé. 

A la fin de la sauvegarde migrez votre container pour avoir une image QCOW2 et non RAW : 

# qemu-img convert -O qcow2 /mnt/pve/KVM/images/105/vm-105-disk-1.raw /mnt/pve/KVM/images/105/vm-105-disk-1.qcow2

Vous pouvez maintenant démarrer votre machine virtuelle et disposez d'un environnement en haute disponibilité. 

 

Opérations complémentaires importantes : 

Prenez soin de bien effectuer une sauvegarde régulière de votre environnement à deux niveaux : 

  1. Sauvegarde du disque QCOW2 depuis le serveur NFS (il faut utiliser les snapshots ZFS pour ce faire) 
  2. Sauvegarde du répertoire /etv/pve sur le serveur (comme vous êtes en cluster, c'est moins nécessaire, mais soyez certain de bien avoir une sauvegarde à votre disposition en dehors de votre cluster). 

 

Conclusion et liens 

Vous disposez maintenant d'un cluster opérationnel. Attention aux opérations de maintenance de votre cluster qui peuvent être assez délicates (supression de nœuds, ajout de nœuds et autres opérations effectuées directement sur le cluster). 

Si vous souhaitez disposer d'une assistance pour la mise en œuvre de votre cluster, contactez-nous et faites-nous part de votre projet, nous serons ravis de vous aider pour cette mise en œuvre. 

Pour approfondir vous pouvez regarder :