14.10. Attacher des périphériques PCI à des machines virtuelles sur IBM Z


En utilisant le pilote de périphérique vfio-pci, vous pouvez affecter des périphériques PCI en mode pass-through à vos machines virtuelles (VM) sur les hôtes IBM Z. Cela permet par exemple à la VM d'utiliser des disques flash NVMe pour gérer les bases de données.

Conditions préalables

  • Vous disposez d'un système hôte doté de l'architecture matérielle IBM Z.
  • Vous disposez d'une VM cible du système d'exploitation Linux.
  • Les modules nécessaires du noyau vfio ont été chargés sur l'hôte.

    # lsmod | grep vfio

    La sortie de cette commande doit contenir les modules suivants :

    • vfio_pci
    • vfio_pci_core
    • vfio_iommu_type1

Procédure

  1. Obtenez l'identifiant de l'adresse PCI de l'appareil que vous souhaitez utiliser.

    # lspci -nkD
    
    0000:00:00.0 0000: 1014:04ed
    	Kernel driver in use: ism
    	Kernel modules: ism
    0001:00:00.0 0000: 1014:04ed
    	Kernel driver in use: ism
    	Kernel modules: ism
    0002:00:00.0 0200: 15b3:1016
    	Subsystem: 15b3:0062
    	Kernel driver in use: mlx5_core
    	Kernel modules: mlx5_core
    0003:00:00.0 0200: 15b3:1016
    	Subsystem: 15b3:0062
    	Kernel driver in use: mlx5_core
    	Kernel modules: mlx5_core
  2. Ouvrez la configuration XML de la VM à laquelle vous souhaitez attacher le périphérique PCI.

    # virsh edit vm-name
  3. Ajoutez la configuration suivante <hostdev> à la section <devices> du fichier XML.

    Remplacez les valeurs de la ligne address par l'adresse PCI de votre appareil. Par exemple, si l'adresse de l'appareil est 0003:00:00.0, utilisez la configuration suivante :

    <hostdev mode="subsystem" type="pci" managed="yes">
      <driver name="vfio"/>
       <source>
        <address domain="0x0003" bus="0x00" slot="0x00" function="0x0"/>
       </source>
       <address type="pci"/>
    </hostdev>
  4. Optional: Pour modifier la façon dont le système d'exploitation invité détectera le périphérique PCI, vous pouvez également ajouter un sous-élément <zpci> à l'élément <address>. Dans la ligne <zpci>, vous pouvez ajuster les valeurs uid et fid, ce qui modifie l'adresse PCI et l'ID de fonction du périphérique dans le système d'exploitation invité.

    <hostdev mode="subsystem" type="pci" managed="yes">
      <driver name="vfio"/>
       <source>
        <address domain="0x0003" bus="0x00" slot="0x00" function="0x0"/>
       </source>
       <address type="pci">
         <zpci uid="0x0008" fid="0x001807"/>
       </address>
    </hostdev>

    Dans cet exemple :

    • uid="0x0008" définit l'adresse PCI de domaine du périphérique dans la VM à 0008:00:00.0.
    • fid="0x001807" définit la valeur de l'emplacement de l'appareil à 0x001807. Par conséquent, la configuration du périphérique dans le système de fichiers de la VM est enregistrée à l'adresse /sys/bus/pci/slots/00001087/address.

      Si ces valeurs ne sont pas spécifiées, libvirt les configure automatiquement.

  5. Sauvegarder la configuration XML.
  6. Si la VM est en cours d'exécution, arrêtez-la.

    # virsh shutdown vm-name

Vérification

  1. Démarrez la VM et connectez-vous à son système d'exploitation invité.
  2. Dans le système d'exploitation invité, vérifiez que le périphérique PCI est répertorié.

    Par exemple, si l'adresse de l'appareil est 0003:00:00.0, utilisez la commande suivante :

    # lspci -nkD | grep 0003:00:00.0
    
    0003:00:00.0 8086:9a09 (rev 01)
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.