18/09/2024

Les points de contrôle avec Hyper-V

I. Présentation

Hyper-V, comme les autres solutions de virtualisation, est capable de gérer des points de contrôle, que l'on appelle également snapshot, checkpoint ou encore capture instantanée. Dans ce chapitre, nous allons apprendre à utiliser les points de contrôle avec les machines virtuelles Hyper-V.

Le point de contrôle va permettre de prendre une photo à un instant « T » de l’état de l'ordinateur virtuel afin de revenir à cet instant « T » en cas de besoin. Autrement dit, si vous effectuez une manipulation sur la VM et que ça se passe mal, vous pouvez revenir à cet état antérieur.

Remarque : il est essentiel de bien comprendre qu'un point de contrôle n'est pas une sauvegarde et qu'il doit être temporaire. En aucun cas l'utilisation des points de contrôle ne doit venir remplacer la sauvegarde de votre ordinateur virtuel.

C’est un mécanisme intéressant rendu possible grâce à la virtualisation et qui permet d'être plus serein à l'approche d'une opération de maintenance ou d'administration. Par exemple, il est pertinent de créer un point de contrôle avant d'effectuer la mise à jour d'un logiciel métiers sur un serveur. Les logiciels de sauvegarde de machines virtuelles s'appuient aussi sur cette fonctionnalité lors de la création d'une sauvegarde.

II. Hyper-V : points de contrôle standard et de production

Hyper-V supporte deux types différents de points de contrôle : les points de contrôle standard et les points de contrôle de production.

A. Point de contrôle standard

Le point de contrôle standard va capturer l'état, les données et le matériel d'une machine virtuelle à un moment précis. Néanmoins, ce type de point de contrôle n'interagit pas directement avec le système d'exploitation invité de la VM, ce qui ne lui permet pas de capturer les données en mémoire.

Ces points de contrôle ne sont pas adaptés pour un environnement de production, où il faudra préférer le second type de points de contrôle. Ils peuvent affecter les performances de la machine virtuelle et ne sont pas compatibles avec certains services. En effet, ce type de snapshot n'est pas recommandé sur des machines virtuelles qui hébergent l'Active Directory, un serveur Exchange ou encore un serveur SQL.

Les points de contrôle standard peuvent être utiles pour les tests et le développement, mais ils ne sont pas conçus pour une utilisation à long terme ou pour la sauvegarde de données.

B. Point de contrôle de production

Introduits dans Windows Server 2016, les points de contrôle de production sont conçus pour être utilisés en production, comme le nom l'indique. Néanmoins, le point de contrôle de production implique une prise en charge au sein du système d'exploitation invité, pourquoi ? Simplement, car il s'appuie sur un composant à l'intérieur du système d'exploitation de la VM.

Pour Windows, la création d'un point de contrôle de production s'appuie sur le service VSS (Volume Shadow Copy) pour garantir que les applications sur la machine virtuelle sont dans un état cohérent avant de créer le point de contrôle. Cela signifie que vous pouvez utiliser un point de contrôle de production pour restaurer une machine virtuelle à un état précédent sans perdre les données. Sur Linux, le service VSS n'existe pas, donc Hyper-V va solliciter "File System Freeze" si la distribution installée dans la VM le prend en charge.

Ce point de contrôle effectue une capture cohérente au niveau des données de la machine virtuelle, ce qui a un réel intérêt pour les applicatifs. On parle de capture "data-consistent". Dans le cas où la VM n'est pas compatible avec un point de contrôle de production, Hyper-V effectuera automatiquement un point de contrôle standard (si l'option adéquate est cochée).

C. Modifier le type de point de contrôle d'une VM

Pour chaque VM, vous pouvez modifier le type de point de contrôle de façon indépendante. À partir du Gestionnaire Hyper-V, il suffit d'effectuer un clic droit sur une VM et de cliquer sur "Paramètres".

Sur la gauche, en cliquant sur le menu "Points de contrôle", nous pouvons accéder à la configuration : ce qui permet de modifier le type de point de contrôle. Par défaut, l'option est configurée sur "Points de contrôle de la production".

Hyper-V Windows Server 2022 - Points de contrôle

Cette modification peut également s'effectuer avec PowerShell. Par exemple, si nous voulons modifier la configuration de la VM "VM-WS-2022-01" :

# Point de contrôle standard
Set-VM -Name "VM-WS-2022-01" -CheckpointType Standard

# Point de contrôle production (ou standard si non pris en charge)
Set-VM -Name "VM-WS-2022-01" -CheckpointType Production

# Point de contrôle production exclusivement
Set-VM -Name "VM-WS-2022-01" -CheckpointType ProductionOnly

III. Créer un point de contrôle Hyper-V

Passons à la pratique et voyons comment créer un point de contrôle d'une machine virtuelle sous Hyper-V. Nous allons utiliser la console "Gestionnaire Hyper-V".

Effectuez un clic droit sur la VM pour laquelle vous souhaitez créer un snapshot puis cliquez sur "Point de contrôle". La création du point de contrôle va s'effectuer immédiatement.

Hyper-V Windows Server 2022 - Créer un snapshot

Dans la console Hyper-V, le point de contrôle apparaît avec sa date et son heure. Si l'on en crée plusieurs, cela va créer une arborescence. Il n'est pas nécessaire d'éteindre la VM pour créer un point de contrôle, c'est une opération qui s'effectue à chaud, c'est-à-dire sans interruption de service.

D'un point de vue stockage, la création d'un point de contrôle implique la création d'un fichier AVHDX. Pour rappel, un fichier VHDX correspond à un disque virtuel Hyper-V. Il faudra retenir que le format AVHDX correspond à un point de contrôle. Lors de l'utilisation d'un disque au format VHD (ancienne génération), un checkpoint était généré au format AVHD.

À partir du moment où le fichier AVHDX est créé, il va jouer un rôle important : toutes les modifications opérées dans la VM vont être enregistrées dans ce disque temporaire. Ceci permet à Hyper-V de séparer facilement les données présentes avant et après la création du point de contrôle. Ceci est indispensable pour faciliter le retour arrière au moment du point de contrôle en cas d'incident. Il faut savoir que l'utilisation des points de contrôle va engendrer une consommation excessive de l'espace disque sur votre serveur : à surveiller, donc.

Il faut savoir également que les logiciels de sauvegarde de machines virtuelles s'appuient sur les snapshots pour créer un état à sauvegarder de la machine virtuelle en arrêtant les écritures sur le disque principal.

Maintenant que le point de contrôle est créé, connectez-vous à votre machine virtuelle et à effectuer quelques actions pour simuler des changements.

Note : Pour chaque point de contrôle créé sur la machine virtuelle, car il peut y avoir plusieurs points de contrôle pour une même machine, un fichier AVHDX différent sera créé.

IV. Restaurer un point de contrôle Hyper-V

C'est le drame ! L'opération de maintenance sur notre VM "VM-WS-2022-01" s'est très mal déroulée... Plutôt que de passer des heures à identifier l'origine du problème, nous allons exploiter notre point de contrôle pour revenir à l'état antérieur.

Puisque nous souhaitons revenir au premier snapshot, nous allons effectuer un clic droit dessus et cliquer sur "Appliquer".

Hyper-V Windows Server 2022 - Restaurer un point de contrôle

Un message va s'afficher à l'écran : "Êtes-vous sûr de vouloir appliquer le point de contrôle sélectionné ?"

Si vous cliquez sur "Appliquer", la VM reviendra à son état antérieur. Si vous cliquez sur "Créer un point de contrôle et appliquer", Hyper-V va créer un nouveau point de contrôle avant de revenir à celui sélectionné.

Remarque : cette opération va générer une interruption de la VM.

Dès lors que la VM est restaurée, vous avez deux options :

  • Retenter l'opération de maintenance puisque le point de contrôle que l'on a sélectionné est toujours là, donc on peut toujours y revenir si cela se passe mal.
  • Rester sur cet état : les points de contrôle n'ont plus d'intérêt, il faut les supprimer

Pour supprimer un point de contrôle, nous effectuons un clic droit dessus dans l'arborescence et nous cliquons sur "Supprimer le point de contrôle". Il faut ensuite valider cette opération qui peut s'effectuer à chaud. L'autre option permet de supprimer toute une arborescence de snapshots plutôt que de les faire un par un.

Hyper-V va fusionner le fichier AVHDX et le fichier VHDX, ce qui peut nécessiter plusieurs minutes s'il y a eu beaucoup de données écrites sur le fichier AVHDXDans la console Hyper-V, la colonne statut de la VM concernée va afficher "Fusion en cours".

Hyper-V Windows Server 2022 - Supprimer un point de contrôle

Nous venons de voir comment revenir à un état antérieur et supprimer les points de contrôles inutiles.

Néanmoins, il ne faut pas faire n'importe quoi : restaurer un point de contrôle peut entraîner une incohérence des données avec certains applicatifs dans le cas où il y aurait une réplication de données entre plusieurs serveurs. Par exemple, c'est le cas avec l'Active Directory.

V. Renommer un point de contrôle

Lors de la création d'un point de contrôle, Hyper-V utilise le nom de la VM, la date et l'heure pour le nommer. Ce n'est pas forcément parlant, mais nous pouvons renommer un point de contrôle.

Dans la liste des snapshots de la VM, effectuez un clic droit sur celui à renommer et cliquez sur "Renommer". Indiquez le nom que vous souhaitez.

Hyper-V Windows Server 2022 - Renommer un snapshot

Il est important d'utiliser des noms explicites pour les points de contrôle. Vous pouvez indiquer la raison du point de contrôle, la date, l'heure, ainsi que le nom de la personne qui l'a créé.

VI. Gérer les points de contrôle Hyper-V avec PowerShell

Pour ceux qui aimeraient aller plus loin avec les points de contrôle, nous allons utiliser quelques commandes PowerShell pour manipuler les points de contrôle. Nous avons vu déjà comment configurer le type de point de contrôle sur une VM, désormais, nous allons aller plus loin.

A. Lister les points de contrôle en PowerShell

Pour lister les snapshots d'une VM spécifique, le cmdlet "Get-VMCheckpoint" sera utile ainsi que le nom de la VM :

Get-VMCheckpoint -VMName "VM-WS-2022-01"

Voici un exemple de résultat :

De la même façon, nous pouvons lister l'ensemble des points de contrôle de toutes les VMs de cet hôte Hyper-V :

Get-VM | Get-VMCheckpoint

B. Créer un point de contrôle en PowerShell

Pour créer un point de contrôle, c'est simple. Il faut utiliser le cmdlet "Checkpoint-VM" et lui préciser le nom de la VM. En option et cela évitera d'y revenir, nous pouvons nommer directement le point de contrôle comme nous le souhaitons avec le paramètre "-SnapshotName".

Voici un exemple :

 Checkpoint-VM -Name "VM-WS-2022-01" -SnapshotName "Snapshot créé avec PowerShell"

La progression s'affiche dans la console PowerShell. Le snapshot sera bien entendu visible dans le Gestionnaire Hyper-V.

Pour intégrer directement la date et l'heure dans le nom du snapshot, utilisez cette syntaxe :

 Checkpoint-VM -Name "VM-WS-2022-01" -SnapshotName "<Description snapshot> - $(Get-Date -Format yyyyMMdd_hhmm)"

C. Restaurer un point de contrôle avec PowerShell

Pour bien identifier le point de contrôle sur lequel vous souhaitez revenir, il est préférable de lister ceux de la VM au préalable :

Get-VMCheckpoint -VMName "VM-WS-2022-01"

Pour la bonne raison qu'il faut préciser le nom du checkpoint à restaurer au sein de la commande "Restore-VMCheckpoint". Voici la syntaxe cible :

Restore-VMCheckpoint -Name <Nom-du-checkpoint> -VMName <Nom-VM> -Confirm:$false

Par exemple, pour restaurer le snapshot nommé "Snapshot créé avec PowerShell" de la VM "VM-WS-2022-01", cela donne :

Restore-VMCheckpoint -Name "Snapshot créé avec PowerShell" -VMName "VM-WS-2022-01" -Confirm:$false

Voici un exemple, en image, de cette manipulation :

D. Supprimer un point de contrôle en PowerShell

Enfin, pour supprimer un point de contrôle qui n'est plus utile, il y a également un cmdlet pour cette opération : "Remove-VMCheckpoint".

Pour supprimer un seul checkpoint d'une VM, on va s'appuyer sur deux commandes : "Get-VMCheckpoint" et "Remove-VMCheckpoint". La première commande va permettre de sélectionner le checkpoint à supprimer et la seconde de le supprimer.

Get-VMCheckpoint -VMName "VM-WS-2022-01" -Name "Snapshot créé avec PowerShell" | Remove-VMCheckpoint

Pour supprimer tous les points de contrôle d'une VM spécifique. Exemple avec la VM "VM-WS-2022-01" :

Remove-VMCheckpoint -VMName "VM-WS-2022-01"

Pour supprimer tous les points de contrôle présent sur un serveur Hyper-V, il y a une commande magique :

Remove-VMCheckpoint -VMName *

VI. Conclusion

Sur toutes les solutions de virtualisation, les points de contrôle (snapshots) sont une fonctionnalité clé dont il est difficile de se passer. Gardez à l'esprit, que ce n'est pas une sauvegarde et que les snapshots ont vocation à être temporaires.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

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 comment les données de vos commentaires sont utilisées.