Morpheus
Virtualisation / Exploitation des VM

Virt-Manager & Snapshots

Gestion graphique des VM libvirt, configuration matérielle, snapshots, rollback et clonage pour sécuriser les tests.

Virt-Manager snapshots virsh qcow2 rollback
Cycle public Virt-Manager et snapshots
Vue publique: console graphique, configuration matérielle, snapshot avant changement, test, revert ou conservation.
01

Créer

Utiliser l'assistant Virt-Manager pour définir source ISO, OS, CPU, RAM, stockage et réseau.

02

Configurer

Ajuster firmware, CPU, mémoire, disques, réseau et affichage avant ou après installation.

03

Capturer

Créer un snapshot avant update, modification de configuration ou test logiciel.

04

Revenir

Restaurer, supprimer ou cloner selon le besoin sans toucher l'hôte principal.

Contexte

Le problème réel.

Une VM de test devient vite fragile si les snapshots, clones, disques et états ne sont pas gérés avec méthode. Le risque est de perdre le point de retour ou de confondre snapshot temporaire et sauvegarde durable.

Objectifs

Ce que la solution devait garantir.

  • Maîtriser les opérations courantes dans Virt-Manager.
  • Créer des snapshots lisibles avant opérations risquées.
  • Différencier snapshot, clone et sauvegarde durable.
  • Garder une nomenclature et un workflow exploitables sur plusieurs VM.
Architecture publique

Structure documentée, détails exploitables retirés.

Exemples anonymisés

Ce qui peut être montré sans exposer le système réel.

Workflow de snapshot

Le snapshot est présenté comme un point de retour temporaire avant changement, pas comme une sauvegarde longue durée.

avant update      créer un snapshot nommé
appliquer changement mise à jour ou édition de config
valider            contrôles boot, service et réseau
succès             garder brièvement ou supprimer le snapshot
échec              revenir au snapshot et documenter la cause

Différence clone / snapshot

La distinction est publiable sans exposer les VM réelles ni leurs chemins de disque.

clone       VM indépendante, son disque, son identité
snapshot    état ponctuel lié à la VM source
backup      copie externe destinée à la reprise
template    image de base réutilisable pour des builds répétés

Profil matériel public

Les valeurs exactes du lab restent privées, mais les paramètres à contrôler sont visibles.

firmware      UEFI quand la chaîne de boot est testée
modèle CPU    host-passthrough pour les performances locales
bus disque    VirtIO
réseau        NAT par défaut pour tests isolés
affichage     Spice préféré pour la console desktop
Runbook public

Commandes et états attendus issus de la documentation privée.

Les commandes ci-dessous sont volontairement anonymisées: chemins, noms de machines, interfaces, dépôts, périphériques et actions destructrices sont remplacés par des placeholders.

Documentation privée: virt-manager-guide

Contrôles de base

Commandes anonymisées

virt-manager
systemctl status libvirtd --no-pager
virsh -c qemu:///system domstate <vm-name>
virsh -c qemu:///system domblklist <vm-name> --details

État attendu

Virt-Manager ouvre la connexion système
libvirt est actif
l'état de la VM est explicite avant l'opération
les disques attachés sont relus avant snapshot ou clone
Documentation privée: virt-manager-guide

Snapshots

Commandes anonymisées

virsh -c qemu:///system snapshot-create-as <vm-name> <snapshot-name> "<description>"
virsh -c qemu:///system snapshot-list <vm-name>
virsh -c qemu:///system snapshot-revert <vm-name> <snapshot-name>
virsh -c qemu:///system snapshot-delete <vm-name> <snapshot-name>

État attendu

le nom du snapshot décrit la raison
la liste des snapshots est contrôlée avant revert
le revert est traité comme destructif pour les changements ultérieurs
les anciens snapshots sont supprimés quand ils ne servent plus
Documentation privée: virt-manager-guide

Clonage

Commandes anonymisées

virt-clone --original <vm-source> --name <vm-clone> --auto-clone
virt-clone --original <vm-source> --name <vm-clone> --file <clone-disk-path>
virsh -c qemu:///system domblklist <vm-clone> --details

État attendu

le clone possède un disque indépendant
l'identité réseau est régénérée
la VM source reste inchangée
le clone est validé avant usage
Travail réalisé

Décisions techniques publiables.

Assistant VM

La création guidée fixe ISO, détection OS, ressources, stockage et nommage.

Snapshots avant risque

Les changements système, mises à jour et tests logiciels passent par un snapshot nommé.

Rollback documenté

Chaque revert est traité comme une action destructrice pour les changements post-snapshot.

Terminologie

Le message français `Instantané ... annulé` après snapshot-revert signifie ici que l'état courant a été annulé au profit du snapshot, pas que l'opération a échoué.

Validation

Preuves et contrôles retenus.

Preuves visuelles

Contrôles observables et portée de la preuve.

Résultats publics

Ce que le chantier démontre.

Anonymisation

Ce qui reste privé.

  • Pas de noms réels de VM, chemins d'images ou MAC addresses.
  • Pas de fichiers XML libvirt complets.
  • Pas de chemins de backup privés.
  • Les exemples de commandes utilisent des placeholders.
Sources privées

Documentation d'origine.

  • Guide Virt-Manager et Snapshots.
  • Guide KVM sur Arch.
  • Runbooks PRA en VM.
  • Notes de validation virtualisation.

Guide Virt-Manager et Snapshots

Guide public pour maîtriser Virt-Manager et gérer les snapshots de machines virtuelles. Les noms de VM, chemins de disques, adresses MAC et fichiers privés sont remplacés par des placeholders.

Lancement de Virt-Manager

Première ouverture

virt-manager

Si une erreur de connexion apparaît, vérifier que libvirtd est actif:

sudo systemctl status libvirtd

Interface de Virt-Manager

Vue d'ensemble

  • Liste des VM: toutes les machines virtuelles connues.
  • État: Running, Shutoff ou Paused.
  • CPU et RAM: utilisation visible en temps réel.
  • Barre d'outils: création, démarrage, pause et arrêt.

Barre d'outils principale

  • Nouvelle VM: créer une machine virtuelle.
  • Play: démarrer la VM sélectionnée.
  • Pause: suspendre l'exécution.
  • Stop: arrêter proprement.
  • Force Off: forcer l'arrêt, équivalent à couper l'alimentation.

Créer votre première VM

Étape 1: lancer la création

Cliquer sur l'icône de création, puis ouvrir l'assistant.

Étape 2: choisir la source d'installation

Choisir un média local ISO, une installation réseau, un disque existant ou PXE. Le cas public recommandé reste l'ISO locale.

Étape 3: détection de l'OS

Renseigner la famille d'OS pour activer les paramètres VirtIO et profils recommandés. Si l'OS n'est pas détecté, utiliser un profil générique.

Étape 4: mémoire et CPU

Memory: <RAM_VM>
CPUs: <VCPU_VM>

Étape 5: stockage

Enable storage for this virtual machine
Create a disk image: <TAILLE_DISQUE>

L'allocation dynamique qcow2 ne consomme que l'espace réellement utilisé au départ.

Étape 6: configuration finale

Name: <NOM_VM>

Cocher la personnalisation avant installation pour ajuster CPU, disques, réseau, boot order ou TPM selon le besoin.

Gérer une VM existante

Ouvrir la console

Double-cliquer sur une VM pour ouvrir sa console et voir son affichage.

Raccourcis clavier utiles

  • Ctrl + Alt + F: plein écran.
  • Ctrl + Alt + G: libérer ou capturer le curseur.
  • Ctrl + Alt + R: redimensionner l'écran.
  • Ctrl + Alt: libérer le curseur souris.

Menu Virtual Machine

Le menu regroupe Run, Pause, Shut Down, Clone et redirection USB.

Vue Détails

L'icône de détails matériels donne accès à la configuration avancée.

Configuration matérielle avancée

Overview

Contrôler nom, UUID, hyperviseur, architecture, chipset et firmware. UEFI est requis pour certains scénarios modernes.

CPUs

Sockets: <SOCKETS>
Cores per socket: <CORES>
Threads per core: <THREADS>
Model: host-passthrough | host-model | generic

Memory

Current allocation: <RAM_ACTUELLE>
Maximum allocation: <RAM_MAX>

Boot Options

Vérifier l'ordre disque, CDROM et réseau. L'autostart reste réservé aux VM qui doivent réellement démarrer avec l'hôte.

Disks

Préférer VirtIO et qcow2 pour les VM Linux de test. Ajouter un disque via Add Hardware -> Storage quand il faut séparer système et données.

Network

Network source: default (NAT)
Device model: virtio
MAC address: <MAC_VM>

Console et Display

Préférer Spice pour l'intégration desktop; garder l'écoute locale lorsque l'accès distant n'est pas nécessaire.

Snapshots: sauvegarde et restauration

Les snapshots capturent l'état d'une VM à un instant T et permettent de revenir en arrière. Ils ne remplacent pas une sauvegarde hors VM.

Créer un snapshot

Dans l'interface: ouvrir la console, gérer les snapshots, cliquer sur +, nommer et décrire le point de retour.

virsh snapshot-create-as <NOM_VM> <NOM_SNAPSHOT> "Description du snapshot"

Types de snapshots

  • Internal: stocké dans qcow2, rapide, adapté à la plupart des tests.
  • External: chaîne de fichiers séparée, utile pour certains workflows avancés.

Lister les snapshots

virsh snapshot-list <NOM_VM>

Restaurer un snapshot

virsh snapshot-revert <NOM_VM> <NOM_SNAPSHOT>

Supprimer un snapshot

virsh snapshot-delete <NOM_VM> <NOM_SNAPSHOT>

Workflow recommandé

virsh snapshot-create-as <NOM_VM> avant-maj-<DATE> "Avant mise à jour majeure"
# appliquer la modification dans la VM
# si OK: supprimer plus tard
# si KO: restaurer le snapshot

Cloner une VM

Le clonage crée une copie complète et indépendante d'une VM.

Via Virt-Manager

Clic droit sur la VM, Clone, nouveau nom, nouveau MAC et nouveau disque.

Via ligne de commande

virt-clone --original <VM_SOURCE> --name <VM_CLONE> --auto-clone
virt-clone \
  --original <VM_SOURCE> \
  --name <VM_CLONE> \
  --file <CHEMIN_DISQUE_CLONE>

Différence clone vs snapshot

CritèreCloneSnapshot
IndépendanceVM séparéeDépend de la source
Espace disquePlus coûteuxFaible surcoût initial
UsageNouvelle VM similaireRollback temporaire
PerformanceAucun impact durableImpact possible si accumulation

Optimisations et bonnes pratiques

Performance

Utiliser VirtIO pour disques et réseau, choisir un modèle CPU adapté, éviter l'accumulation de snapshots et surveiller l'espace disque.

<driver name='qemu' type='qcow2' cache='<CACHE_MODE>'/>

Organisation

Utiliser un nommage cohérent par rôle: srv-*, dev-*, test-*, sans publier les noms réels.

Sauvegardes

virsh dumpxml <NOM_VM> > <EXPORT_CONFIG_VM>.xml
cp <CHEMIN_IMAGE_VM>.qcow2 <CHEMIN_BACKUP>/

Les snapshots programmés doivent avoir une rétention claire pour éviter de remplir l'hôte.

Dépannage

VM ne démarre pas

sudo tail -f <LOG_LIBVIRT_VM>
virsh dumpxml <NOM_VM>
virsh start <NOM_VM> --console

Performance lente

  • Vérifier VirtIO pour disques et réseau.
  • Contrôler le modèle CPU.
  • Vérifier la RAM et l'absence de swap excessif.
  • Réduire les snapshots accumulés.

Snapshot échoue

virsh shutdown <NOM_VM>
virsh snapshot-create-as <NOM_VM> <NOM_SNAPSHOT>

Espace disque plein

sudo du -sh <CHEMIN_IMAGES_LIBVIRT>/*
virt-sparsify --in-place <CHEMIN_IMAGE_VM>.qcow2
virsh snapshot-list <NOM_VM>
virsh snapshot-delete <NOM_VM> <SNAPSHOT_ANCIEN>

Ressources

  • Documentation Virt-Manager.
  • Documentation libvirt snapshots.
  • Wiki Arch - Libvirt.

Checklist Virt-Manager

  • Lancer et explorer Virt-Manager.
  • Créer une première VM avec l'assistant.
  • Configurer CPU, RAM, disques et réseau.
  • Créer des snapshots avant modifications.
  • Restaurer un snapshot pour tester.
  • Cloner une VM pour duplication.
  • Organiser les VM par catégorie.