11.10. IBM Z の仮想マシンへの PCI デバイスの接続


vfio-pci デバイスドライバーを使用すると、パススルーモードで PCI デバイスを IBM Z ホストの仮想マシンに割り当てることができます。たとえば、これにより、仮想マシンはデータベースの処理に NVMe フラッシュディスクを使用できるようになります。

前提条件

  • IBM Z ハードウェアアーキテクチャーを使用するホストシステムがある。
  • Linux オペレーティングシステムのターゲット仮想マシンがある。
  • ホストに必要な vfio カーネルモジュールがロードされている。

    # lsmod | grep vfio

    このコマンドの出力には、以下のモジュールが含まれている必要があります。

    • vfio_pci
    • vfio_pci_core
    • vfio_iommu_type1

手順

  1. 使用するデバイスの PCI アドレス識別子を取得します。

    # 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. PCI デバイスを接続する仮想マシンの XML 設定を開きます。

    # virsh edit vm-name
  3. 以下の <hostdev> 設定を XML ファイルの <devices> セクションに追加します。

    address 行の値を、デバイスの PCI アドレスに置き換えます。たとえば、デバイスアドレスが 0003:00:00.0 の場合は、以下の設定を使用します。

    <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. オプション: ゲストオペレーティングシステムが PCI デバイスを検出する方法を変更するには、<zpci> サブ要素を <address> 要素に追加することもできます。<zpci> 行では、uid 値と fid 値を調整できます。これにより、ゲストオペレーティングシステムのデバイスの PCI アドレスと機能 ID が変更されます。

    <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>

    この例では、以下が適用されます。

    • uid="0x0008" は、仮想マシンのデバイスのドメイン PCI アドレスを 0008:00:00.0 に設定します。
    • fid="0x001807" は、デバイスのスロット値を 0x001807 に設定します。これにより、仮想マシンのファイルシステムのデバイス設定が /sys/bus/pci/slots/00001087/address に保存されます。

      これらの値が指定されていない場合は、libvirt がこれらの値を自動的に設定します。

  5. XML 設定を保存します。
  6. 仮想マシンが実行中の場合はシャットダウンします。

    # virsh shutdown vm-name

検証

  1. 仮想マシンを起動し、ゲストオペレーティングシステムにログインします。
  2. ゲストオペレーティングシステムで、PCI デバイスがリストされていることを確認します。

    たとえば、デバイスアドレスが 0003:00:00.0 の場合は、次のコマンドを使用します。

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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.