Optimiser le débit USB 3.0 dans Hyper‑V Gen2 (Windows Server)

Vous constatez un disque USB 3.0 fluide sur l’hôte Hyper‑V mais poussif dans la VM ? Découvrez pourquoi le « mode Session améliorée » limite le débit, puis appliquez des solutions éprouvées pour atteindre des vitesses proches de celles mesurées directement sur Windows Server.

Sommaire

Problématique

Dans de nombreux laboratoires et environnements de production légers, on branche un disque dur externe USB 3.x pour transférer vite de gros jeux de sauvegardes ou de médias. Sur l’hôte Hyper‑V (Windows Server 2019 Datacenter), CrystalDiskMark annonce environ 1 Gb/s en lecture séquentielle. Sitôt le périphérique redirigé vers une VM Gen2 (Windows Server 2016) via la Session améliorée, la bande passante chute brutalement : entre 50 et 90 Mb/s. Cet article détaille l’origine de cette limitation puis déroule plusieurs scénarios pour la contourner sans sacrifier la stabilité ni les fonctions avancées d’Hyper‑V.

Pourquoi la redirection Session améliorée bride le débit

  • Encapsulation RDP : la redirection USB n’est pas un véritable pass‑through. Les transactions USB sont encapsulées dans le flux Remote Desktop Protocol, lequel priorise la faible latence (souris, clavier, audio) plutôt que le transfert séquentiel massif.
  • Goulet d’étranglement logiciel : même si vous disposez d’un contrôleur USB 3.2 Gen 2×2 capable de 20 Gb/s, le canal RDP plafonne souvent à ~100 Mb/s en usage réel. Ce plafond est indépendant des optimisations réseau VMQ, RSS ou Receive Side Coalescing ; il provient du moteur RDP lui‑même.
  • Overhead de copie : chaque paquet USB encapsulé traverse quatre piles : pile USB de l’hôte → service de redirection RDP → pile réseau Hyper‑V (vSwitch) → pile RDP dans la VM → pile USB virtuelle. Chaque saut ajoute des copies mémoire et de la contention CPU.

Solutions pratiques

ApprochePrincipeDébit typiqueContraintes / Points clés
Disque pass‑through ou VHDX sur le disque USB1) Monter le disque USB sur l’hôte.
2) Soit l’attacher à la VM en pass‑through, soit créer un VHDX fixe placé sur ce disque et le présenter à la VM via le contrôleur SCSI virtuel.
400 – 800 Mb/s (limité par USB)Aucune encapsulation RDP ; compatible Live Migration (sauf pass‑through physique).
Partage réseau (SMB, iSCSI, NFS)Partager le volume depuis l’hôte et y accéder dans la VM sur le réseau interne (vSwitch).≥ 1 Gb/s avec 10 GbE ou vSwitch internal ; 100 – 300 Mb/s sur 1 GbEConfiguration simple, pas de matériel supplémentaire.
Discrete Device Assignment (DDA)Installer un contrôleur PCIe USB 3.x dédié, puis le passer en DDA à la VM (accès natif).Identique à l’hôte (~1 Gb/s)Exige matériel SR‑IOV/VT‑d. Pas de Live Migration tant que le périphérique est attribué.
USB over Network tiers (logiciels)Utiliser un service de redirection propriétaire plus performant que RDP.Variable (200 – 600 Mb/s)Sous licence ; nécessite driver/service côté hôte et VM.

Analyse détaillée de chaque option

1. Disque pass‑through ou VHDX fixe

Pour un usage ponctuel (copie, import/export), le pass‑through physique est le plus rapide. Sous PowerShell :

# Sur l'hôte :
Get-Disk | Where-Object BusType -eq USB
Set-VMHardDiskDrive -VMName "SRV‑FICHIERS" -DiskNumber 4

En production continue, un VHDX fixe offre une meilleure portabilité et reste compatible avec Live Migration ;

# Crée un conteneur de 2 To sur le disque USB (lettre E :)
New-VHD -Path "E:\DataVM01.vhdx" -SizeBytes 2TB -Fixed
Add-VMHardDiskDrive -VMName "SRV‑SQL" -Path "E:\DataVM01.vhdx"

Le contrôleur SCSI virtuel d’Hyper‑V gère la mise en cache et la file d’attente parallèle ; on obtient souvent 600 – 800 Mb/s réels, très proche du débit natif USB.

2. Partage réseau sur vSwitch Internal

Transformez votre disque USB en mini‑NAS interne :

  1. Sur l’hôte, partagez « E:\Sauvegardes » avec la permission « SRV‑BACKUP $ » (compte d’ordinateur).
  2. Dans la VM, mappez le partage via le nom NetBIOS de l’hôte ou son IP interne (ex. \\HYP‑01\E$\Sauvegardes).

Par défaut, le trafic reste confiné au vSwitch interne ; il ne sort pas sur la carte physique. Avec une carte 10 GbE ou vSwitch internal pur, on sature aisément les 1 Gb/s du disque USB.
Astuce : activez SMB Multichannel si votre hôte dispose de plusieurs files RSS, ou RDMA si équipé d’adaptateurs compatibles — cela compense la latence USB et accélère les rafales parallèles.

3. Discrete Device Assignment (DDA)

DDA accorde à la VM le contrôle direct d’un périphérique PCIe, contournant totalement l’hyperviseur. Procédure condensée :

# Dans le BIOS, activer Intel VT‑d / AMD‑Vi
# Repérer l'ID de l'USB Controller
Get-PnpDevice -PresentOnly | Where-Object Name -like "*USB 3*"

# Isoler le contrôleur

Dismount-VMHostAssignableDevice -force -LocationPath "PCIROOT(0)#PCI(0201)#USB(0)"

# Attribuer à la VM

Add-VMAssignableDevice -VMName "LAB‑VM01" -LocationPath "PCIROOT(0)#PCI(0201)#USB(0)" 

Dès le prochain démarrage, Windows Server 2016 dans la VM détecte le contrôleur USB comme matériel natif. Les benchmarks montrent le même throughput qu’en bare metal (souvent limité par le bridge SATA→USB du disque, pas par Hyper‑V).
Limitation : la VM devient « non migrable » tant que le périphérique est attaché. Pour migrer, retirez l’assignation puis recréez‑la côté cible.

4. Solutions logicielles USB over Network

Des éditeurs tels qu’Eltima, FlexiHub ou Fabulatech proposent des drivers qui contournent RDP et compressent le flux USB. La bande passante dépend du codec et du CPU mais dépasse souvent les 300 Mb/s. Pour une PME sans budget matériel SR‑IOV, c’est un compromis intéressant ; testez toutefois la stabilité sur flux isochrones (cameras, DAC audio).

Optimisations complémentaires

  • Services d’intégration à jour : vérifiez depuis la VM vmic version. Les builds récents optimisent les files d’attente SCSI, réduisant le temps de réponse sur I/O aléatoire.
  • Contrôleur virtuel : évitez le contrôleur IDE émulé (hérité) ; optez pour SCSI même pour le disque système. Vous gagnez le hot‑add et un queuing plus efficace.
  • VMQ / RSS : ces réglages jouent sur la carte physique. Si vous restez dans un vSwitch internal, ils n’impactent pas la redirection USB.
  • Mémoire & vCPU suffisants : le flux RDP compresse/décompresse ; sur un serveur saturé, la latence CPU accentue le goulot. Allouez au moins deux vCPU dédiés et activez le mode High Performance dans les options d’alimentation Windows.
  • Cluster Shared Volume (CSV) : dans un cluster Hyper‑V, placez le VHDX fixe sur un CSV résidant physiquement sur le disque USB. Cela maintient la haute disponibilité sans pénalité de débit (hors pass‑through brut qui, lui, échappe aux CSV).
  • Surveillance continue : combinez Get-VMHardDiskDriveStats et Get-Counter "\LogicalDisk(_Total)\Avg. Disk sec/Transfer". Un temps moyen > 15 ms indique un possible bouchon USB ou une file saturée.

Méthodologie de test recommandée

  1. Préparation : créez un bloc de données compressible et un autre incompressible (ex. ISO Linux). Copiez‑les séparément pour voir l’impact de la compression RDP ou SMB.
  2. Outils : combinez CrystalDiskMark (test séquentiel) et RoboCopy (/MT:32 /R:0 /W:0) pour reproduire des charges réelles.
  3. Mesures croisées : effectuez trois runs par scénario, puis prenez la médiane pour neutraliser le cache écrit‑livré (write‑back).

Recommandation synthétique

Pour des transferts réguliers et volumineux, abandonnez la redirection RDP :

  • Solution la plus simple : montez le disque USB sur l’hôte et exposez‑le à la VM sous forme de VHDX fixe ou de partage SMB. Cette configuration s’intègre parfaitement à une infrastructure de sauvegarde existante (Veeam, DPM, etc.).
  • Besoin d’un accès USB natif : installez un contrôleur USB dédié et recourez au Discrete Device Assignment. Vous obtiendrez les mêmes performances qu’en bare metal, tout en conservant l’isolement VM.
  • Cas ponctuel de maintenance : si l’on doit brancher une clé éphémère (upgrade firmware, import d’image ISO), la Session améliorée reste pratique ; acceptez alors le plafonnement à ~90 Mb/s.

En appliquant ces stratégies, vous ramenez la VM à des vitesses proches de l’hôte tout en préservant la sécurité, la flexibilité et les capacités de haute disponibilité d’Hyper‑V.

FAQ rapide

La redirection USB de VMware Workstation est‑elle plus rapide ?

Oui, car elle s’appuie sur un driver VMCI propriétaire, non sur RDP. Toutefois en environnement serveur, Hyper‑V offre DDA qui le surpasse nettement.

Puis‑je chaîner plusieurs hubs USB dans le scénario DDA ?

Techniquement oui, tant qu’ils sont derrière le même contrôleur ; mais maintenez la longueur de chaîne inférieure à 5 m pour éviter la gigue d’horloge.

Live Migration + DDA : comment l’automatiser ?

Écrivez un script PowerShell qui retire le périphérique (Remove-VMAssignableDevice), déclenche la migration (Move-VM) puis ré‑attache la carte sur le nœud cible. Dans Windows Server 2022, Failover Clustering expose déjà ces hooks.

Conclusion

Les performances USB dans une VM Hyper‑V dépendent moins de la génération du contrôleur que du mode de présentation : RDP encapsule, DDA et VHDX exposent. En sélectionnant la bonne approche pour vos workloads (sauvegardes, import de médias, capture temps réel), vous éliminez les goulots d’étranglement tout en gardant l’élasticité que procure la virtualisation.

Sommaire