Hyper-V sur Windows Server : virtualisation native

Hyper-V sur Windows Server : virtualisation native

Activez Hyper-V sur votre VPS Windows Server pour créer des VMs imbriquées. Idéal pour des labs, des environnements de test, de la VDI ou pour héberger plusieurs systèmes sur un même Dédié VeryCloud Ryzen.

Introduction

Hyper-V est l'hyperviseur de type 1 intégré à Windows Server. Il permet de créer des machines virtuelles directement sur votre serveur sans avoir à installer VMware ou Proxmox.

Cas d'usage :

  • Lab de test multi-OS (Linux, Windows, BSD)
  • Isolation de plusieurs apps sur un seul Dédié
  • VDI / postes Windows à distance
  • CI/CD avec environnements isolés

⚠️ Sur un VPS, Hyper-V nécessite la virtualisation imbriquée activée par votre hôte. Sur les Dédiés VeryCloud (Ryzen avec AMD-V), c'est automatique. Sur les VPS, contactez le support.

Prérequis

  • Windows Server 2019 / 2022 / 2025 (Standard ou Datacenter)
  • CPU avec extensions de virtualisation (AMD-V / Intel VT-x)
  • Au moins 8 Go de RAM (16-32 Go pour plusieurs VMs)
  • Disque rapide (NVMe recommandé)
  • Pour un VPS : virtualisation imbriquée activée par l'hôte

Étape 1 : Vérifier la compatibilité

Get-ComputerInfo -Property "HyperV*"

Vous devez voir :

HyperVRequirementDataExecutionPreventionAvailable : True
HyperVRequirementSecondLevelAddressTranslation    : True
HyperVRequirementVirtualizationFirmwareEnabled    : True
HyperVRequirementVMMonitorModeExtensions          : True

Si tout est à False, votre hyperviseur hôte ne permet pas le nested virt.

Étape 2 : Installer le rôle Hyper-V

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Le serveur redémarre. Au redémarrage, Hyper-V est actif.

Vérifier

Get-Service vmms
Get-WindowsFeature Hyper-V

Étape 3 : Ouvrir le Hyper-V Manager

virtmgmt.msc

Ou via Server Manager → Tools → Hyper-V Manager.

Étape 4 : Configurer un Virtual Switch

Pour que vos VMs aient accès au réseau, créez un switch virtuel.

Switch External (VMs ont accès Internet via votre IP publique)

# Lister les adaptateurs physiques
Get-NetAdapter

# Créer le switch
New-VMSwitch -Name "vSwitch-External" -NetAdapterName "Ethernet" -AllowManagementOS $true

AllowManagementOS $true garde l'accès réseau pour l'hôte.

Switch Internal (VMs entre elles + hôte, pas d'internet)

New-VMSwitch -Name "vSwitch-Internal" -SwitchType Internal

Switch Private (VMs entre elles uniquement)

New-VMSwitch -Name "vSwitch-Private" -SwitchType Private

Lister les switches

Get-VMSwitch

Étape 5 : Créer une VM (PowerShell)

$VMName = "vm-debian-01"
$VMPath = "D:\VMs"
$ISOPath = "D:\ISOs\debian-12-amd64-netinst.iso"
$VHDPath = "$VMPath\$VMName\$VMName.vhdx"

# Créer la VM Gen 2 (UEFI)
New-VM -Name $VMName `
    -Generation 2 `
    -MemoryStartupBytes 4GB `
    -Path "$VMPath\$VMName" `
    -NewVHDPath $VHDPath `
    -NewVHDSizeBytes 40GB `
    -SwitchName "vSwitch-External"

# Allouer 2 vCPUs
Set-VMProcessor -VMName $VMName -Count 2

# Activer Dynamic Memory
Set-VMMemory -VMName $VMName `
    -DynamicMemoryEnabled $true `
    -MinimumBytes 2GB `
    -MaximumBytes 8GB

# Désactiver Secure Boot pour Linux (sinon erreur de boot)
Set-VMFirmware -VMName $VMName -EnableSecureBoot Off

# Attacher l'ISO d'installation
Add-VMDvdDrive -VMName $VMName -Path $ISOPath

# Démarrer la VM
Start-VM -Name $VMName

Étape 6 : Se connecter à la VM

vmconnect.exe localhost $VMName

Ou via Hyper-V Manager → clic droit sur la VM → Connect.

Vous voyez l'écran de boot et pouvez installer l'OS comme sur un PC normal.

Étape 7 : Gérer les VMs en PowerShell

# Lister
Get-VM

# Démarrer / Arrêter
Start-VM -Name "vm-debian-01"
Stop-VM -Name "vm-debian-01" -Force

# Pause / Reprise
Suspend-VM -Name "vm-debian-01"
Resume-VM -Name "vm-debian-01"

# Reboot
Restart-VM -Name "vm-debian-01" -Force

# État détaillé
Get-VM -Name "vm-debian-01" | Format-List *

# Supprimer (garde le VHD)
Remove-VM -Name "vm-debian-01" -Force

Étape 8 : Snapshots (Checkpoints)

Avant une mise à jour majeure, créez un snapshot :

# Créer
Checkpoint-VM -Name "vm-debian-01" -SnapshotName "Pre-update-$(Get-Date -Format yyyy-MM-dd)"

# Lister
Get-VMSnapshot -VMName "vm-debian-01"

# Restaurer
Restore-VMSnapshot -Name "Pre-update-2026-05-16" -VMName "vm-debian-01" -Confirm:$false

# Supprimer un snapshot
Remove-VMSnapshot -VMName "vm-debian-01" -Name "Pre-update-2026-05-16"

⚠️ Les snapshots ne sont pas des backups. Ils sont chaînés au disque parent. Pour un vrai backup, voir étape 12.

Étape 9 : Importer/Exporter des VMs

Exporter

Export-VM -Name "vm-debian-01" -Path "D:\Exports"

L'export contient tout : config, VHD, snapshots. Vous pouvez déplacer le dossier.

Importer

Import-VM -Path "D:\Exports\vm-debian-01\Virtual Machines\xxx.vmcx" -Copy -GenerateNewId

-GenerateNewId permet d'importer en parallèle de l'original.

Étape 10 : Templates de VMs

Pour déployer 10 VMs identiques, créez un template :

  1. Créez une VM "golden" (Debian + configs de base)
  2. Lancez sysprep (Windows) ou cloud-init clean (Linux)
  3. Arrêtez la VM
  4. Copiez son VHDX :
Copy-Item "D:\VMs\template\template.vhdx" "D:\VMs\vm-new\vm-new.vhdx"
  1. Créez une nouvelle VM en pointant ce VHDX :
New-VM -Name "vm-new" -Generation 2 -MemoryStartupBytes 4GB -VHDPath "D:\VMs\vm-new\vm-new.vhdx" -SwitchName "vSwitch-External"

Étape 11 : Networking avancé

Bandwidth limit par VM

Set-VMNetworkAdapter -VMName "vm-debian-01" -MaximumBandwidth 100MB

VLAN tagging

Set-VMNetworkAdapterVlan -VMName "vm-debian-01" -Access -VlanId 100

Adresse MAC statique

Set-VMNetworkAdapter -VMName "vm-debian-01" -StaticMacAddress "00-15-5D-00-AA-01"

Étape 12 : Backup des VMs

Solution simple : Hyper-V Replica

Réplication asynchrone vers un autre serveur Hyper-V :

# Sur le serveur cible
Set-VMReplicationServer -ReplicationEnabled $true -AllowedAuthenticationType Kerberos -ReplicationAllowedFromAnyServer $true -DefaultStorageLocation "D:\Replicas"

# Sur le serveur source
Enable-VMReplication -VMName "vm-debian-01" -ReplicaServerName "DR-SERVER" -ReplicaServerPort 80 -AuthenticationType Kerberos
Start-VMInitialReplication -VMName "vm-debian-01"

Solution : Windows Server Backup

Install-WindowsFeature Windows-Server-Backup

# Backup config + VHD vers un disque externe
wbadmin start backup -backupTarget:E: -hyperv:"vm-debian-01" -quiet

Solution avancée : Veeam Backup Free Edition

Pour de la gestion centralisée multi-VMs, gratuit jusqu'à 10 VMs.

Étape 13 : Performance et tuning

Désactiver Time Synchronization pour les VMs avec NTP propre

Disable-VMIntegrationService -VMName "vm-debian-01" -Name "Time Synchronization"

Activer SR-IOV (réseau ultra-rapide, si supporté par la NIC)

Set-VMNetworkAdapter -VMName "vm-debian-01" -IovWeight 100

Storage QoS

Set-VMHardDiskDrive -VMName "vm-debian-01" -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -MaximumIOPS 1000

Dépannage

"Failed to start, virtualization not enabled"

Sur un VPS, demandez à l'hébergeur d'activer la virtualisation imbriquée. Sur un Dédié VeryCloud Ryzen, AMD-V est actif par défaut.

# Activer le nested virt (depuis l'hôte, pas la VM)
Set-VMProcessor -VMName "vm-name" -ExposeVirtualizationExtensions $true

VM ne démarre pas (Gen 2)

Pour les ISO Linux non-UEFI, créez une VM Gen 1 :

New-VM ... -Generation 1

Ou désactivez Secure Boot (déjà fait à l'étape 5).

"The requested resource is in use"

Une autre opération est en cours. Attendez puis :

Get-VM | Where-Object State -eq 'Stopping'

Erreur réseau dans la VM

Vérifiez que le vSwitch existe et est lié à un adaptateur up :

Get-VMSwitch | Format-List Name, NetAdapterInterfaceDescription
Get-NetAdapter

Commandes utiles

# Vue d'ensemble
Get-VM | Format-Table Name, State, CPUUsage, MemoryAssigned, Uptime

# VMs avec problèmes
Get-VM | Where-Object Status -ne 'Operating normally'

# Ressources disponibles
Get-VMHost | Select MemoryCapacity, LogicalProcessorCount

# Lister tous les VHDX
Get-VHD -Path "D:\VMs\*\*.vhdx" | Format-Table Path, Size, FileSize

# Compactage d'un VHDX (à VM éteinte)
Optimize-VHD -Path "D:\VMs\vm-debian-01\vm-debian-01.vhdx" -Mode Full

# Redimensionner un VHDX
Resize-VHD -Path "..." -SizeBytes 100GB

# Statistiques par VM
Measure-VM -Name "vm-debian-01"

# Désactiver Hyper-V (si besoin)
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Conclusion

Avec Hyper-V vous transformez un Dédié en hyperviseur complet :

  • Plusieurs OS sur un seul matériel
  • Isolation entre apps (DB / web / app sur des VMs séparées)
  • Snapshots avant changements risqués
  • Réplication possible vers un site de secours

Pour aller plus loin :

  • Migrez vers Windows Admin Center pour une UI web moderne
  • Utilisez System Center Virtual Machine Manager (SCVMM) pour orchestrer plusieurs hôtes
  • Pour du Linux uniquement, Proxmox VE est souvent plus pratique
  • WSL2 sur Windows utilise déjà Hyper-V en arrière-plan

Ressources

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members