13.2. Création d'instantanés de machines virtuelles à l'aide de l'interface de ligne de commande
Pour sauvegarder l'état d'une machine virtuelle (VM) dans un instantané, vous pouvez utiliser la commande virsh snapshot-create-as
.
Conditions préalables
- Votre hôte utilise RHEL 9.4 ou une version ultérieure.
La VM utilise un stockage basé sur des fichiers. Pour vérifier si c'est le cas, utilisez la commande suivante et assurez-vous que le périphérique
disk
affichedisk type
commefile
:# virsh dumpxml <vm-name> | grep "disk type" <disk type='file' device='disk'> <disk type='file' device='cdrom'>
Si vous souhaitez créer un instantané de VM qui inclut la mémoire d'une VM en cours d'exécution, vous devez disposer de suffisamment d'espace disque pour stocker la mémoire de la VM.
- L'espace minimum recommandé pour la sauvegarde de la mémoire d'une VM est égal à la RAM attribuée à la VM. Par exemple, la sauvegarde de la mémoire d'une VM avec 32 Go de RAM nécessite jusqu'à 32 Go d'espace disque.
- Si la VM est soumise à une forte charge d'E/S, un espace disque supplémentaire important peut être nécessaire.
- Si des périphériques VFIO passthrough ont été attribués à la VM, de l'espace disque supplémentaire peut être nécessaire.
Si un instantané est créé sans mettre la VM en pause, de l'espace disque supplémentaire peut être nécessaire.
AvertissementRed Hat recommande de ne pas sauvegarder la mémoire d'une VM en cours d'exécution qui est soumise à une charge de travail très élevée ou qui utilise des périphériques VFIO passthrough. Sauvegarder la mémoire de telles VM pourrait remplir le disque de l'hôte et dégrader le système. Au lieu de cela, envisagez de créer des instantanés sans mémoire pour de telles VM.
En outre, il convient de noter que tous les périphériques VFIO ne sont pas en mesure de créer des instantanés avec mémoire. Actuellement, la création d'un instantané avec mémoire ne fonctionne correctement que si le périphérique VFIO connecté est un VF Mellanox dont la capacité de migration est activée.
Procédure
Pour créer un instantané de VM avec les paramètres requis, utilisez la commande
virsh snapshot-create-as
.# virsh snapshot-create-as <vm-name> <snapshot-name> <optional-description> <additional-parameters>
Pour créer un instantané d'une VM arrêtée, utilisez le paramètre
--disk-only
. Par exemple, la commande suivante créeSnapshot1
à partir de l'état actuel du disque de la VM arrêtéeTestguest1
:# virsh snapshot-create-as Testguest1 Snapshot1 --disk-only Domain snapshot Snapshot1 created.
Pour créer un instantané qui sauvegarde l'état du disque d'une VM en cours d'exécution mais pas sa mémoire, utilisez les paramètres
--disk-only --quiesce
. Par exemple, la commande suivante créeSnapshot2
à partir de l'état actuel du disque de la VM en cours d'exécutionTestguest2
, avec la descriptionclean system install
:# virsh snapshot-create-as Testguest2 Snapshot2 "clean system install" --disk-only --quiesce Domain snapshot Snapshot2 created.
Pour créer un instantané qui met en pause une VM en cours d'exécution et sauvegarde son état de disque et de mémoire, utilisez le paramètre
--memspec
. Par exemple, la commande suivante met en pause la VMTestguest3
et créeSnapshot3
à partir de l'état actuel du disque et de la mémoire de la VM. La mémoire de la VM est enregistrée dans le fichier/var/lib/libvirt/images/saved_memory.img
. Lorsque l'instantané est terminé, la VM reprend automatiquement ses activités.# virsh snapshot-create-as Testguest3 Snapshot3 --memspec /var/lib/libvirt/images/saved_memory.img Domain snapshot Snapshot3 created.
La mise en pause de la VM pendant le processus d'instantané crée un temps d'arrêt, mais peut fonctionner de manière plus fiable que la création d'un instantané en direct d'une VM en cours d'exécution (en utilisant l'option
--live
), en particulier pour les VM soumises à une charge importante.Pour créer un instantané qui enregistre l'état du disque d'une VM en cours d'exécution ainsi que sa mémoire vive, utilisez les paramètres
--live --memspec
. Par exemple, la commande suivante créeSnapshot4
à partir de l'état actuel du disque et de la mémoire de la VM en cours d'exécutionTestguest4
, et enregistre l'état de la mémoire dans le fichier/var/lib/libvirt/images/saved_memory2.img
.# virsh snapshot-create-as Testguest4 Snapshot4 --live --memspec /var/lib/libvirt/images/saved_memory2.img Domain snapshot Snapshot4 created.
L'enregistrement de la mémoire d'une VM dans un instantané permet de sauvegarder l'état des processus en cours d'exécution dans le système d'exploitation invité de la VM. Toutefois, lorsque vous revenez à un tel instantané, les processus peuvent échouer en raison de divers facteurs, tels que la perte de connectivité réseau ou la désynchronisation de l'heure système.
Vérification
Liste les instantanés associés à la VM spécifiée :
# virsh snapshot-list <Testguest1> Name Creation Time State -------------------------------------------------------------- Snapshot1 2024-01-30 18:34:58 +0100 shutoff
Vérifiez que l'instantané a été créé à l'adresse external:
# virsh snapshot-dumpxml <Testguest1> <Snapshot1> | grep external <disk name='vda' snapshot='external' type='file'>
Si la sortie de cette commande inclut
snapshot='external'
, l'instantané est externe et donc entièrement pris en charge par Red Hat.
Prochaines étapes
Ressources supplémentaires
- Informations libvirt en amont sur les métadonnées des instantanés
-
La page de manuel
virsh