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 tutoriel, nous allons voir commet utiliser les points de contrôle avec 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.

Pour ce tutoriel, je m'appuie sur Hyper-V sur Windows 10. Le tutoriel est disponible au format vidéo :

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 réaliser une capture de la machine virtuelle en tenant compte également de son état en mémoire au moment où le point de contrôle est déclenché. En fait, ce type de point de contrôle est relativement intéressant pour capturer l'état exact d'une VM puisque l'on tient compte des données en mémoire.

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.

B. Point de contrôle de production

Ce mode nécessite 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 va s'appuyer sur le service VSS (Volume Shadow Copy). Sur Linux, le service VSS n'existe pas, mais on va s'appuyer sur File System Freeze si la distribution installée dans la VM le prend en charge.

Avec ce type de point de contrôle, l'état de la mémoire n'est pas capturé. Par contre, le 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", on peut accéder à la configuration : ce qui permet de modifier le type de point de contrôle.

Cette modification peut également s'effectuer avec PowerShell. Par exemple si l'on veut modifier la configuration de la VM "Windows-10" :

# Point de contrôle standard
Set-VM -Name "Windows-10" -CheckpointType Standard

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

# Point de contrôle production exclusivement
Set-VM -Name "Windows-10" -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 le 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 dans la foulée.

points de contrôle avec Hyper-V

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.

points de contrôle avec Hyper-V

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. 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.

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 stoppant les écritures sur le disque principal.

Maintenant que le point de contrôle est créé, n'hésitez pas à vous connecter à votre machine virtuelle et à faire n'importe quoi (bon, soyez raisonnable quand même) 🙄

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 "Windows-10" s'est très mal déroulée... Plutôt que de passer des heures à faire le debug, on va exploiter notre point de contrôle pour revenir à l'état antérieur.

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

Un message va s'afficher à l'écran : Etes-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, on effectue un clic droit dessus dans l'arborescence et on clique 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. Dans la console Hyper-V, la colonne statut de la VM concernée va afficher "Fusion en cours".

Nous venons devoir 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 a une réplication entre plusieurs serveurs. Par exemple, l'Active Directory.

V. Renommer un point de contrôle

Lors de la création d'un point de contrôle, Hyper-V le nomme avec le nom de la VM, la date et l'heure. Ce n'est pas forcément parlant, mais cela tombe bien il est possible de 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.

C'est quand même plus parlant comme ça 😉

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

Pour finir cet article, nous allons jouer avec 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, la commande Get-VMCheckpoint sera utile ainsi que le nom de la VM :

Get-VMCheckpoint -VMName "Windows-10"

Ce qui donne :

De la même façon, on peut 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, on peut nommer directement le point de contrôle comme on le souhaite avec le paramètre "-SnapshotName".

Voici un exemple :

 Checkpoint-VM -Name "Windows-10" -SnapshotName "Snapshot créé avec PowerShell"

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

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 "Windows-10"

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 "Windows-10", cela donne :

Restore-VMCheckpoint -Name "Snapshot créé avec PowerShell" -VMName "Windows-10" -Confirm:$false

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 "Windows-10" -Name "Snapshot créé avec PowerShell" | Remove-VMCheckpoint

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

Remove-VMCheckpoint -VMName "Windows-10"

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

Remove-VMCheckpoint -VMName *

Suite à la lecture de ce tutoriel, vous êtes en mesure de maîtriser les points de contrôle avec Hyper-V ! 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau et cofondateur d'IT-Connect. 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.

florian a publié 2904 articlesVoir toutes les publications de cet auteur

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.