Retour : Microsoft Hyper-V
Une VM Hyper-V se compose de fichiers rangés dans les dossiers définis par l'hôte (voir Paramétrage de base) :
| Fichier | Rôle |
|---|---|
<GUID>.vmcx |
Configuration de la VM |
<GUID>.vmrs |
État d'exécution (mémoire lors d'une mise en veille) |
*.vhdx |
Disque virtuel |
*.avhdx |
Disque de différenciation d'un point de contrôle (snapshot) |
| Format | Taille maximale | Remarque |
|---|---|---|
| VHDX | 64 To | Format actuel : résistant aux coupures de courant, secteurs de 4 Ko |
| VHD | 2 To | Ancien format, compatibilité uniquement |
| Type | Principe | Usage |
| --- | --- | --- |
| Dynamique | Le fichier grossit au fil des écritures | Cas général, économise l'espace |
| Fixe | Toute la taille est allouée à la création | Performances prévisibles (bases de données) |
| Différenciation | Ne contient que les écarts avec un disque parent | Points de contrôle, laboratoires à partir d'un disque modèle |
⚠️ Ne jamais modifier ou déplacer un disque parent : tous ses disques de différenciation deviennent inutilisables.
Choisie à la création, non modifiable ensuite :
| Génération 1 | Génération 2 | |
|---|---|---|
| Micrologiciel | BIOS | UEFI, démarrage sécurisé, TPM virtuel |
| Démarrage | Contrôleur IDE | Contrôleur SCSI |
| Disque de démarrage | Jusqu'à 2 To (MBR) | Jusqu'à 64 To (GPT) |
| Usage | Systèmes anciens (32 bits, sans UEFI) | Par défaut pour Windows récents et Linux récents |
💡 Windows 11 exige une VM de génération 2 avec démarrage sécurisé et TPM virtuel activés (Paramètres de la VM → Sécurité).
💡 Pour un invité Linux en génération 2, choisir le modèle de démarrage sécurisé Autorité de certification UEFI Microsoft (Paramètres → Sécurité), sinon il ne démarre pas.
# Créer un disque dynamique de 60 Go et un disque fixe de 100 Go
New-VHD -Path "D:\Hyper-V\Disques\SRV01-data.vhdx" -SizeBytes 60GB -Dynamic
New-VHD -Path "D:\Hyper-V\Disques\SQL01-data.vhdx" -SizeBytes 100GB -Fixed
# Ajouter le disque à la VM (contrôleur SCSI, possible VM allumée)
Add-VMHardDiskDrive -VMName SRV01 -ControllerType SCSI -Path "D:\Hyper-V\Disques\SRV01-data.vhdx"
# Agrandir (possible à chaud sur le contrôleur SCSI), puis étendre le volume dans l'invité
Resize-VHD -Path "D:\Hyper-V\Disques\SRV01-data.vhdx" -SizeBytes 80GB
# Taille réelle du fichier / taille maximale
Get-VHD -Path "D:\Hyper-V\Disques\SRV01-data.vhdx" | Select-Object VhdType, FileSize, Size
# Convertir un disque dynamique en fixe (VM arrêtée)
Convert-VHD -Path "D:\Hyper-V\Disques\SRV01.vhdx" -DestinationPath "D:\Hyper-V\Disques\SRV01-fixe.vhdx" -VHDType Fixed
# Récupérer l'espace d'un disque dynamique (VM arrêtée)
Optimize-VHD -Path "D:\Hyper-V\Disques\SRV01.vhdx" -Mode Full
# Lister les disques de toutes les VM
Get-VM | Get-VMHardDiskDrive | Select-Object VMName, ControllerType, Path
Dans l'invité, étendre le volume après un agrandissement :
$taille = (Get-PartitionSupportedSize -DriveLetter E).SizeMax
Resize-Partition -DriveLetter E -Size $taille
Déplacement du stockage à chaud, sans arrêter la VM :
Move-VMStorage -VMName SRV01 -DestinationStoragePath "E:\Hyper-V\SRV01"
Ou Gestionnaire Hyper-V → VM → Déplacer → Déplacer le stockage de l'ordinateur virtuel.
| Stockage | Partagé entre hôtes | Remarque |
|---|---|---|
| Disques locaux (NTFS / ReFS) | Non | ReFS accélère la création des disques fixes et la fusion des points de contrôle |
| Espaces de stockage (Storage Spaces) | Non | Miroir / parité logiciels sur des disques locaux |
| Partage SMB 3 (serveur de fichiers Windows) | Oui | Simple, sans SAN ; droits NTFS et de partage aux comptes ordinateurs des hôtes |
| LUN iSCSI / Fibre Channel | Oui | Avec un cluster : volumes partagés de cluster (CSV) |
| Storage Spaces Direct (S2D) | Oui | Hyperconvergé, Windows Server Datacenter |
Start-Service MSiSCSI
Set-Service MSiSCSI -StartupType Automatic
New-IscsiTargetPortal -TargetPortalAddress 192.168.30.20
Get-IscsiTarget
Connect-IscsiTarget -NodeAddress "<IQN-de-la-cible>" -IsPersistent $true
# Initialiser et formater le nouveau disque
Get-Disk | Where-Object PartitionStyle -eq 'RAW' |
Initialize-Disk -PartitionStyle GPT -PassThru |
New-Partition -AssignDriveLetter -UseMaximumSize |
Format-Volume -FileSystem ReFS -NewFileSystemLabel "VM-iSCSI"
💡 Placer le trafic iSCSI sur une carte et un VLAN dédiés, sans le faire passer par le commutateur virtuel des VM.
Avec des disques dynamiques, la somme des tailles maximales peut dépasser l'espace du volume. Surveiller l'espace libre réel :
Get-Volume | Select-Object DriveLetter, FileSystemLabel, SizeRemaining, Size
# Espace total réellement occupé par les disques des VM
Get-VM | Get-VMHardDiskDrive | Get-VHD |
Measure-Object -Property FileSize -Sum
⚠️ Un volume plein met en pause les VM qui tentent d'écrire (état « Suspendu-critique »). Garder 20 à 30 % d'espace libre, en tenant compte des points de contrôle.