-
Qu’est-ce que le transfert PCI dans Proxmox ?
-
Exigences matérielles et compatibilité
-
Validation du support matériel avant l’installation
-
Activation de l’IOMMU dans le BIOS
-
Configuration de Proxmox VE pour le passage direct PCI
-
Préparation des périphériques pour l’attribution en mode « passthrough »
-
Conseils avancés et résolution des problèmes
-
Solution de sauvegarde de niveau entreprise pour vos machines virtuelles Proxmox
-
Foire aux questions sur le passage direct PCI Proxmox
-
Conclusion
Le transfert direct PCI est l’une des fonctionnalités les plus puissantes de Proxmox VE. Il vous permet d’attribuer directement à vos machines virtuelles des périphériques PCIe physiques, tels que des GPU, des cartes réseau (cartes NIC) ou des contrôleurs de stockage. Cela peut améliorer les performances, réduire la latence et permettre l’exécution de charges de travail avancées nécessitant un accès direct au matériel. Mais comment le configurer ? Dans ce guide, nous abordons tous les aspects, des notions de base aux dépannages avancés, afin que vous maîtrisiez pleinement le transfert direct PCI sous Proxmox dans votre environnement.
Qu’est-ce que le transfert PCI dans Proxmox ?
Le transfert PCI permet à une machine virtuelle de contrôler un périphérique PCIe physique comme s’il était directement installé sur sa propre carte mère. Lorsque vous affectez un périphérique à l’aide du transfert PCI dans Proxmox, ce périphérique devient invisible pour le système hôte jusqu’à ce que la machine virtuelle le libère — il s’agit d’une isolation matérielle réelle.
Pourquoi cela est-il important ? Certaines charges de travail nécessitent un accès direct à du matériel spécialisé pour des raisons de vitesse ou de compatibilité :
Attribuer une carte graphique (GPU) pour l’apprentissage automatique ou le codage vidéo.
Transit via une carte réseau haute vitesse pour les équipements réseau.
Attribuer un contrôleur de stockage à ZFS ou à d’autres systèmes de fichiers au sein d’une machine virtuelle.
Le cœur de cette fonctionnalité est l’IOMMU (unité de gestion mémoire entrée-sortie). L’IOMMU établit de façon sécurisée des correspondances entre les accès mémoire des périphériques, les machines virtuelles et la mémoire vive physique. Sur les plateformes Intel, cette technologie porte le nom de VT-d ; sur les plateformes AMD, elle est désignée sous le nom d’AMD-Vi ou de mode SVM. En l’absence d’un support IOMMU au niveau à la fois du processeur et de la carte mère, le passage direct de périphériques PCI sous Proxmox ne fonctionnera pas de manière fiable — voire pas du tout.
La plupart des processeurs modernes de classe serveur prennent nativement en charge ces fonctionnalités, mais consultez toujours la documentation de votre modèle spécifique avant de commencer.
Exigences matérielles et compatibilité
Avant de configurer le passage direct PCI sous Proxmox, assurez-vous que votre matériel le prend entièrement en charge ; dans le cas contraire, vous pourriez rencontrer des obstacles frustrants ultérieurement.
Premier point : Prise en charge du processeur (CPU)
Les processeurs Intel doivent prendre en charge VT-d.
Les processeurs AMD nécessitent le mode AMD-Vi/SVM.
Vérifiez les caractéristiques techniques de votre processeur en ligne si vous n’êtes pas sûr ; recherchez « VT-d » (Intel) ou « AMD-Vi »/« SVM » (AMD).
Deuxième point : Prise en charge de la carte mère
Tous les jeux de composants ne prennent pas en charge l’intégralité des fonctionnalités de l’IOMMU, même si votre processeur le fait ! Les cartes serveur fonctionnent généralement le mieux ; certaines cartes grand public font des compromis à cet égard.
Recherchez le modèle de votre carte sur le site de son fabricant ou consultez les forums communautaires pour trouver des témoignages de réussite concernant le passage PCI sous Proxmox.
Troisième point : Compatibilité avec les appareils
La plupart des périphériques PCIe peuvent être transférés, notamment les GPU (NVIDIA/AMD/Intel), les cartes réseau (NIC), les contrôleurs USB et les cartes RAID, mais certains présentent des particularités :
Les appareils multifonctions peuvent nécessiter le passage de toutes les fonctions ensemble.
Les cartes compatibles SR-IOV peuvent présenter plusieurs fonctions « virtuelles » pour être partagées entre les machines virtuelles.
Si possible, effectuez d’abord des tests avec du matériel de secours avant de déployer des charges de travail critiques !
Quatrièmement : Paramètres du micrologiciel
Mettez à jour le micrologiciel BIOS/UEFI avant de commencer — les versions antérieures peuvent ne pas comporter les options essentielles de virtualisation requises par Proxmox VE 7.x et versions ultérieures.
Validation du support matériel avant l’installation
Il est utile de vérifier la compatibilité avant d’apporter des modifications :
1. Démarrez dans l’interpréteur de commandes Proxmox.
2. Exécutez la commande lscpu — vérifiez que les indicateurs de virtualisation sont présents (vmx pour Intel ; svm pour AMD).
3. Vérifiez les périphériques PCI disponibles :
lspci -nnk
Identifiez les périphériques que vous souhaitez transférer ultérieurement.
4. Rechercher dans les journaux dmesg :
dmesg | grep -i iommu
Si aucun message concernant l’activation de l’IOMMU n’apparaît après le démarrage — même après avoir activé les paramètres BIOS — vous devrez peut-être utiliser un matériel différent ou mettre à jour le micrologiciel.
En confirmant dès maintenant ces points, vous évitez de perdre du temps ultérieurement à résoudre des problèmes liés à des configurations non prises en charge !
Activation de l’IOMMU dans le BIOS
L’activation de l’IOMMU au niveau du micrologiciel est essentielle : le reste de la fonctionnalité de passage direct PCI sous Proxmox en dépend et nécessite qu’elle fonctionne correctement dès la mise sous tension :
1. Redémarrez votre serveur et accédez à la configuration du BIOS/UEFI (touche Suppr, F2 ou similaire au démarrage).
2. Recherchez les paramètres de virtualisation dans les menus Avancé > Configuration du processeur ou Jeu de composants.
Pour Intel : activez la fonction VT-d/Technologie de virtualisation Intel pour les E/S dirigées.
Pour AMD : activez le mode SVM, AMD-Vi ou simplement IOMMU, selon la formulation du menu.
3. Activez toute option trouvée liée à « IOMMU », « VT-d » ou « Mode SVM ».
4. Si disponible, activez les Services de contrôle d’accès (ACS) : cela permet d’isoler les appareils multifonctions en groupes distincts afin qu’ils ne s’interfèrent pas les uns avec les autres lors de l’affectation.
5. Enregistrez les modifications (F10) et quittez la configuration du BIOS/UEFI.
Si vous n’êtes pas sûr que les paramètres aient été appliqués après le redémarrage dans Proxmox :
dmesg | grep -e DMAR -e IOMMU
Vous devriez voir des lignes telles que DMAR : IOMMU activé (Intel) ou AMD-Vi : IOMMU activé (AMD).
Sans une configuration adéquate du micrologiciel ici, aucune modification logicielle ne permettra de faire fonctionner le passage PCI sous Proxmox !
Configuration de Proxmox VE pour le passage direct PCI
Une fois le micrologiciel prêt, configurons pas à pas Proxmox lui-même :
Étape 1 : Déterminer le type de chargeur de démarrage utilisé
Proxmox utilise soit GRUB (le plus courant), soit systemd-boot, selon la méthode d’installation :
Exécuter :
efibootmgr -v
Si la sortie mentionne systemd-boot, c’est ce que vous utilisez ; sinon, supposez GRUB, sauf si un autre chargeur a été installé manuellement.
Pourquoi est-ce important ? La méthode de configuration des paramètres du noyau diffère entre eux — et ces paramètres sont essentiels pour activer, au démarrage, les fonctionnalités de passage PCI sous Proxmox !
Étape 2 : Modifier les paramètres de démarrage du noyau
Les paramètres du noyau indiquent à Linux comment gérer les extensions de virtualisation au cours des premières phases du démarrage :
Pour les utilisateurs de GRUB :
1. Ouvrez /etc/default/grub dans un éditeur de texte :
nano /etc/default/grub
2. Recherchez la ligne commençant par GRUB_CMDLINE_LINUX_DEFAULT.
3a. Sur les processeurs Intel, ajoutez :
quiet intel_iommu=on iommu=pt
3b. Sur les processeurs AMD, ajoutez :
quiet amd_iommu=on iommu=pt
Remarque : Les noyaux récents activent souvent automatiquement AMD-Vi si SVM/IOMMU est activé dans le BIOS, mais l’ajout de ces deux paramètres garantit une fiabilité accrue lors des mises à jour !
4. Enregistrer le fichier (Ctrl+X, puis Y, puis Entrée).
5. Mettre à jour la configuration de GRUB afin que les modifications prennent effet au prochain redémarrage :
update-grub
Pour les utilisateurs de systemd-boot :
1. Ouvrez /etc/kernel/cmdline :
nano /etc/kernel/cmdline
2. Ajoutez les paramètres appropriés comme indiqué ci-dessus (intel_iommu=on iommu=pt ou amd_iommu=on iommu=pt) à la fin de la ligne, après les entrées existantes telles que les informations root/zfs.
3. Enregistrez le fichier, puis actualisez la configuration du chargeur de démarrage :
  proxmox-boot-tool refresh
Que signifient ces indicateurs ?
Étape 3 : Charger les modules noyau VFIO
Les modules VFIO (« Virtual Function IO ») permettent de transférer en toute sécurité des périphériques PCIe depuis l’espace noyau du système d’exploitation hôte directement vers les machines virtuelles invitées via la pile QEMU/KVM :
Modifiez le fichier /etc/modules afin que ces modules soient chargés automatiquement à chaque démarrage :
nano /etc/modules
Ajoutez les lignes ci-dessous si elles ne sont pas déjà présentes :
vfio vfio_iommu_type1 vfio_pci vfio_virqfd # Facultatif, mais améliore la stabilité de la gestion des interruptions !
Enregistrez le fichier une fois terminé (Ctrl+X, puis Y).
Étape 4 : Mettre à jour l’initramfs et redémarrer le serveur
La mise à jour de l’initramfs garantit que les nouveaux pilotes et configurations sont intégrés dès les premières étapes du processus de démarrage de Linux :
Exécutez les deux commandes ci-dessous en tant qu’utilisateur racine ou avec sudo :
update-initramfs -u -k all redémarrer
Une fois le redémarrage terminé avec succès, passez immédiatement aux étapes de vérification ci-dessous — ne les ignorez pas !
Étape 5 : Vérifiez que tout fonctionne correctement jusqu’à présent
Dès que vous êtes de nouveau en ligne, effectuez les vérifications suivantes :
Vérifiez que l’IOMMU a été activé correctement.
dmesg | grep -e DMAR -e IOMMU
Recherchez des messages de confirmation tels que « DMAR : IOMMU activé » (Intel) ou « AMD-Vi : trouvé » / « IOMMU activé » (AMD).
Vérifier l’état de la remappage des interruptions—
dmesg | grep 'remapping'
Vous devriez voir des lignes telles que « DMAR-IR : réaffectation des interruptions activée… », indiquant un fonctionnement correct — une condition indispensable, notamment lorsqu’on attribue des GPU ou des cartes réseau nécessitant des interruptions MSI/MSI-X aux machines virtuelles !
Si l’une ou l’autre commande ne renvoie aucun résultat pertinent, vérifiez soigneusement les étapes précédentes avant de poursuivre la configuration de la transmission PCI sous Proxmox !
Préparation des périphériques pour l’attribution en mode « passthrough »
La préparation réelle des périphériques commence maintenant — c’est le cœur de tout déploiement Proxmox utilisant le « passthrough » PCI réussi ! Voici comment garantir un transfert sécurisé du noyau hôte vers le contexte de la machine virtuelle invitée…
Vérifier l’isolation des périphériques à l’aide des groupes IOMMU
Chaque périphérique PCIe appartient à un « groupe IOMMU ». Les périphériques appartenant au même groupe ne peuvent pas être affectés indépendamment : ils doivent être déplacés conjointement en raison des ressources de bus partagées ou des limitations matérielles imposées par la conception même du chipset !
Pour afficher clairement la liste des groupes, exécutez la commande suivante —
find /sys/kernel/iommu_groups/ -type l | sort | while read link; do \ group=$(echo $link | cut -d'/' -f5); \ device=$(basename $link); \ echo "Groupe $group : $(lspci -nns $device)"; done;
Identifiez le ou les périphériques cibles — s’ils sont seuls dans leur groupe, parfait ! Sinon, essayez de déplacer physiquement la ou les cartes entre différents emplacements, ou activez, si disponible dans le BIOS, la fonction de contournement ACS (« Access Control Services »)…
Ne considérez l’ajout d’un paramètre noyau que comme dernier recours—
pcie_acs_override=downstream,multifunction
pour dissoudre des groupes récalcitrants—mais attention aux implications en matière de sécurité, car les garanties strictes d’isolation sont perdues lorsque l’on utilise des astuces de contournement !
Placer les pilotes hôtes sur liste noire afin qu’ils ne revendiquent pas en premier le périphérique
Pour de nombreuses GPU, cartes réseau (NIC) et contrôleurs de stockage, les pilotes Linux par défaut prennent le contrôle trop tôt, empêchant un transfert propre à VFIO… Solution ? Placer explicitement ces pilotes sur liste noire —
Modifier le fichier /etc/modprobe.d/blacklist.conf :
Pour les GPU NVIDIA, ajoutez les lignes suivantes —
blacklist nouveau blacklist nvidia blacklist nvidiafb blacklist nvidia_drm
Pour les GPU AMD, ajoutez—
blacklist amdgpu blacklist radeon
Pour les iGPU Intel, ajoutez —
liste noire i915
Enregistrez le fichier une fois terminé ! Remarque : uniquement pour les serveurs sans interface graphique ; ne mettez pas sur liste noire l’adaptateur d’affichage principal utilisé par la console hôte, sauf s’il existe un autre chemin de gestion à distance…
Conseils avancés et résolution des problèmes
Même les administrateurs expérimentés rencontrent parfois des difficultés… Voici des solutions éprouvées couvrant la plupart des problèmes les plus fréquents observés lors du déploiement du passage PCI sous Proxmox aujourd’hui —
Choisissez toujours le type de machine virtuelle = q35 combiné au firmware UEFI OVMF, chaque fois que cela est possible : cela maximise la compatibilité, en particulier pour les affectations de GPU !
intel_iommu=on: active le moteur VT-d sur les jeux de circuits Intel pris en charge ;amd_iommu=on: Active la fonction équivalente sur les jeux de circuits AMD pris en charge ;iommu=pt: Active le mode de passage direct afin que les dispositifs inutilisés ne soient pas bloqués lors de leur affectation ;quiet: Réduit le bruit de la console au démarrage — pas strictement requis, mais permet de garder les journaux propres !Passez TOUS les fonctions appartenant à la même carte ensemble, par exemple, graphiques + bloc audio HDMI, sinon les invités Windows/Linux peuvent échouer silencieusement à l’initialisation !
Installez les derniers pilotes officiels DANS le système invité — et non sur l’hôte — pour la carte ou le contrôleur qui vous est attribué…
Solution de contournement pour le code d’erreur NVIDIA 43 — dans la configuration de la machine virtuelle (fichier .conf situé dans
/etc/pve/qemu-server/<vmid>.conf), ajoutez la ligne suivante :args:-cpu host,kvm=on,hv_vendor_id=null. Cela masque la signature de KVM/QEMU, trompant ainsi les vérifications effectuées par le pilote…Certaines anciennes cartes graphiques AMD ou des modèles milieu de gamme présentent un bogue de réinitialisation qui empêche leur réutilisation après plusieurs démarrages/arrêts sans redémarrage à froid… Solution ? Installer le module DKMS open-source
vendor-resetcôté hôte en suivant scrupuleusement les instructions fournies sur GitHub…Si vous rencontrez des erreurs de mappage d’interruptions, essayez d’ajouter le paramètre noyau suivant :
vfio_iommu_type1.allow_unsafe_interrupts=1. N’utilisez cette solution que de façon temporaire, en attendant une correction appropriée, car elle désactive les contrôles stricts de sécurité…Le transfert des contrôleurs USB nécessite souvent l’ensemble du concentrateur/groupe en raison des limites liées à la conception de la puce… Confirmez le regroupement à l’aide des scripts précédents ou de la sortie de la commande « lspci »…
Les SSD NVMe dépassent-ils le délai d’attente ? Ajoutez l’indicateur du noyau :
nvme_core.default_ps_max_latency_us=0.
N’oubliez pas : documentez systématiquement chaque modification effectuée afin que la restauration ou le dépannage restent simples, même des mois plus tard…
Solution de sauvegarde de niveau entreprise pour vos machines virtuelles Proxmox
Une fois que vous avez configuré des charges de travail avancées à l’aide du passage direct PCI dans Proxmox VE, il est essentiel de protéger ces machines virtuelles contre les pertes de données — qu’il s’agisse d’une suppression accidentelle, d’attaques de rançongiciels ou de pannes matérielles — ce qui nous amène naturellement à examiner des stratégies de sauvegarde spécifiquement adaptées aux environnements professionnels tels que le vôtre.
Vinchin se distingue comme une solution professionnelle de sauvegarde de machines virtuelles, spécifiquement conçue pour répondre aux besoins des entreprises. Elle offre un soutien robuste non seulement pour Proxmox VE, mais aussi pour VMware vSphere/ESXi/vCenter, Hyper-V, oVirt/RHV/OLVM, XCP-ng/XenServer/Citrix Hypervisor et les environnements de nuages OpenStack KVM/ZStack/Huawei FusionCompute/H3C CAS UIS/Sangfor HCI — soit au total plus de quinze plates-formes de virtualisation leaders mondialement reconnues ! Puisque vous utilisez spécifiquement Proxmox dans votre cas, l’intégration native de Vinchin garantit des flux de travail de protection transparents, parfaitement adaptés à l’architecture de cette plate-forme, ainsi qu’aux autres plates-formes mentionnées ci-dessus, si une infrastructure hybride devait être déployée à l’avenir.
Les points forts incluent la technologie de sauvegarde incrémentale permanente, qui réduit au minimum l’utilisation du stockage en ne capturant que les blocs modifiés après une première sauvegarde complète, ainsi que des moteurs intégrés de dé-duplication et de compression permettant de réduire considérablement l’empreinte des sauvegardes sans nuire à la vitesse de restauration. Vinchin permet également la migration V2V interplateforme entre les hyperviseurs pris en charge, offrant ainsi une grande flexibilité aux équipes informatiques lors des mises à niveau ou des transitions vers le cloud. D’autres fonctionnalités remarquables comprennent les sauvegardes planifiées ou répétitives, le chiffrement des données, la transmission multithread, la politique de rétention GFS et des capacités de restauration granulaire — le tout accessible via une console web intuitive, conçue pour être maîtrisée rapidement, même par des non-spécialistes.
Sauvegarder une machine virtuelle Proxmox ne prend que quatre étapes simplifiées dans l’interface web de Vinchin :
(1) Sélectionnez la machine virtuelle cible dans l’inventaire ;

(2) Choisir le stockage de sauvegarde privilégié ;

(3) Configurer les stratégies de sauvegarde ;

(4) Envoyer la tâche — avec une surveillance intégrée de la progression.

Aucun script complexe requis, et les opérations de restauration sont tout aussi simples grâce aux outils de restauration immédiate et de restauration granulaire intégrés à l’architecture fiable du moteur Vinchin, largement adoptée à travers le monde par des milliers d’organisations, grandes et petites. Téléchargez leur version d’essai gratuite complète, valable soixante jours, et découvrez par vous-même un déploiement sans effort — cliquez simplement ci-dessous, commencez dès maintenant et protégez dès aujourd’hui ce qui compte le plus pour vous !
Foire aux questions sur le passage direct PCI Proxmox
Q1 : Comment puis-je revenir en toute sécurité à la configuration d’origine de mon serveur si ma carte graphique passée en mode direct provoque un écran noir après le redémarrage ?
A1 : Se connecter à distance via SSH, modifier les fichiers de liste noire/vfio.conf, supprimer les entrées problématiques, mettre à jour initramfs, puis redémarrer ; en cas d’échec, utiliser le port graphique intégré si disponible.
Q2 : Pourquoi mon contrôleur USB disparaît-il à la fois de l’hôte et de l’invité après l’affectation ?
A2 : De nombreux concentrateurs/controlleurs USB partagent leur groupe ; transmettez toujours l’ensemble du groupe plutôt qu’une seule fonction, dans la mesure du possible.
Q3 : Quel gain de performances puis-je attendre par rapport au matériel virtuel émulé ?
A3 : Des vitesses proches de celles du matériel nu – généralement supérieures à 90 % du débit maximal – à condition qu’aucun autre goulot d’étranglement ne soit présent (par exemple, une allocation insuffisante de CPU ou de mémoire vive).
Conclusion
Le transfert PCI débloque tout le potentiel de Proxmox VE en accordant aux machines virtuelles un accès direct au matériel, offrant ainsi des performances quasi natives pour les GPU, les cartes réseau (NIC) et les contrôleurs de stockage. La réussite dépend d’une compatibilité matérielle stricte (processeur, prise en charge de l’IOMMU par la carte mère) et d’une configuration précise : activation de l’IOMMU dans le BIOS, affectation des périphériques aux pilotes VFIO et isolement correct des fonctions. Bien que la configuration exige une grande rigueur, les gains en termes de réduction de la latence et de prise en charge des charges de travail spécialisées sont considérables. Vérifiez systématiquement les groupes à l’aide des commandes lspci/dmesg, et utilisez l’interface web de Proxmox pour l’affectation. Maîtrisez ces étapes, et le transfert PCI deviendra un outil transformateur dans votre arsenal de virtualisation.
Partager sur :