• 4 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 03/12/2024

Mettez en place la haute disponibilité

Assurez la continuité de vos services

Dans le monde numérique d'aujourd'hui, il est essentiel que vos services (web, mail, base de données, logiciels spécifiques…) restent disponibles en permanence. La haute disponibilité (ou HA pour High Availability) est un terme qui désigne le fait de maintenir une continuité de service même en cas de panne. Cela est crucial pour assurer la satisfaction des utilisateurs et maintenir la réputation de votre entreprise.

Dans le cas de la virtualisation, c’est l’hyperviseur qui est l’élément critique puisque s’il tombe en panne, toutes les VMs qu’il héberge s'arrêtent.

Mettre en place la haute disponibilité dans une architecture virtualisée, c’est donc d’abord trouver une solution pour que si l’hyperviseur s’arrête, les VMs qu’il héberge continuent de fonctionner.

D’accord, mais concrètement c’est impossible non ? Les VMs ne peuvent fonctionner que sur un hyperviseur, s’il s’arrête, les VMs s’arrêtent forcément.

Tout à fait ! C’est totalement impossible de conserver des VMs fonctionnelles avec un seul hyperviseur… mais par contre ça devient possible avec 2. ;)

Et oui ! Les développeurs des solutions de virtualisation ont trouvé cette technique ingénieuse où toutes vos VMs sont gérées par plusieurs hyperviseurs (2, 3 ou même plus !) de manière complètement indépendante. De cette manière, si un de vos hyperviseurs rencontre un problème, vos machines virtuelles seront automatiquement déplacées vers un autre hyperviseur disponible, garantissant ainsi que vos applications restent accessibles.

On appelle cela la “migration à chaud” ou live migration.

Diagramme illustrant la migration de VM entre deux hyperviseurs. Hyperviseur 1 héberge VM1 et VM2, tandis qu'Hyperviseur 2 héberge VM3.
Migration à chaud de VMs après la panne de l’hyperviseur 1

Pour que cela fonctionne, il faut évidemment qu’il reste suffisamment de ressources disponibles sur le 2ème hyperviseur et avoir réalisé plusieurs étapes de configuration au préalable dont :

  1. la création d’un cluster d’hyperviseurs ;

  2. la création d’un espace de stockage commun entre les hyperviseurs ;

  3. activer la haute disponibilité pour les VMs qui doivent en bénéficier.

Voyons comment faire cela.

Créez un cluster d’hyperviseurs

D’abord un cluster d'hyperviseurs c’est quoi ? C’est simplement un groupe d’hyperviseurs qui sont capables de gérer les mêmes VMs.

Pour configurer un cluster de d’hyperviseurs, voici ce dont vous aurez besoin :

  1. Au moins 3 serveurs physiques Proxmox VE (ou virtuels dans des environnements de test uniquement) : Oui c’est beaucoup mais c’est le minimum pour que Proxmox VE puisse assurer la redondance et mieux répartir la charge. D’autres solutions comme vSphere n’ont besoin que de 2 serveurs pour permettre la haute disponibilité, mais dans le cas de Proxmox, son fonctionnement un peu différent l’oblige à avoir 3 serveurs. Proxmox fonctionne sur un système de vote pour prendre des décisions. Par exemple, lorsqu’une VM doit redémarrer sur un autre serveur, tous les serveurs doivent voter pour prendre cette décision. Or le vote n’est possible que si le cluster est composé d’un minimum de 3 serveurs.

  2. Un réseau rapide : Un réseau de 10 Gbps est idéal pour garantir des communications fluides entre les nœuds.

  3. Un stockage partagé : un NAS, un SAN ou une solution Ceph pour que toutes les VMs soient accessibles depuis tous les nœuds.

À moins que vous ne soyez revendeur de matériel informatique, ou une entreprise, il y a peu de chances que vous ayez 3 serveurs à votre disposition. Dans ce cas, comme dans les chapitres précédents, je vous propose d’utiliser VirtualBox pour créer ces 3 serveurs virtuellement.

Utiliser Virtualbox est pratique pour faire des tests, mais l’architecture que nous nous apprêtons à réaliser va nécessiter d’avoir beaucoup de RAM sur votre machine hôte : environ 16Go (chaque serveur ayant besoin de 4Go). Si vous n’en avez pas autant, vous pouvez essayer de baisser la quantité de mémoire nécessaire à chaque serveur Proxmox mais ce sera au détriment de la stabilité de votre architecture.

A cette étape du cours, vous avez déjà un serveur virtuel Proxmox VE à disposition. Je vous propose de le cloner pour en avoir 3, ou d’installer 2 nouvelles instances de Proxmox VE.

Attention si vous choisissez de cloner :

  • Supprimez les VMs que vous avez créées sur votre serveur Proxmox sinon elles seront aussi repliquées avec le même nom pendant le clonage ce qui peut poser problème.

  • Assurez-vous que vos 3 VMs aient des Adresses MAC différentes en sélectionnant l’option “Générer de nouvelles adresses” lorsque vous faites les clones. 

  • Leurs adresses IP (dans le réseau privé hôte) devront également être différentes. Vérifiez donc le fichier /etc/interfaces pour chacune d’elles après clonage.

  • Même chose pour le nommage : les 3 serveurs devront avoir un nom différent. Pour modifier le nom utilisez la commande :hostnamectl set-hostname [nouveau_nom]. Modifiez également la correspondance nom/ip dans le fichier /etc/hosts pour que tout soit cohérent.

N’oubliez pas de redémarrer vos machines après chaque étape de configuration logicielle.

Voici l’architecture réseau que je vous propose pour ce cluster :

Diagramme d'un cluster Proxmox avec trois nœuds (pve1, pve2, pve3).
Schéma réseau des 3 hyperviseurs connectés entre eux et à Internet

Encore une fois, je n’ai pas choisi les adresses IP complètement au hasard puisqu’elles appartiennent aux réseaux IP choisis par défaut par VirtuaBox (le réseau 192.168.56.0/24 pour le réseau privé hôte et le 10.0.2.0/24 pour le réseau NAT). À adapter donc selon votre cas.

Vous remarquez aussi sur le schéma que les 3 serveurs Proxmox VE ont des noms différents (pve1, pve2 et pve3) que vous êtes libres de choisir.

A ce stade, avant que vous n’alliez plus loin, vous devez donc avoir vos 3 serveurs Proxmox opérationnels, et être capable d'afficher l’interface web pour chacun d’eux.

Si c’est le cas vous allez pouvoir définir votre cluster.

Rendez-vous sur l’interface web du premier serveur et cliquez sur “Centre de données” à gauche puis sur “grappe de serveurs” et enfin “Créer une grappe de serveurs” :

Fenêtre de création d’une grappe de serveurs.
Fenêtre de création d’une grappe de serveurs

Donnez-lui un nom, comme “cluster”, vérifiez que l’adresse IP sélectionnée est bien celle du réseau qui lie vos 3 serveurs Proxmox (ici le réseau 192.168.56.0/24) et validez.

Le cluster est créé et ne contient alors qu’un seul “noeud” ou serveur. Pour ajouter les autres, cliquez sur “Informations de jonction” pour copier ces informations :

Information de jonction permettant de lier les serveurs Proxmox VE dans le même cluster
Information de jonction permettant de lier les serveurs Proxmox VE dans le même cluster

Il ne reste plus qu’à vous rendre sur les 2 autres serveurs et dans le même menu “Grappe de serveurs”, cliquez sur “Rejoindre une grappe de serveurs” puis de coller les informations :

Fenêtre pour ajouter le nœud pve2 au cluster.
Fenêtre pour ajouter le nœud pve2 au cluster

Entrez le mot de passe administrateur du 1er noeud, sélectionnez l’adresse IP de votre interface connectée aux autres serveurs et cliquer sur “Rejoindre le cluster”.

Vous voyez maintenant apparaître vos 3 noeuds dans la grappe, et vous pouvez donc maintenant piloter vos 3 serveurs en vous connectant à l’interface web d’un seul :

Cluster constitué des 3 noeuds (serveurs) : pve1, pve2 et pve3
Cluster constitué des 3 noeuds (serveurs) : pve1, pve2 et pve3

À ce stade, si vous créez une VM sur un serveur il est déjà possible de la déplacer manuellement sur un autre serveur (clic droit sur la VM puis “Migrer”). Vous pouvez essayer et constater que ça marche bien, mais c'est assez lent car le transfert des données de la machine virtuelle à migrer prend du temps.

C’est déjà un premier pas très satisfaisant, mais ne l’oubliez pas, notre objectif final dans ce chapitre est de mettre en place de la haute disponibilité. On veut donc automatiser la migration lors d’une panne d’un serveur mais on veut aussi que cette migration soit la plus rapide possible.

Pour cela nous allons devoir créer un espace de stockage partagé entre les serveurs pour augmenter la rapidité de transfert des données des VMs entre les serveurs.

Créez un espace de stockage commun

Dans un premier temps nous allons ajouter un nouveau disque dur à chacun de nos serveurs.

Vous pouvez aussi décider de partitionner le disque existant ou d’utiliser un stockage externe, l’important étant que vos 3 Proxmox aient chacun accès à 2 disques de stockage (le disque système et un nouveau disque de stockage).

Sur Virtualbox c’est très simple à faire, il suffit d’éteindre les VMs et de leur ajouter un nouveau disque vdi. Attention les disques doivent être de la même taille pour chacun des serveurs Proxmox :

Ajout d’un disque de 30Go sur le premier serveur Proxmox (pve1)
Ajout d’un disque de 30Go sur le premier serveur Proxmox (pve1)

Une fois l’ajout matériel réalisé sur les 3 serveurs vous pouvez allumer vos machines pour que nous fassions la configuration logicielle.

Allez sur votre interface web et à gauche sélectionnez votre premier serveur, puis allez dans l’onglet “Disques”,  “ZFS” puis “Créer ZFS”.

Création d’un stockage de type ZFS
Création d’un stockage de type ZFS

Nommez le stockage de manière explicite (exemple : stockage_cluster), cochez l’option “Ajouter un stockage” et sélectionnez le nouveau disque de 30Go dont le chemin est ici /dev/sdb. Laissez les autres options par défaut.

Après validation vous voyez apparaître le nouveau stockage dans le panneau latéral.

J’ai choisi de vous montrer un stockage partagé de type ZFS (Zettabyte File System), mais il en existait bien d’autres comme NFS, Ceph, GlusterFS. Chacun possède ses avantages et inconvénients. J’ai choisi ZFS car il est performant et adapté aux petits clusters de 2 ou 3 nœuds. Je vous encourage malgré tout à vous documenter sur les autres types de stockage partagés pour choisir celui qui conviendrait le mieux à l'architecture que vous mettez en place.

Il faut ensuite faire la même opération sur les 2 autres serveurs (pve2 et pve3). Donnez exactement le même nom au stockage mais cette fois en décochant absolument la case “Ajouter un stockage” car on ne souhaite plus définir un nouveau stockage mais se lier au stockage ZFS qu’on vient de créer sur le premier nœud :

Ajout du stockage ZFS “stockage_cluster” sur le 2ème nœud
Ajout du stockage ZFS “stockage_cluster” sur le 2ème nœud

Cette fois vous ne verrez pas s’afficher le stockage partagé sous les 2 autres nœuds dans le panneau latéral et c’est normal. Pour qu’il apparaisse vous devez cliquer à gauche sur “Centre de données”, onglet “Stockage”.

Sélectionnez alors votre stockage partagé puis “Editez” et dans le champ nœuds vous devez sélectionner les 3 serveurs Proxmox VE pour activer le partage de ce stockage :

Modification du stockage ZFS pour qu’il soit partagé entre les 3 noeuds
Modification du stockage ZFS pour qu’il soit partagé entre les 3 noeuds

Vous pouvez alors valider et voir apparaître sur la gauche le stockage sous les 3 nœuds.

Ce stockage sera désormais destiné à contenir  les données de vos VMs et conteneurs. Il faudra donc le préciser lors de leur création ou le modifier si la VM est déjà existante. C’est justement ce qu’on va faire maintenant en créant une nouvelle VM, lorsque vous arrivez à l’étape où vous devez indiquer où sera enregistré le disque dur virtuel de la VM, vous devrez choisir à la place du stockage local le nouveau disque partagé ZFS :

À la création de la VM, onglet “Disque, choisir “stockage_cluster” à la place de “local-lvm”
À la création de la VM, onglet “Disque, choisir “stockage_cluster” à la place de “local-lvm”

Pour la suite, il vous faudra une machine virtuelle opérationnelle, alors je vous laisse en créer une de cette manière.

Activez la réplication et la haute disponibilité

Maintenant que vous avez une VM stockée sur le disque partagé entre les 3 serveurs, il ne vous reste que 2 choses à faire :

  1. Activer et programmer la réplication de votre VM.

  2. Activer la haute disponibilité pour cette même VM.

Commençons par la réplication. Dans le langage Proxmox VE, la réplication est une forme de sauvegarde, mais elle n'est pas conçue pour le même usage qu'une sauvegarde traditionnelle. Il est important de faire la distinction entre les deux :

  • La réplication d’une VM est faite de manière très régulière (plusieurs fois par jour) et est utile en cas de panne pour retrouver très rapidement le dernier état de la VM avant incident.

  • La sauvegarde d’une VM est faite de manière plus espacée (tous les jours ou toutes les semaines) et sert par exemple à retrouver des états passés d’une VM (par exemple juste après installation lorsqu'elle est encore légère et pimpante).

Pour mettre en place de la haute de la haute disponibilité, vous l’aurez compris, notre VM aura besoin d’être répliquée.

Pour cela cliquez sur la VM et aller dans l’onglet “Replication” puis “Ajouter” et définissez sur quel serveur cette VM devra être répliquée et à quelle fréquence :

Planification de la réplication pour VM100 hébergée sur pve1 qui sera répliquée sur pve2 toutes les 30min
Planification de la réplication pour VM100 hébergée sur pve1 qui sera répliquée sur pve2 toutes les 30min

Idéalement il est conseillé de répliquer la VM sur tous les nœuds disponibles. De cette manière, en cas de panne d’un nœud, la VM redémarrera sur le nœud ayant le plus de ressources disponibles. Planifiez donc une seconde réplication de cette même VM sur le 3ème nœud et n’oubliez pas une fois terminé de cliquer “Programmer maintenant” pour qu’une première réplication soit déclenchée immédiatement :

Le bouton “Programmer maintenant” permet de créer une réplication immédiate
Le bouton “Programmer maintenant” permet de créer une réplication immédiate

Les données de votre VM sont maintenant enregistrées sur les 3 serveurs (le serveur sur lequel elles sont hébergées et les 2 serveurs sur lesquels elles sont répliquées). C’est le moment d’activer la haute disponibilité !

Cliquez sur “Centre de données”, puis l’onglet “HA” et faite “Ajouter”, puis sélectionnez la VM que vous venez de répliquer et validez  :

Configuration de la haute disponibilité pour la VM100 qui sera répliquée automatiquement dans l’état démarré (started) en cas de panne
Configuration de la haute disponibilité pour la VM100 qui sera répliquée automatiquement dans l’état démarré (started) en cas de panne

Il ne reste plus qu’à tester que la haute disponibilité fonctionne c’est-à-dire que la VM est migrée automatiquement sur un autre serveur en cas de panne du serveur initial.

Testez la haute dispo

Pour tester c’est très simple, assurez-vous que votre VM répliquée et démarrée sur un des nœuds et éteignez ce nœud.

Si tout se passe bien, après quelques secondes vous verrez la VM être migrée automatiquement puis démarrée :

Sur la panneau latéral gauche, la VM 100 qui était sur pve1 a été migrée sur pve2
Sur la panneau latéral gauche, la VM 100 qui était sur pve1 a été migrée sur pve2

Le laps de temps avant migration est plutôt lent sur une architecture complètement virtuelle. N’oubliez pas que si vous avez fait comme moi, vous avez créé vos Proxmox VE sur des VMs. Vous faites donc de la virtualisation dans la virtualisation et les performances en pâtissent sérieusement d’où la lenteur. Dans ce cas, attendez donc plutôt une ou deux minutes avant que la migration ne soit effective.

Félicitations ! Vous avez maintenant compris comment mettre en place une infrastructure de haute disponibilité avec Proxmox VE. Cette configuration vous permettra de maintenir vos services opérationnels, même en cas de défaillance d'un serveur. En investissant dans la haute disponibilité, vous renforcez la fiabilité de votre infrastructure et assurez une expérience utilisateur optimale.

C’est ici que s’achève notre exploration de Proxmox VE. Il vous reste beaucoup de subtilité à découvrir mais ceci vous donne déjà une très bonne idée de ce dont est capable cet outil.

N'hésitez pas à explorer davantage les options qu’il propose en matière de performance, de sécurité et de haute disponibilité pour maximiser l'efficacité et la robustesse de votre architecture, car il y a de grandes chances que vous soyez amené à l’utiliser un jour en entreprise.

À vous de jouer !

Suite à votre stage réussi chez TechInnovate où vous avez déployé une architecture n-tiers virtualisée sous Proxmox VE pour le service web de l'entreprise, vous avez été recruté en tant qu'administrateur système junior.

Votre premier projet consiste à faire évoluer cette architecture pour la rendre hautement disponible. Le directeur technique souhaite minimiser les temps d'arrêt potentiels et assurer une continuité de service optimale.

L'architecture actuelle comprend 2 machines virtuelles (VM) sur un seul hôte Proxmox :

  1. VM1 : Serveur web frontal

  2. VM2 : Base de données

TechInnovate dispose de deux serveurs physiques supplémentaires, identiques au premier, pour un total de 3 serveurs. L'entreprise a choisi d'utiliser un répertoire partagé de type NFS pour le stockage car l’équipe IT actuelle maîtrise cette technologie.

Voici votre mission :

  1. Concevoir une architecture hautement disponible utilisant les 3 serveurs physiques.

  2. Mettre en place un cluster Proxmox VE avec ces 3 nœuds.

  3. Configurer le stockage partagé NFS nécessaire à la haute disponibilité.

  4. Répartir les VMs sur les noeuds.

  5. Configurer et tester la haute disponibilité pour les 2 VM.

Une fois que vous avez fini, vous avez ce corrigé à disposition.

En résumé

  • La haute disponibilité (HA) permet de maintenir les services accessibles même en cas de panne d'un hyperviseur, grâce à la migration à chaud des VMs vers un autre hyperviseur disponible.

  • Pour mettre en place la HA avec Proxmox VE, il faut configurer un cluster d’hyperviseurs (au moins 3), un stockage partagé accessible par tous les nœuds et activer la réplication des VMs entre les serveurs.

  • La réplication sauvegarde régulièrement l’état des VMs sur plusieurs nœuds pour permettre un redémarrage rapide en cas de panne. Elle se distingue des sauvegardes classiques qui sont moins fréquentes et orientées vers la récupération d'états passés.

  • La mise en place de la HA renforce la fiabilité et la robustesse de votre infrastructure, assurant une continuité de service indispensable pour les entreprises.`

Bravo ! Vous avez atteint la fin de ce cours. Il est temps de faire un quiz pour vérifier ce que vous avez appris.

Exemple de certificat de réussite
Exemple de certificat de réussite