💿 Storage Systems — Chapitre 16 : Images disque et formats virtuels
Les images disque sont la matière première des plateformes virtualisées : VMDK pour VMware, VHD/VHDX pour Hyper-V, QCOW2 et RAW pour KVM/QEMU, snapshots, thin provisioning, conversions, templates et backups. Cette page densifie les formats, leurs avantages, risques, performances, chaînes de snapshots, cohérence applicative, migration V2V/P2V, sécurité et runbooks de réparation.
VMDK
Format VMware : flat, sparse, delta, descriptor, thin/thick, snapshots, CBT, consolidation et migration.
VMwareVMDKSnapshotsVHD / VHDX
Formats Hyper-V : VHD historique, VHDX moderne, fixed/dynamic/differencing, checkpoints, ReFS et VSS.
Hyper-VVHDXCheckpointsQCOW2
Format KVM/QEMU : snapshots, compression, backing files, thin provisioning, metadata, cluster size et chaînes.
KVMQEMUqcow2RAW
Performance et simplicité : disque brut, prévisibilité, conversions, limites snapshots et compatibilité universelle.
RAWPerformanceSimpleThin provisioning
Avantages et pièges : overcommit, datastore full, UNMAP/discard, monitoring, reclaim, fragmentation et alertes.
ThinOvercommitUNMAPSnapshots VM
Usage, risques, consolidation : delta disks, differencing disks, quiescing, application consistency et rollback.
SnapshotsDeltaConsolidationMatrice des formats
Comparer VMDK, VHDX, QCOW2, RAW, VDI : plateformes, fonctions, performance, conversion et risques.
MatrixFormatsDecisionThick provisioning
Eager zeroed, lazy zeroed, fixed disks, allocation complète, garanties de capacité et impact performance.
ThickFixedCapacitySparse & differencing
Disques différentiels, backing chains, overlay, copy-on-write, risques de dépendance et profondeur de chaîne.
SparseCOWBackingCohérence applicative
Crash-consistent vs application-consistent : VSS, fsfreeze, guest agents, DB logs, AD, Exchange, SQL Server.
VSSfsfreezeDBConversion & migration
qemu-img, vmkfstools, StarWind V2V, Disk2VHD, V2V/P2V, virt-v2v, drivers et boot repair.
V2VP2Vqemu-imgPerformance des images
Cache modes, bus virtio/SCSI/NVMe, block size, alignment, preallocation, fragmentation et queue depth.
CacheVirtIOQueueResize & expansion
Agrandir un disque VM : image, partition, filesystem, LVM, Windows Disk Management, risques et rollback.
ResizeLVMFilesystemBackup des images
CBT, dirty bitmap, incremental backup, immutable repo, snapshot temporary, export OVA/OVF et validation restore.
CBTIncrementalRestoreSécurité des images
Chiffrement, secure delete, secrets dans images, golden images, template hardening, scan malware et access control.
EncryptionSecretsTemplatesTemplates & golden images
Images maîtres, cloud-init, sysprep, Packer, versioning, patching, baseline CIS et dérive de configuration.
TemplatesPackercloud-initRunbooks incidents
Snapshot bloqué, chain corrompue, datastore full, conversion ratée, VM ne boote plus, extension disque ratée.
IncidentRepairRollbackChecklist production
Préprod : format choisi, thin/thick, snapshots courts, backup testé, conversion documentée, monitoring capacité.
Prod-readyAuditChecklistVMDK en pratique
VMDK est le format de disque virtuel VMware. Il peut représenter un disque plat préalloué, un disque thin, un delta snapshot, ou un ensemble descriptor + extent. Le VMDK est au cœur de VMFS, NFS datastores, templates, clones, snapshots et mécanismes de backup VMware.
Chaîne logique
| Type | Description | Usage | Risque |
|---|---|---|---|
| Thin | Allocation à la demande. | Économie capacité. | Datastore full si surcommit. |
| Thick lazy zeroed | Capacité réservée, blocks zéro au fil de l'eau. | Standard général. | Première écriture plus coûteuse. |
| Thick eager zeroed | Capacité réservée et initialisée. | Workloads sensibles, clustering legacy. | Provisioning plus long. |
| Delta | Fichier de snapshot. | Backup/maintenance courte. | Chaînes longues dangereuses. |
Lors d'un snapshot VMware, les nouvelles écritures vont dans des delta files. Plus le snapshot dure, plus la chaîne grandit et plus la consolidation peut devenir longue et risquée.
# ESXi shell examples ls -lh /vmfs/volumes/datastore1/VM01/ vmkfstools -P /vmfs/volumes/datastore1 vmkfstools -i source.vmdk target.vmdk -d thin vim-cmd vmsvc/snapshot.get
- Surveiller snapshots orphelins et consolidation needed.
- Limiter durée des snapshots.
- Conserver headroom datastore.
- Utiliser CBT pour backup incrémental.
- Tester restore VMDK complet, pas seulement backup successful.
VHDX est le format moderne Hyper-V, remplaçant VHD pour la plupart des usages. Il supporte de grandes tailles, meilleure résilience metadata, alignement moderne et intégration avec checkpoints, ReFS et VSS.
| Type | Description | Usage |
|---|---|---|
| Fixed | Allocation complète. | Performance/prévisibilité. |
| Dynamically expanding | Allocation progressive. | Économie capacité. |
| Differencing | Disque enfant dépendant d'un parent. | Lab, templates, checkpoints. |
| AVHDX | Checkpoint delta. | Sauvegarde/rollback temporaire. |
Les checkpoints Hyper-V utilisent des disques différentiels. Ils sont utiles avant maintenance courte ou pour backup, mais dangereux en rétention longue.
Get-VHD -Path "D:\VMs\VM01\disk.vhdx" Resize-VHD -Path "D:\VMs\VM01\disk.vhdx" -SizeBytes 200GB Optimize-VHD -Path "D:\VMs\VM01\disk.vhdx" -Mode Full Get-VMCheckpoint -VMName VM01
ReFS accélère certaines opérations Hyper-V, notamment block cloning et checkpoints/merges selon version et configuration. Il est particulièrement pertinent avec S2D/CSV modernes.
QCOW2 est le format QEMU Copy On Write. Il supporte thin provisioning, snapshots internes, backing files, compression optionnelle et encryption historique. Il est fréquent avec KVM, libvirt, OpenStack et Proxmox selon backend.
| Fonction | Intérêt | Risque |
|---|---|---|
| Thin allocation | Économise capacité. | Volume plein si surcommit. |
| Backing file | Clones rapides depuis base image. | Dépendance parent. |
| Internal snapshots | Rollback local. | Gestion complexe en production. |
| Compression | Réduit taille image froide. | CPU, usage limité. |
qemu-img info disk.qcow2 qemu-img check disk.qcow2 qemu-img create -f qcow2 -b base.qcow2 overlay.qcow2 qemu-img commit overlay.qcow2 qemu-img rebase -b newbase.qcow2 overlay.qcow2 qemu-img convert -p -O qcow2 source.raw target.qcow2
- Utiliser raw pour performance maximale simple.
- Utiliser qcow2 pour flexibilité, templates, lab, cloud images.
- Documenter backing files.
- Éviter chaînes longues en production.
- Tester boot après conversion.
RAW est le format le plus simple : une image disque brute sans couche metadata complexe. Elle se comporte comme une suite de blocs. Cela offre prévisibilité, compatibilité et souvent de très bonnes performances.
- Structure simple.
- Performance prévisible.
- Conversions faciles.
- Moins de risques de chaîne snapshot interne.
- Compatible avec beaucoup d'outils bas niveau.
| Limite | Conséquence |
|---|---|
| Pas de metadata riche | Fonctions à déléguer au backend. |
| Snapshots internes absents | Utiliser snapshots hyperviseur/backend. |
| Peut consommer taille complète | Dépend sparse filesystem ou backend. |
| Pas auto-descriptif | Bien documenter taille, OS, partitions. |
qemu-img info disk.raw qemu-img convert -p -O raw disk.qcow2 disk.raw qemu-img convert -p -O qcow2 disk.raw disk.qcow2 file disk.raw fdisk -l disk.raw
- VM haute performance.
- Backend Ceph RBD ou LVM.
- Images intermédiaires de migration.
- Disques simples à analyser hors hyperviseur.
Le thin provisioning présente à la VM une capacité logique supérieure à la capacité réellement consommée au départ. Les blocs sont alloués au fil des écritures. C'est très utile, mais dangereux sans monitoring.
Le risque majeur = datastore/pool full
Moins d'espace initial.
Provisioning rapide.
Déploiements VM rapides.
Dev/test efficace.
| Piège | Impact | Mitigation |
|---|---|---|
| Overcommit excessif | Pool full. | Alertes, quotas, headroom. |
| Snapshots oubliés | Explosion capacité. | Rétention courte. |
| UNMAP absent | Espace non récupéré. | discard/fstrim/Storage reclaim. |
| Croissance non suivie | Incident brutal. | Capacity planning. |
# Linux guest examples fstrim -av lsblk --discard # KVM/libvirt concepts virtio-scsi + discard=unmap qemu-img map disk.qcow2
Un snapshot VM capture un point dans le temps, souvent en créant un delta disque pour les nouvelles écritures. Il permet rollback temporaire, backup agentless ou maintenance courte.
| Risque | Cause | Impact |
|---|---|---|
| Performance | Chaîne delta longue. | Latence accrue. |
| Capacité | Delta grossit. | Datastore full. |
| Consolidation | Merge long. | VM stun, fenêtre longue. |
| Cohérence | Snapshot crash-only. | DB à récupérer. |
- Crash-consistent : état comme coupure courant.
- File-system consistent : buffers filesystem flushés.
- Application-consistent : DB/app quiesced via VSS/agent/scripts.
La consolidation fusionne les deltas dans le disque parent. Elle peut être longue et consommer beaucoup d'I/O si le snapshot a vécu trop longtemps ou si la VM écrit beaucoup.
- Snapshot court, avec owner et date d'expiration.
- Pas de snapshot long pour remplacer backup.
- Surveillance automatique des snapshots oubliés.
- Application-aware pour workloads critiques.
| Format | Plateforme | Forces | Limites |
|---|---|---|---|
| VMDK | VMware | Écosystème vSphere, CBT, templates. | Chaînes snapshots, dépendance VMware. |
| VHDX | Hyper-V | Résilience, ReFS, checkpoints. | Écosystème Microsoft. |
| QCOW2 | KVM/QEMU | COW, backing files, flexible. | Overhead et chaînes. |
| RAW | Universel | Simple, performant. | Peu de fonctions intégrées. |
| VDI | VirtualBox/Xen selon contexte | Outils spécifiques. | Moins standard enterprise. |
- VMware : VMDK natif.
- Hyper-V : VHDX natif.
- KVM flexible : qcow2.
- KVM performance/backend avancé : raw ou RBD.
- Migration : convertir vers format natif cible.
Le thick provisioning réserve la capacité complète dès la création. Il réduit le risque de pool full lié à la croissance imprévue, mais consomme plus d'espace dès le départ.
| Type | Description | Usage |
|---|---|---|
| Lazy zeroed | Réservé, zéro à la première écriture. | Usage général. |
| Eager zeroed | Réservé et initialisé immédiatement. | Workloads exigeants/legacy clustering. |
| Fixed VHDX | Taille complète allouée. | Performance/prévisibilité Hyper-V. |
- Capacité garantie.
- Moins de risque overcommit.
- Prévisibilité pour production critique.
- Peut réduire certaines latences de première écriture.
- Provisioning plus long.
- Moins efficace en capacité.
- Peut encourager surallocation côté VM.
- Ne remplace pas monitoring capacité.
Les formats sparse/differencing stockent seulement les blocs modifiés par rapport à un état initial ou parent. C'est la base des clones rapides, snapshots, templates et labs.
- Déploiement très rapide.
- Économie capacité.
- Templates et golden images.
- Rollback/lab/dev-test.
| Risque | Impact |
|---|---|
| Parent manquant | Child inutilisable. |
| Chaîne longue | Performance et complexité. |
| Consolidation ratée | VM bloquée ou données à risque. |
| Documentation absente | Migration dangereuse. |
| Niveau | Description | Risque |
|---|---|---|
| Crash-consistent | Comme coupure électrique. | Recovery applicatif nécessaire. |
| Filesystem-consistent | Buffers FS flushés. | DB pas forcément propre. |
| Application-consistent | App/DB quiesced. | Plus complexe mais meilleur RPO. |
VSS coordonne les writers Windows : SQL Server, Exchange, AD, filesystem. Un backup application-aware doit vérifier que les writers sont stables.
vssadmin list writers vssadmin list shadows
- Guest agent QEMU/VMware tools.
- fsfreeze pour filesystem.
- Scripts pre/post backup pour DB.
- Dump logique ou backup natif DB si nécessaire.
| Outil | Usage |
|---|---|
| qemu-img | Convertir raw/qcow2/vmdk/vhdx selon support. |
| vmkfstools | Cloner/convertir VMDK sur ESXi. |
| StarWind V2V | Conversions Windows friendly. |
| Disk2VHD | P2V Windows vers VHD/VHDX. |
| virt-v2v | Conversions vers KVM/libvirt. |
qemu-img info source.vmdk qemu-img convert -p -O qcow2 source.vmdk target.qcow2 qemu-img convert -p -O raw source.vhdx target.raw qemu-img convert -p -O vmdk source.qcow2 target.vmdk
- Installer drivers virtio/VMware/Hyper-V avant migration si possible.
- Vérifier boot mode BIOS/UEFI.
- Corriger fstab, initramfs, bootloader.
- Vérifier adresses MAC, licences, agents backup.
- Tester application, pas seulement boot OS.
SCSI/NVMe optimisés.
Impact sécurité/perf.
Éviter write amplification.
Concurrence I/O.
| writeback | Rapide mais exige protection power-loss. |
| writethrough | Plus sûr, moins performant. |
| none/direct | Évite double cache, souvent bon pour DB. |
| unsafe | Lab uniquement, risque perte données. |
- virtio-scsi ou virtio-blk pour KVM.
- Paravirtual SCSI ou NVMe VMware selon workload/support.
- Hyper-V synthetic storage controller.
- Drivers invités à jour.
fio --name=imgtest --filename=/data/testfile --size=20G --rw=randrw --rwmixread=70 --bs=4k --iodepth=32 --numjobs=4 --direct=1 --time_based --runtime=120 --group_reporting
- Backup ou snapshot court avant opération.
- Agrandir l'image côté hyperviseur.
- Rescan disque dans le guest.
- Agrandir partition ou PV LVM.
- Agrandir filesystem.
- Valider application et monitoring.
# Example for LVM lsblk parted /dev/sda print pvresize /dev/sda3 lvextend -r -L +50G /dev/vg0/root # Filesystem only examples resize2fs /dev/vg0/root xfs_growfs /mountpoint
# PowerShell / DiskPart concepts Get-Disk Get-Partition Resize-Partition -DriveLetter C -Size 200GB # Or Disk Management GUI
Les solutions modernes utilisent CBT, dirty bitmaps ou mécanismes équivalents pour sauvegarder uniquement les blocs modifiés depuis le dernier point. Cela réduit fortement la fenêtre backup.
| Pattern | Usage |
|---|---|
| Full synthetic | Chaîne logique complète sans tout relire. |
| Incremental forever | Optimise fenêtres courtes. |
| Immutable repo | Protection ransomware. |
| Instant restore | RTO faible. |
- Vérifier checksum et boot automatique.
- Test restore isolé.
- Application-aware pour DB/AD.
- Documenter RPO/RTO mesurés.
OVA/OVF ou export image peuvent servir à migration ou archivage, mais ne remplacent pas une stratégie backup incrémentale et testée.
| Secrets dans image | Clés SSH, tokens, mots de passe oubliés. |
| Template vulnérable | Toutes les VMs héritent de la faille. |
| Image non chiffrée | Exfiltration datastore. |
| Suppression non sécurisée | Données récupérables. |
- Chiffrement VM ou datastore.
- Nettoyer cloud-init, machine-id, SSH host keys avant template.
- Scanner malware et vulnérabilités.
- RBAC sur templates et exports.
- Secure delete ou crypto erase selon backend.
Une golden image doit être versionnée, patchée, scannée et reconstruite régulièrement. Elle ne doit contenir aucun secret spécifique environnement.
Les templates standardisent les déploiements VM. Ils réduisent le temps de provisionnement et les écarts de configuration, mais deviennent dangereux s'ils ne sont pas maintenus.
| Packer | Construction automatisée d'images. |
| cloud-init | Personnalisation Linux au premier boot. |
| Sysprep | Généralisation Windows. |
| Ansible | Post-provisioning/configuration. |
- Versionner templates.
- Retirer images obsolètes.
- Documenter drivers et agents.
- Tester boot après update.
- Ne pas modifier template manuellement en production.
- Identifier VM, snapshot, delta files.
- Vérifier capacité datastore.
- Vérifier backup récent.
- Lancer consolidation contrôlée.
- Surveiller latence et stun.
- Ne pas supprimer delta à la main sans procédure.
- Arrêter écritures si possible.
- Copier tous les fichiers image/metadata.
- Analyser chaîne avec outil natif.
- Tenter repair sur copie.
- Restaurer backup si intégrité douteuse.
- Stopper nouveaux snapshots/backups.
- Identifier gros deltas/ISOs/temp.
- Ajouter capacité si possible.
- Consolider après headroom.
- Valider VMs critiques.
- Vérifier ordre boot BIOS/UEFI.
- Vérifier contrôleur disque virtuel.
- Monter image offline si nécessaire.
- Réparer bootloader/initramfs/BCD.
- Rollback ou restore si conversion récente.
| Contrôle | OK ? | Note |
|---|---|---|
| Format natif plateforme choisi | ☐ | VMDK/VHDX/qcow2/raw. |
| Thin/thick décidé | ☐ | Avec monitoring capacité. |
| Snapshots gouvernés | ☐ | TTL, owner, alertes. |
| Backup restore testé | ☐ | VM complète + application. |
| Templates versionnés | ☐ | Patch, scan, secrets nettoyés. |
- Alertes datastore/pool full.
- Rapport snapshots > seuil.
- Procédure conversion V2V.
- Runbook consolidation.
- Documentation chemins images.
- Chiffrement si données sensibles.
- RBAC sur exports/templates.
- Secrets retirés des golden images.
- Secure erase/crypto erase sortie de parc.
