Donner une carte graphique à une machine virtuelle : le vrai obstacle n’est pas le pilote, c’est le groupe

Passer du matériel directement à une machine est possible, mais les périphériques se cèdent par groupes, pas un par un. Et le matériel cédé enlève aussi à la machine sa liberté de se déplacer.

AtlasPVE ·

Cette fiche répond à

  • proxmox gpu passthrough
  • proxmox groupe iommu
  • proxmox pci passthrough ne marche pas
  • proxmox carte graphique vers vm
  • proxmox passage de matériel

Donner une carte graphique physique, un contrôleur de disque ou une carte d’acquisition directement à une machine virtuelle est possible. La promesse est réelle : la machine utilise ce matériel comme s’il était le sien.

Mais là où les gens coincent, ce n’est pas le pilote. C’est le groupe.

Les périphériques ne se cèdent pas un par un

Votre carte mère décide quels périphériques peuvent être isolés les uns des autres et les range en groupes. Vous ne pouvez pas céder un seul périphérique d’un groupe ; vous cédez le groupe entier.

La conséquence : si votre carte graphique est dans le même groupe que le contrôleur de disque, donner la carte graphique revient à donner aussi le contrôleur de disque. C’est en général impossible, car c’est là que se trouve le disque du serveur.

La question à poser à l’achat n’est donc pas « cette carte graphique fonctionnera-t-elle » mais « est-elle dans son propre groupe sur cette carte mère ». Le regroupement est une propriété de la carte mère, pas de la carte graphique. La même carte se cède proprement sur une carte mère et pas du tout sur une autre.

Le périphérique disparaît du serveur

Deuxième surprise : une fois un périphérique cédé à une machine virtuelle, le serveur ne peut plus l’utiliser. Ce n’est pas un prêt, c’est un transfert.

La version la plus fréquente : sur une machine à une seule carte graphique, vous cédez la carte à une machine virtuelle et l’écran du serveur s’en va avec. Si vous pouvez vous connecter à distance, cela va ; mais en cas de pépin, vous n’avez plus la possibilité de brancher clavier et écran pour regarder.

Le matériel cédé enlève aussi la liberté de se déplacer

Pour qui a monté un cluster, c’est le point le plus important : une machine avec passage de matériel ne peut généralement pas aller sur un autre nœud.

La raison est simple : la carte que vous avez cédée est dans cette machine physique. Même si l’autre nœud a le même modèle, ce n’est pas le même périphérique.

Le filet de sécurité que vous donne le cluster ne couvre donc pas cette machine. Elle ne peut pas être déplacée les nuits de maintenance ni remonter sur un autre nœud lors d’une panne. En mettant en place un passage de matériel, ce que vous choisissez réellement est ceci : la mobilité, en échange de la performance et de l’accès direct au matériel.

La mémoire non plus n’est plus souple

Quatrième contrainte, la moins connue : le matériel cédé écrit directement dans la mémoire de la machine virtuelle. Pour que cela marche, cette mémoire doit rester en place.

Or le mécanisme qui étire la mémoire et la reprend est précisément celui qui la déplace. Quand les deux sont actifs sur la même machine, cela pose problème du côté du pilote.

En pratique la règle est : sur une machine avec passage de matériel, n’étirez pas la mémoire, donnez-lui une quantité fixe. Cela signifie que cette machine ne peut pas participer au jeu du « promettre plus qu’on a » décrit dans l’article précédent. La mémoire que vous lui avez promise est réellement réservée.

La phrase de décision

Le passage de matériel n’est pas un gain, c’est un échange. Ce que vous gagnez : la vitesse réelle du matériel et l’accès à toutes ses capacités. Ce que vous perdez : la portabilité, l’usage du périphérique par le serveur, et la souplesse de la mémoire.

Si vous faites cet échange en connaissance de cause, c’est le bon outil. Si vous l’avez fait sans le remarquer, vous l’apprendrez à la première nuit de maintenance ou à la première panne.

Ce que fait Atlas

Quand Atlas lit les périphériques PCI du serveur, il lit aussi dans quel groupe d’isolation chacun se trouve. Avant de décider, vous voyez donc le regroupement : le périphérique que vous voulez céder est-il seul, ou y a-t-il à côté quelque chose que vous ne voulez pas donner.

Il existe en outre une règle qui tombe exactement sur la dernière partie de cet article. Si une machine virtuelle a un passage de matériel défini et l’étirement de la mémoire activé, Atlas le signale comme un avertissement : ensemble, ils posent problème du côté du pilote. L’avertissement ne dit pas seulement « il y a un problème », il dit quoi faire et vous mène directement au réglage de la mémoire.

C’est un petit exemple de la posture générale du produit : la configuration elle-même est valide, rien ne renvoie d’erreur, mais deux réglages valides n’ont aucun sens ensemble. Ce genre de chose se dit au moment de l’installation, pas pendant une panne.

Sources

La documentation officielle de Proxmox. En anglais, et c’est elle qui a le dernier mot sur ce sujet.

Fiches liées

À quoi cela ressemble dans Atlas ?

Aller à la page produit