💻 Virtualisation — hyperviseurs et cycle de vie des VMs
| Formation | BTS SIO option SISR — IRIS Mediaschool |
|---|---|
| Bloc | B2 — Administration Systèmes & Réseaux |
| Module | M2.2 — Services réseau et systèmes |
| Compétence | B2.2 |
| Durée | 3h30 |
Introduction (10 min)
En février 2023, l'attaque ESXiArgs a compromis plus de 3 000 hyperviseurs VMware ESXi en 48 heures via la vulnérabilité CVE-2021-21974 (OpenSLP). Les attaquants ont chiffré des machines virtuelles et, dans de nombreux cas, les sauvegardes elles-mêmes, montrant qu'une mauvaise architecture ou une mauvaise isolation des sauvegardes expose l'ensemble d'une PME.
Pour InnovatTech, un hyperviseur vulnérable ou mal configuré peut signifier une interruption majeure de service et une perte de données irréversible. Cette séance vous donnera les connaissances pour choisir, administrer et protéger des hyperviseurs et des machines virtuelles.
🎯 Objectifs de la séance
- Expliquer la différence entre hyperviseur Type 1 (bare-metal) et Type 2 (hosted) et choisir une solution adaptée à une PME.
- Créer, démarrer, arrêter, snapshotter et cloner des VM avec Proxmox (commande
qm) en comprenant les effets sur le stockage. - Reconnaître les risques liés aux snapshots et au provisionnement de ressources (thin/thick, balloon, CPU pinning).
1. Hyperviseurs : Type 1 vs Type 2 (50 min)
Un hyperviseur Type 1 (bare-metal) s'installe directement sur le matériel : il fournit l'environnement d'exécution des machines virtuelles sans couche OS hôte intermédiaire. Exemples : VMware ESXi, Proxmox VE (KVM/QEMU + gestion), Microsoft Hyper-V (rôle bare-metal). Les hyperviseurs Type 1 sont conçus pour la production et offrent une surface d'administration réduite (moins de composants à patcher), de meilleures performances et une meilleure isolation matérielle.
Un hyperviseur Type 2 (hosted) s'installe comme une application sur un système d'exploitation hôte : VirtualBox, VMware Workstation. Ils sont pratiques pour le poste de travail et le développement, mais ne conviennent pas à la production en entreprise en raison de la dépendance à l'OS hôte et des performances moindres.
Exemples d'usage
| Contexte | Solution recommandée | Type |
|---|---|---|
| PME / Datacenter | Proxmox VE, VMware ESXi, Hyper-V Server | Type 1 |
| Ordinateur personnel / tests | VirtualBox, VMware Workstation | Type 2 |
Architecture comparée
+--------------------------------+ +-----------------------------+
| Serveur physique | | Poste de travail |
| +--------------------------+ | | +-------------------------+ |
| | Hyperviseur Type 1 | | | | Host OS (Linux/Windows) | |
| | (ESXi / Proxmox / HV) | | | | + VirtualBox / Workst. | |
| | - VM A (Linux) | | | | - VM X | |
| | - VM B (Windows) | | | +-------------------------+ |
| +--------------------------+ | +-----------------------------+
+--------------------------------+
TYPE 1 : bare-metal TYPE 2 : hosted
Proxmox VE est une distribution Debian enrichie (pve) qui fonctionne comme un hyperviseur Type 1 (installation minimale, gestionnaire pve). Il combine QEMU/KVM pour la virtualisation matérielle et LXC pour les conteneurs, ce qui en fait une solution polyvalente pour les PME.
Privilégiez un hyperviseur Type 1 pour la production et appliquez une politique de mise à jour régulière et une séparation des sauvegardes (stockage hors-site / air-gapped) pour limiter l'impact d'un ransomware (cf. ESXiArgs).
2. Cycle de vie d'une VM et commandes Proxmox (qm) (60 min)
La gestion journalière d'une VM passe par : création, configuration, démarrage, arrêt (gracieux ou forcé), snapshot, clone, import/export et suppression. Proxmox expose l'outil en ligne de commande qm pour les VM QEMU/KVM.
Création
# Exemple de création (disque 32 GiB, thin provisioning LVM) :
qm create 100 --name debian-dev --cores 2 --memory 2048 --scsi0 local-lvm:32
Cette commande crée le fichier de configuration /etc/pve/qemu-server/100.conf et alloue (sur LVM-Thin) un volume logique thin de 32 GiB. Sur un stockage thin, l'espace utilisé initialement est faible et augmente au besoin.
Démarrer / Arrêter / État
qm start 100
qm status 100 # affiche l'état : running / stopped
qm shutdown 100 # arrêt gracieux (ACPI / QEMU guest agent)
qm stop 100 # arrêt forcé (kill du processus QEMU)
qm shutdown tente d'informer le système invité (requiert ACPI ou guest-agent pour être parfaitement propre). qm stop est un arrêt brutal équivalent à couper l'alimentation — à éviter en production si possible.
Snapshots
qm snapshot 100 snap-avant-maj --description "avant upgrade"
qm listsnapshot 100 # liste les snapshots existants
qm rollback 100 snap-avant-maj
qm delsnapshot 100 snap-ancien
Un snapshot capture l'état disque (et mémoire selon le mode) de la VM. Sur LVM-Thin, il s'agit d'un snapshot de volume. Attention : les snapshots s'empilent et croissent avec les écritures — ils peuvent remplir rapidement le datastore si on les laisse accumuler (disque plein → VM freeze).
Un snapshot est un outil puissant mais temporaire — planifiez leur suppression après utilisation pour éviter la saturation du stockage. N'utilisez jamais les snapshots comme stratégie de sauvegarde.
Clonage
qm clone 100 200 --name debian-prod --full 1
| Mode | Description | Avantage / Inconvénient |
|---|---|---|
Clone plein (--full 1) | Copie complète des disques | Indépendant, mais plus long et plus coûteux en espace |
| Clone lié (linked clone) | Référence des fichiers partagés | Économise de l'espace mais dépend de l'image parent |
Import / Export OVA
# Importer un disque depuis une archive OVA
qm importdisk 100 debian.ova local-lvm
# Puis attacher le disque importé à la VM 100
qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
qm importdisk extrait l'image et la place sur le stockage choisi ; il reste ensuite à l'attacher dans la configuration VM via qm set.
Ressources et provisionnement
Thin provisioning vs Thick provisioning
| Mode | Principe | Cas d'usage |
|---|---|---|
| Thin (LVM-thin, qcow2 sparse) | Allocation dynamique — l'espace réel est alloué au fur et à mesure | Consolidation, labs, déploiements nombreux — attention au sur-allocation (overcommit) |
| Thick (raw préalloué) | Allocation complète dès la création | Bases de données, applications I/O intensives — prévisible en performance |
CPU Pinning
Le pinning permet d'affecter des cœurs physiques dédiés à une VM pour réduire la latence et la contention. Dans Proxmox, le pinning se réalise au niveau hôte (cgroups/cpuset) ou via configuration avancée de QEMU. L'opération doit être documentée et mesurée en production.
Balloon driver (gestion dynamique de la RAM)
Le guest-agent/virtio_balloon permet au noyau hôte de récupérer de la mémoire inutilisée côté invité, permettant l'overcommit mémoire. Vérification côté invité :
lsmod | grep virtio_balloon || dmesg | grep -i balloon
🔬 Travaux Pratiques (70–80 min)
Contexte
Vous êtes technicien chez InnovatTech SARL. Le responsable infrastructure vous demande de préparer une VM Debian 12 pour développement, de prendre un snapshot propre, puis de simuler une modification et de restaurer l'état antérieur. Vous travaillez sur l'hyperviseur proxmox01 (192.168.10.20) avec accès root SSH ou via l'interface web Proxmox.
Objectif
Créer la VM debian-dev (2 vCPU, 2 GiB RAM, 20 GiB LVM-Thin), installer Debian 12, réaliser un snapshot nommé clean-install, appliquer une modification (paquet ou fichier), puis rollback et vérifier la restauration.
Prérequis techniques
- Accès SSH root sur
proxmox01(ou accès Web UI) - ISO Debian 12 uploadée sur le stockage
local:iso/debian-12.iso - Stockage
local-lvmconfiguré en LVM-Thin
Étape 1 — Création de la VM (ID 100)
# Création avec disque 20 GiB thin
qm create 100 --name debian-dev --cores 2 --memory 2048 \
--net0 virtio,bridge=vmbr0 --scsi0 local-lvm:20
# Attacher l'ISO d'installation
qm set 100 --ide2 local:iso/debian-12.iso,media=cdrom
# Démarrer la VM pour installation
qm start 100
Vérification attendue :
cat /etc/pve/qemu-server/100.conf
# name: debian-dev
# memory: 2048
# cores: 2
# scsi0: local-lvm:vm-100-disk-0,size=20G
Étape 2 — Installation Debian 12
Via la console Proxmox (Web UI) : suivre les étapes classiques d'installation (partitionnement, réseau DHCP sur VLAN Users si présent, création utilisateur admin).
Étape 3 — Snapshot propre après installation
qm shutdown 100 # arrêt propre du système invité
qm snapshot 100 clean-install --description "clean install"
qm listsnapshot 100
# Vérifiez la présence de 'clean-install'
Étape 4 — Simuler une modification
qm start 100
# Depuis la VM ou via SSH :
ssh root@<IP_debian-dev> 'apt update && apt install -y nginx'
# ou créer un fichier de test :
ssh root@<IP_debian-dev> 'touch /root/rollback-test'
Étape 5 — Rollback sur le snapshot
qm shutdown 100
qm rollback 100 clean-install
qm start 100
Vérification : le paquet nginx ne doit plus être installé, ou le fichier /root/rollback-test doit avoir disparu.
Livrable attendu
Copie du fichier /etc/pve/qemu-server/100.conf (ou capture écran) et rapport d'une page décrivant les commandes lancées, le résultat attendu et le résultat observé après le rollback.
Critères de réussite
- ✅ La VM
100existe et est configurée avec 2 vCPU / 2048 MiB RAM / disque 20 GiB thin. - ✅ Le snapshot
clean-installest présent (qm listsnapshot 100). - ✅ Après le rollback, la modification simulée a disparu et la VM retrouve l'état initial.
📌 Synthèse de séance (10 min)
Cette séance a montré que le choix d'un hyperviseur influe sur la sécurité, la maintenance et les performances : les Type 1 sont recommandés en production tandis que les Type 2 restent des outils de poste. Vous savez maintenant utiliser qm pour créer, démarrer, arrêter, snapshotter et cloner des VM, et vous comprenez les risques opérationnels (snapshots croissants, thin provisioning).
Un snapshot est un outil puissant mais temporaire — il doit être géré et nettoyé pour éviter la saturation du stockage. qm shutdown est toujours préférable à qm stop pour la santé des données du système invité.
Question de vérification : Expliquez en une phrase la différence essentielle entre qm shutdown et qm stop.
Séance suivante : Réseaux virtuels, stockage et sauvegardes dans Proxmox — configuration VLAN, datastores NFS/iSCSI, sauvegarde avec vzdump et restauration (qmrestore).
🎮 Quiz — Testez vos connaissances
-
Q1 (QCM) — Quelle est la principale différence entre un hyperviseur Type 1 et un hyperviseur Type 2 ?
- A) Le Type 1 est installé sur un OS hôte ; le Type 2 directement sur le matériel
- B) Le Type 1 s'installe directement sur le matériel (bare-metal) ; le Type 2 sur un OS hôte
- C) Le Type 1 utilise des conteneurs LXC ; le Type 2 utilise des VM QEMU
- D) Il n'existe aucune différence de performance entre les deux types
-
Q2 (QCM) — Quelle commande Proxmox crée la VM debian-dev avec 2 cœurs, 2 GiB de RAM et un disque 32 GiB ?
- A)
qm create 100 --name debian-dev --cpu 2 --ram 2048 --disk 32 - B)
qm create 100 --name debian-dev --cores 2 --memory 2048 --scsi0 local-lvm:32 - C)
qm new 100 --name debian-dev --cores 2 --memory 2048 - D)
qm start 100 --cores 2 --memory 2048 --scsi0 local-lvm:32
- A)
-
Q3 (QCM) — Quelle est la différence entre
qm shutdownetqm stop?- A)
shutdowncopie les données de la VM ;stoples supprime - B)
shutdownrestaure un snapshot ;stopexécute une sauvegarde - C)
shutdownenvoie un signal d'arrêt gracieux (ACPI) ;stoptue le processus QEMU immédiatement - D) Les deux commandes sont strictement identiques
- A)
-
Q4 (QCM) — Quel risque opérationnel présentent les snapshots empilés non gérés dans Proxmox ?
- A) Ils améliorent les performances I/O des VM
- B) Ils peuvent saturer le datastore et provoquer le gel des VM (VM freeze)
- C) Ils effacent automatiquement les données des VM après 30 jours
- D) Ils augmentent la consommation CPU mais n'impactent pas le stockage
-
Q5 (QCM) — Qu'est-ce que le thin provisioning (allocation dynamique) appliqué au stockage VM ?
- A) Allouer immédiatement l'intégralité de l'espace disque déclaré à la création de la VM
- B) Affecter des cœurs CPU physiques dédiés à une VM spécifique
- C) Allouer l'espace disque dynamiquement au fur et à mesure que la VM l'utilise, permettant le sur-engagement du stockage
- D) Compresser automatiquement les données stockées sur le volume de la VM
📝 Afficher les corrections
- B — Le Type 1 s'installe directement sur le matériel (bare-metal) — L'hyperviseur Type 1 (ESXi, Proxmox, Hyper-V Server) est le seul niveau logiciel entre le matériel et les VM, offrant de meilleures performances et isolation. Le Type 2 (VirtualBox, Workstation) tourne sur un OS hôte.
- B —
qm create 100 --name debian-dev --cores 2 --memory 2048 --scsi0 local-lvm:32— Les options correctes sont--cores(pas--cpu),--memoryen MiB (pas--ram), et--scsi0 stockage:taillepour le disque. - C —
shutdownenvoie un signal d'arrêt gracieux (ACPI) ;stoptue le processus QEMU immédiatement —qm shutdownlaisse le système invité effectuer ses procédures d'arrêt propres (sync disques, services) ;qm stopest l'équivalent d'une coupure d'alimentation brutale. - B — Ils peuvent saturer le datastore et provoquer le gel des VM — Les snapshots captent les écritures différentielles et grossissent au fil du temps. Un datastore plein entraîne un VM freeze car les VM QEMU ne peuvent plus écrire sur leur disque virtuel.
- C — Allocation dynamique au fur et à mesure — En thin provisioning (LVM-thin ou qcow2 sparse), l'espace n'est consommé sur le stockage physique que lorsque la VM écrit réellement des données. Cela permet d'allouer nominalement plus d'espace que le disque physique n'en contient (overcommit).
