Snapshot

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

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