Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Contrôleur de périphériques PCI

Un PCIDevice dans SUSE® Virtualization représente un périphérique hôte avec une adresse PCI. Les périphériques peuvent être passés par l’hyperviseur vers une VM en créant une ressource PCIDeviceClaim, ou en utilisant l’interface utilisateur pour activer le dispositif d’intercommunication (pass-through). Passer un périphérique à travers l’hyperviseur signifie que la VM peut accéder directement au périphérique et en possède effectivement le contrôle. Une VM peut même installer ses propres pilotes pour ce périphérique.

Cela est réalisé en utilisant le produit complémentaire pcidevices-controller.

Pour utiliser la fonctionnalité des périphériques PCI, les utilisateurs doivent d’abord activer le produit complémentaire pcidevices-controller.

EnableAddon

Une fois le produit complémentaire pcidevices-controller déployé avec succès, il peut falloir quelques minutes pour qu’il effectue une analyse et que les CRD de périphériques PCI deviennent disponibles.

PcideviceEnabled

Activer le dispositif d’intercommunication (pass-through) sur un périphérique PCI

  1. Allez maintenant à la page Advanced → PCI Devices :

    advanced pcidevices index
  2. Recherchez votre périphérique par nom de fournisseur (par exemple, NVIDIA, Intel, etc.) ou par nom de périphérique.

    search pcidevices
  3. Sélectionnez les périphériques que vous souhaitez activer pour le dispositif d’intercommunication (pass-through) :

    select pcidevices
  4. Puis cliquez sur Activer le dispositif d’intercommunication (pass-through) et lisez le message d’avertissement. Si vous souhaitez toujours activer ces périphériques, cliquez sur Activer et attendez que tous les périphériques soient Enabled.

    Veuillez ne pas utiliser de périphériques PCI host-owned (par exemple, les NIC de gestion et VLAN). Une allocation incorrecte des périphériques peut causer des dommages à votre cluster, y compris des pannes de nœuds.

    enable pcidevices inprogress
    enable pcidevices done

Attacher des périphériques PCI à une VM

Après avoir activé ces périphériques PCI, vous pouvez naviguer vers la page Machines Virtuelles et sélectionner Modifier la configuration pour passer ces périphériques.

vm pcidevices edit config

Sélectionnez Périphériques PCI et utilisez le menu déroulant Périphériques PCI disponibles. Sélectionnez les périphériques que vous souhaitez attacher dans la liste affichée, puis cliquez sur Enregistrer.

vm pcidevices attach

Utilisation d’un périphérique PCI avec dispositif d’intercommunication (pass-through) à l’intérieur de la VM

Démarrez la VM et exécutez lspci à l’intérieur de la VM, les périphériques PCI attachés apparaîtront, bien que l’adresse PCI dans la VM ne corresponde pas nécessairement à l’adresse PCI dans l’hôte.

Installation des pilotes pour votre périphérique PCI à l’intérieur de la VM

C’est comme installer des pilotes sur l’hôte. La fonctionnalité de dispositif d’intercommunication (pass-through) PCI liera le périphérique hôte au pilote vfio-pci, ce qui permet aux VM d’utiliser leurs propres pilotes.

Problèmes connus

  • Problème #6648 : Une machine virtuelle peut être programmée sur un nœud incorrect si le cluster a plusieurs instances du même périphérique PCI.

Le produit complémentaire pcidevices-controller utilise actuellement des descripteurs de ressources uniques pour publier des périphériques au kubelet. Si plusieurs PCIDeviceClaims du même type de périphérique existent dans le cluster, le même descripteur de ressource unique est utilisé pour ces PCIDeviceClaims, et donc la machine virtuelle peut être programmée sur un nœud incorrect. Pour garantir que le bon périphérique et le bon nœud sont utilisés, sélectionnez Exécuter la VM sur un nœud spécifique lors de la configuration des paramètres Planification des nœuds.

vm scheduling

Périphériques réseau SR-IOV

SriovNetworkDevicesLink

Le produit complémentaire pcidevices-controller peut désormais scanner les interfaces réseau sur les hôtes sous-jacents et vérifier si elles prennent en charge les fonctions virtuelles SRIOV (VFs). Si un périphérique valide est trouvé, pcidevices-controller générera un nouvel objet SRIOVNetworkDevice.

SriovNetworkDevicesList

Pour créer des VFs sur un SriovNetworkDevice, vous pouvez cliquer sur ⋮ → Activer puis définir le Nombre de fonctions virtuelles.

SriovNetworkDeviceEnable
SriovNetworkVFDefinition

Le pcidevices-controller définira les VFs sur l’interface réseau et rapportera le nouvel état du périphérique PCI pour les VFs nouvellement créées.

SriovNetworkDevicesVFStatus

Lors de la prochaine nouvelle analyse, le pcidevices-controller créera les périphériques PCI pour les VFs. Cela peut prendre jusqu’à 1 minute.

Vous pouvez maintenant naviguer vers la page Périphériques PCI pour voir les nouveaux périphériques.

Nous avons également introduit un nouveau filtre pour vous aider à filtrer les périphériques PCI par l’interface réseau sous-jacente.

SriovNetworkDevicesFilter

Le périphérique PCI nouvellement créé peut être passé via le dispositif d’intercommunication (pass-through) aux machines virtuelles comme tout autre périphérique PCI.

SriovNetworkDevicesFilterResult

Périphériques USB

Une ressource USBDevice dans Harvester représente un périphérique USB sur le nœud. Les périphériques USB peuvent être passés via l’hyperviseur pour permettre un accès direct depuis les VM. Ceci est réalisé au moyen du produit complémentaire pcidevices-controller. Pour utiliser le passthrough USB, vous pouvez soit créer une ressource USBDeviceClaim, soit activer la fonctionnalité sur l’interface utilisateur de Harvester.

Le passthrough USB est légèrement différent du passthrough PCI. Par exemple, vous pouvez contrôler entièrement un contrôleur USB avec quatre ports USB en créant une PCIDeviceClaim. Cependant, vous pouvez également créer une USBDeviceClaim pour contrôler uniquement un port USB. Les trois autres ports USB restent disponibles pour le nœud.

Avant de retirer le périphérique USB, détachez-le de la machine virtuelle, puis désactivez le passthrough sur l’écran USB Devices.

Activer le passthrough sur un périphérique USB

  1. Sur l’interface utilisateur de Harvester, allez à Advanced → USB Devices.

    index
  2. Repérez le périphérique dans la liste.

    search
  3. Sélectionnez le périphérique cible, puis sélectionnez ⋮ → Activer le dispositif d’intercommunication (pass-through).

    select
  4. Lisez le message de confirmation, puis cliquez sur Activer.

    Laissez un certain temps pour que l’état du périphérique change en Activé.

    enable done

Attacher un périphérique USB à une machine virtuelle

  1. Vérifiez que le passthrough est activé sur le périphérique cible.

  2. Allez à Machines Virtuelles, puis créez une machine virtuelle ou modifiez la configuration d’une machine virtuelle existante.

  3. Sur l’écran de configuration de la machine virtuelle, allez à l’onglet Périphériques USB puis sélectionnez un périphérique dans la liste Périphériques USB disponibles.

    attach vm
  4. Cliquez sur Créer ou Enregistrer.

Afficher les périphériques USB connectés à une machine virtuelle.

  1. Démarrez puis accédez à la machine virtuelle.

  2. Exécutez lsusb.

    Cet utilitaire affiche des informations sur les bus USB et les périphériques connectés.

    usb in vm

limites

  • Les machines virtuelles avec des périphériques USB connectés ne peuvent pas être migrées en direct car les périphériques sont liés à un nœud spécifique.

  • Le branchement à chaud et le rebranchement des périphériques USB ne sont pas pris en charge. Pour plus d’informations, consultez Problème KubeVirt #11979.

  • Si le chemin change lorsque vous rebranchez le périphérique ou redémarrez le nœud, vous devez détacher le périphérique de la machine virtuelle puis réactiver le passthrough.