Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.2. SR-IOV デバイスとの PCI デバイスの割り当て

PCI ネットワークデバイス <(ソース要素で指定> )は、ダイレクトデバイス割り当て (パススルーと呼ばれることもある)を使用してゲストに直接接続できます。 標準のシングルポート PCI イーサネットカードドライバー設計の制限により、SR-IOV (Single Root I/O Virtualization ) 仮想機能(VF )デバイスのみをこの方法で割り当てることができます。標準のシングルポート PCI または PCIe イーサネットカードをゲストに割り当てるには、従来の <hostdev> デバイス定義を使用します。

図16.9 PCI デバイス割り当ての XML の例


     <devices>
    <interface type='hostdev'>
      <driver name='vfio'/>
      <source>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
      </source>
      <mac address='52:54:00:6d:90:02'>
      <virtualport type='802.1Qbh'>
        <parameters profileid='finance'/>
      </virtualport>
    </interface>
  </devices>
PCI-SIG(PCI Special Interest Group)によって開発され、Single Root I/O Virtualization(SR-IOV)仕様は、1 つのデバイスを複数の仮想マシンに共有できる PCI デバイス割り当てタイプの標準です。SR-IOV により、仮想マシンのデバイスパフォーマンスが向上します。

図16.10 SR-IOV の仕組み

SR-IOV の仕組み
SR-IOV により、Single Root Function(単一のイーサネットポートなど)が有効になり、複数の物理デバイスとして表示できます。SR-IOV 機能を持つ物理デバイスは、複数の機能として PCI 設定領域に表示されるように設定できます。各デバイスには、ベースアドレス登録(BAR)で完了した独自の設定領域があります。
SR-IOV は 2 つの PCI 機能を使用します。
  • Physical Function(PF)は、SR-IOV 機能が含まれる完全な PCIe デバイスです。Physical Function は、通常の PCI デバイスとして検出、管理、および設定されます。Physical Functions は、Virtual Function を割り当てて SR-IOV 機能を設定し、管理します。
  • Virtual Function(VF)は、I/O のみを処理する単純な PCIe 機能です。各 Virtual Function は Physical Function から派生します。デバイスで使用可能な Virtual Function の数は、デバイスのハードウェアによって制限されます。単一のイーサネットポート(Physical Device)は、仮想マシンに共有可能な多くの Virtual Function にマッピングすることができます。
ハイパーバイザーは、1 つまたは複数の Virtual Function を仮想マシンに割り当てることができます。次に、Virtual Function の設定領域が、ゲストに提示される設定スペースに割り当てられます。
Virtual Function には実際のハードウェアリソースが必要なため、各 Virtual Function は一度に 1 つのゲストにのみ割り当てることができます。仮想マシンには、複数の Virtual Function を指定できます。Virtual Function は、通常のネットワークカードがオペレーティングシステムに表示されるのと同じ方法でネットワークカードとして表示されます。
SR-IOV ドライバーはカーネルに実装されます。コア実装は PCI サブシステムに含まれますが、VF(Physical Function)および Virtual Function(VF)デバイスの両方にドライバーをサポートする必要もあります。SR-IOV 対応デバイスは、PF から VF を割り当てることができます。VF は、キューやレジスターセットなどのリソース別に物理 PCI デバイスをサポートする PCI デバイスとして表示されます。

16.2.1. SR-IOV の利点

SR-IOV デバイスは、単一物理ポートを複数の仮想マシンと共有できます。
SR-IOV VF が仮想マシンに割り当てられる場合、その VF を仮想マシンに割り当てられるように(仮想マシンに透過的に)、すべてのネットワークトラフィックを特定の VLAN に配置することができます。仮想マシンは、そのトラフィックが VLAN 用にタグ付けされていることを検出できず、このタグ付けを変更または除外することはできません。
Virtual Function はネイティブなパフォーマンスを持ち、準仮想化ドライバーおよびエミュレートされたアクセスよりも優れたパフォーマンスを提供します。Virtual Function は、ハードウェアによって管理および制御するデータと同様に、同じ物理サーバー上の仮想マシン間のデータ保護を提供します。
これらの機能により、データセンター内のホストの仮想マシンの密度が高まります。
SR-IOV は、複数ゲストとデバイスの帯域幅を有効活用できます。

16.2.2. SR-IOV の使用

このセクションでは、SR-IOV 対応マルチポートネットワークカードの Virtual Function をネットワークデバイスとして仮想マシンに割り当てるための PCI パススルーの使用について説明します。
virsh edit または virsh attach-device コマンドで <hostdev> にデバイスエントリーを追加すると、SR-IOV Virtual Function(VF)を仮想マシンに割り当てることができます。ただし、通常のネットワークデバイスとは異なり、SR-IOV VF ネットワークデバイスには永続的な一意の MAC アドレスがなく、ホストが再起動されるたびに新しい MAC アドレスが割り当てられます。このため、再起動後にゲストが同じ VF が割り当てられている場合でも、ホストを再起動してそのネットワークアダプターを新しい MAC アドレスを持つように決めます。その結果、ゲストは毎回接続されていた新しいハードウェアがあると見なし、通常ゲストのネットワーク設定を再設定する必要があります。
libvirt <interface type='hostdev'> インターフェースデバイスが含まれます。このインターフェースデバイスを使用すると、libvirt は最初に指定したネットワーク固有のハードウェア/スイッチの初期化を実行します(MAC アドレス、VLAN タグ、802.1Qbh 仮想ポートパラメーターの設定など)は、ゲストへの PCI デバイスの割り当てを実行します。
<interface type='hostdev'> インターフェースデバイスを使用するには、以下が必要です。
  • SR-IOV 対応ネットワークカード
  • Intel VT-d または AMD IOMMU 拡張をサポートするホストハードウェア
  • 割り当てられる仮想機能の PCI アドレス
重要
SR-IOV デバイスを仮想マシンに割り当てるには、ホストハードウェアが Intel VT-d または AMD IOMMU 仕様に対応している必要があります。
SR-IOV ネットワークデバイスを Intel または AMD システムに割り当てるには、以下の手順を実行します。

手順16.8 SR-IOV ネットワークデバイスをIntel または AMD システムに割り当てる

  1. BIOS およびカーネルで Intel VT-d または AMD IOMMU 仕様を有効にする

    Intel システムで、BIOS で Intel VT-d を有効にしていない場合は有効にします。BIOS およびカーネルで Intel VT-d 手順16.1「PCI デバイス割り当て用の Intel システムの準備」 を参照してください。
    Intel VT-d がすでに有効で動作している場合は、この手順を省略します。
    AMD システムで、BIOS の AMD IOMMU 仕様がまだ有効にされていない場合は有効にします。手順16.2「PCI デバイス割り当て用の AMD システムの準備」 で IOMMU の有効化に関する手順を参照してください。
  2. サポートの確認

    SR-IOV 機能のある PCI デバイスが検出されているかどうかを確認します。以下の例では、SR-IOV をサポートする Intel 82576 ネットワークインターフェースカードを一覧表示します。lspci コマンドを使用して、デバイスが検出されているかどうかを確認します。
    # lspci
    03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    出力が変更され、他のすべてのデバイスが削除されることに注意してください。
  3. 仮想機能をアクティブにします。

    以下のコマンドを実行します。
    # echo ${num_vfs} > /sys/class/net/enp14s0f0/device/sriov_numvfs
  4. Virtual Function を永続化する

    リブート全体で Virtual Function を永続化するには、選択したエディターを使用して、以下のような udev ルールを作成します。ここで、ネットワークインターフェースカードでサポートされる VF の数(この例では )を指定します。2以下の例では、enp14s0f0 を PF ネットワークデバイス名に、ENV{ID_NET_DRIVER} の値を、使用中のドライバーに合わせて調整します。
    # vim /etc/udev/rules.d/enp14s0f0.rules
    ACTION=="add", SUBSYSTEM=="net", ENV{ID_NET_DRIVER}=="ixgbe",
    ATTR{device/sriov_numvfs}="2"
    
    これにより、システムの起動時に機能が有効になります。
  5. 新しい Virtual Function の検証

    lspci コマンドを使用して、Intel 82576 ネットワークデバイスに接続された、新しく追加した Virtual Function を一覧表示します。(代わりに grep を使用して Virtual Function を検索し、Virtual Function に対応するデバイスを検索します)。
    # lspci | grep 82576
    0b:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    0b:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    0b:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.6 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:10.7 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:11.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:11.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:11.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:11.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:11.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    0b:11.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    PCI デバイスの識別子は、lspci コマンドの -n パラメーターと共に確認することができます。Physical Function は、0b:00.0 および 0b:00.1 に対応します。この説明では、すべての Virtual Function の Virtual Function があります。
  6. virsh でデバイスが存在することを確認します。

    libvirt サービスは、デバイスを仮想マシンに追加する前にデバイスを認識する必要があります。libvirt は、lspci の出力と同様の表記を使用します。 lspci の出力では、すべての句読点はアンダースコア(_)に変更されます。
    virsh nodedev-list コマンドおよび grep コマンドを使用して、利用可能なホストデバイスの一覧から Intel 82576 ネットワークデバイスをフィルタリングします。0b この例の Intel 82576 ネットワークデバイスのフィルターです。これはシステムによって異なる場合があります。これにより、デバイスが追加されます。
    # virsh nodedev-list | grep 0b
    pci_0000_0b_00_0
    pci_0000_0b_00_1
    pci_0000_0b_10_0
    pci_0000_0b_10_1
    pci_0000_0b_10_2
    pci_0000_0b_10_3
    pci_0000_0b_10_4
    pci_0000_0b_10_5
    pci_0000_0b_10_6
    pci_0000_0b_11_7
    pci_0000_0b_11_1
    pci_0000_0b_11_2
    pci_0000_0b_11_3
    pci_0000_0b_11_4
    pci_0000_0b_11_5
    Virtual Function および Physical Function の PCI アドレスは、一覧にする必要があります。
  7. virsh でデバイスの詳細を取得

    pci_0000_0b_00_0 は Physical Function の 1 つであり、pci_0000_0b_10_0 はその Physical Function 向けに最初に対応する Virtual Function です。virsh nodedev-dumpxml コマンドを使用して、両方のデバイスのデバイス情報を取得します。
    # virsh nodedev-dumpxml pci_0000_03_00_0
    <device>
      <name>pci_0000_03_00_0</name>
      <path>/sys/devices/pci0000:00/0000:00:01.0/0000:03:00.0</path>
      <parent>pci_0000_00_01_0</parent>
      <driver>
        <name>igb</name>
      </driver>
      <capability type='pci'>
        <domain>0</domain>
        <bus>3</bus>
        <slot>0</slot>
        <function>0</function>
        <product id='0x10c9'>82576 Gigabit Network Connection</product>
        <vendor id='0x8086'>Intel Corporation</vendor>
        <capability type='virt_functions'>
          <address domain='0x0000' bus='0x03' slot='0x10' function='0x0'/>
          <address domain='0x0000' bus='0x03' slot='0x10' function='0x2'/>
          <address domain='0x0000' bus='0x03' slot='0x10' function='0x4'/>
          <address domain='0x0000' bus='0x03' slot='0x10' function='0x6'/>
          <address domain='0x0000' bus='0x03' slot='0x11' function='0x0'/>
          <address domain='0x0000' bus='0x03' slot='0x11' function='0x2'/>
          <address domain='0x0000' bus='0x03' slot='0x11' function='0x4'/>
        </capability>
        <iommuGroup number='14'>
          <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
          <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
        </iommuGroup>
      </capability>
    </device>
    # virsh nodedev-dumpxml pci_0000_03_11_5
    <device>
      <name>pci_0000_03_11_5</name>
      <path>/sys/devices/pci0000:00/0000:00:01.0/0000:03:11.5</path>
      <parent>pci_0000_00_01_0</parent>
      <driver>
        <name>igbvf</name>
      </driver>
      <capability type='pci'>
        <domain>0</domain>
        <bus>3</bus>
        <slot>17</slot>
        <function>5</function>
        <product id='0x10ca'>82576 Virtual Function</product>
        <vendor id='0x8086'>Intel Corporation</vendor>
        <capability type='phys_function'>
          <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
        </capability>
        <iommuGroup number='35'>
          <address domain='0x0000' bus='0x03' slot='0x11' function='0x5'/>
        </iommuGroup>
      </capability>
    </device>
    この例では、ステップ 8 の仮想マシンに Virtual Function pci_0000_03_10_2 を追加します。Virtual Function の busslot、および function のパラメーターに注意してください。これらは、デバイスを追加するために必要です。
    これらのパラメーターを、/tmp/new-interface.xml などの一時的な XML ファイルにコピーします。以下に例を示します。
       <interface type='hostdev' managed='yes'>
         <source>
           <address type='pci' domain='0x0000' bus='0x03' slot='0x10' function='0x2'/>
         </source>
       </interface>
    注記
    仮想マシンが起動すると、設定された MAC アドレスで、物理アダプターが提供するタイプのネットワークデバイスが表示されるはずです。この MAC アドレスは、ホストおよびゲストの再起動時に変更されません。
    以下の <interface> の例は、オプションの <mac address><virtualport>、および <vlan> 要素の構文を示しています。実際には、<vlan> または <virtualport> 要素のいずれかを使用しますが、この例では両方を同時に使用することはできません。
    ...
     <devices>
       ...
       <interface type='hostdev' managed='yes'>
         <source>
           <address type='pci' domain='0' bus='11' slot='16' function='0'/>
         </source>
         <mac address='52:54:00:6d:90:02'>
         <vlan>
            <tag id='42'/>
         </vlan>
         <virtualport type='802.1Qbh'>
           <parameters profileid='finance'/>
         </virtualport>
       </interface>
       ...
     </devices>
    MAC アドレスを指定しない場合、これは自動的に生成されます。<virtualport> 要素は、802.11Qbh ハードウェアスイッチに接続する場合にのみ使用されます。<vlan> 要素は、ゲストのデバイスを VLAN タグが 42 に透過的に設定します。
  8. 仮想マシンへの Virtual Function の追加

    直前の手順で作成した一時ファイルで以下のコマンドを使用して、Virtual Function を仮想マシンに追加します。これにより、新規デバイスが直ちにアタッチされ、その後のゲスト再起動が保存されます。
    virsh attach-device MyGuest /tmp/new-interface.xml --live --config
    
    virsh attach-device--live オプションを指定すると、新しいデバイスを実行中のゲストにアタッチします。--config オプションを使用すると、ゲストを今後再起動した後に新しいデバイスが利用できるようになります。
    注記
    --live オプションは、ゲストが実行している場合にのみ許可されます。実行中ゲストで --live オプションを使用する場合は、virsh によりエラーが返されます。
仮想マシンは新規ネットワークインターフェースカードを検出します。この新規カードは、SR-IOV デバイスの Virtual Function です。

16.2.3. SR-IOV デバイスを使用した PCI 割り当ての設定

SR-IOV ネットワークカードは、PCI デバイスの割り当てを使用して、それぞれをゲスト仮想マシンに個別に割り当てることができる複数の VF を提供します。割り当てられると、各ファイルは完全な物理ネットワークデバイスとして動作します。これにより、多くのゲスト仮想マシンが直接 PCI デバイス割り当てのパフォーマンス上のメリットが得られますが、ホストの物理マシンで 1 つのスロットしか使用することができません。
これらの VF は、従来は <hostdev> 要素を使用してゲスト仮想マシンに割り当てることができます。ただし、SR-IOV VF ネットワークデバイスには永続的な固有の MAC アドレスがないため、ホストの物理マシンの再起動時にゲスト仮想マシンのネットワーク設定を再設定する必要があるという問題が発生します。この問題を修正するには、ゲスト仮想マシンのブートごとに VF をホストの物理マシンに割り当てる前に、MAC アドレスを設定しておく必要があります。この MAC アドレスや他のオプションを割り当てるには、以下の手順を参照してください。

手順16.9 SR-IOV に PCI デバイスを割り当てるための MAC アドレス、vLAN、および仮想ポートの設定

<mac<>、vlan、および> <virtualport> <要素は、hostdev> の子ではないため、MAC アドレス割り当て、vLAN タグ ID の割り当て、仮想ポートの割り当てなどの関数固有のアイテムには、hostdev <を使用することはできません。>代わりに、これらの要素は hostdev インターフェースタイプ: <interface type='hostdev'> で使用できます。このデバイスタイプは、<インターフェース> および <hostdev> のハイブリッドとして機能します。したがって、PCI デバイスをゲスト仮想マシンに割り当てる前に、libvirt は(MAC アドレスの設定、vLAN タグの設定、またはゲスト仮想マシンの XML 設定ファイル内の 802.1Qbh スイッチの設定)を示すネットワーク固有のハードウェア/スイッチを初期化します。vLAN 「vLAN タグの設定」
  1. Gather information

    <interface type='hostdev'> を使用するには、SR-IOV 対応のネットワークカード、Intel VT-d または AMD IOMMU のいずれかをサポートするホスト物理マシンハードウェアが必要です。割り当てる VF の PCI アドレスを把握しておく必要があります。
  2. ゲスト仮想マシンのシャットダウン

    # virsh shutdown guestVM
  3. XML ファイルを開いて編集します。

    virsh save-image-edit コマンドを実行して、編集するために XML ファイルを開きます (詳細は、--running オプションを参照 「ゲスト仮想マシン設定の編集」 )。この例の設定ファイルの名前は guestVM.xml です。
     # virsh save-image-edit guestVM.xml
    --running
    デフォルトのエディターで guestVM.xml が開きます。
  4. XML ファイルの編集

    設定ファイル(guestVM.xml) <を更新し、以下のようなデバイスエントリーを設定します>

    図16.11 hostdev インターフェースタイプのドメイン XML の例

    
     <devices>
       ...
       <interface type='hostdev' managed='yes'>
         <source>
           <address type='pci' domain='0x0' bus='0x00' slot='0x07' function='0x0'/> <!--these values can be decimal as well-->
         </source>
         <mac address='52:54:00:6d:90:02'/>                                         <!--sets the mac address-->
         <virtualport type='802.1Qbh'>                                              <!--sets the virtual port for the 802.1Qbh switch-->
           <parameters profileid='finance'/>
         </virtualport>
         <vlan>                                                                     <!--sets the vlan tag-->
          <tag id='42'/>
         </vlan>
       </interface>
       ...
     </devices>
    
    
    MAC アドレスを指定しない場合は、他のタイプのインターフェースデバイスと同様に、自動的に 1 つが生成されます。<さらに、virtualport> 要素は、802.11Qgh ハードウェアスイッチに接続している場合にのみ使用されます。802.11Qbg(別名 "VEPA)スイッチは現在サポートされていません。
  5. ゲスト仮想マシンを再起動します。

    virsh start コマンドを実行して、手順 2 でシャットダウンしているゲスト仮想マシンを再起動します。詳細は 「仮想マシンの起動、再開、復元」 を参照してください。
     # virsh start guestVM
    ゲスト仮想マシンが起動すると、設定された MAC アドレスで、物理ホストマシンのアダプターによって提供されたネットワークデバイスが表示されます。この MAC アドレスは、ゲスト仮想マシンおよびホストの物理マシンのリブート全体では変更されません。

16.2.4. SR-IOV 仮想機能のプールから PCI デバイス割り当ての設定

特定の Virtual Function(VF)の PCI アドレスをゲストの設定にハードコーディングすると、以下の 2 つの重要な制限があります。
  • 指定した VF は、ゲスト仮想マシンが起動しるたびに利用可能な状態でなければなりません。したがって、管理者は各 VF を単一のゲスト仮想マシンに永続的に割り当てる必要があります(または、ゲスト仮想マシンが起動するたびに現在使用されていない VF の PCI アドレスを指定するため、すべてのゲスト仮想マシンの設定ファイルを変更する必要があります)。
  • ゲスト仮想マシンが別のホストの物理マシンに移動する場合、そのホストマシンは PCI バス上の同じ場所にあるハードウェアと全く同じハードウェアを持つ必要があります(または、仮想マシンの構成は、起動前に変更する必要があります)。
SR-IOV デバイスのすべての VF を含むデバイスプールで libvirt ネットワークを作成すると、これらの両方の問題を回避できます。これが完了したら、ゲスト仮想マシンがこのネットワークを参照するように設定します。ゲストが起動すると、1 つの VF がプールから割り当てられ、ゲスト仮想マシンに割り当てられます。ゲスト仮想マシンが停止しると、VF は別のゲスト仮想マシンで使用するためにプールに返されます。

手順16.10 デバイスプールの作成

  1. ゲスト仮想マシンのシャットダウン

    # virsh shutdown guestVM
  2. 設定ファイルを作成します。

    任意のエディターを使用して、/tmp ディレクトリーに XML ファイル(例: passthrough.xml )を作成します。pf dev='eth3' は、ご自分の SR-IOV デバイスの Physical Function (PF)の netdev 名に置き換えます。
    以下は、SR-IOV アダプターのすべての VF のプールとホストの物理マシンの PF(eth3')と共に利用可能なネットワーク定義の例です。

    図16.12 ネットワーク定義ドメイン XML の例

          
    <network>
       <name>passthrough</name> <!-- This is the name of the file you created -->
       <forward mode='hostdev' managed='yes'>
         <pf dev='myNetDevName'/>  <!-- Use the netdev name of your SR-IOV devices PF here -->
       </forward>
    </network>
          
    
    
  3. 新しい XML ファイルを読み込みます。

    以下のコマンドを入力します。/tmp/passthrough.xml は、前のステップで作成した XML ファイルの名前および場所に置き換えます。
    # virsh net-define /tmp/passthrough.xml
  4. ゲストの再起動

    以下を実行し、passthrough.xml を前の手順で作成した XML ファイルの名前に置き換えます。
     # virsh net-autostart passthrough
    # virsh net-start passthrough
  5. ゲスト仮想マシンの再起動

    virsh start コマンドを実行して、最初のステップでシャットダウンしたゲスト仮想マシンを再起動します(この例では、ゲスト仮想マシンのドメイン名として guestVM を使用します)。詳細は 「仮想マシンの起動、再開、復元」 を参照してください。
     # virsh start guestVM
  6. デバイス用のパススルーの開始

    単一デバイスのみが表示されていますが、libvirt はゲスト仮想マシンの初回起動時に、PF に関連付けられたすべての VF の一覧を自動的に派生させます。この起動には、以下のようなドメイン XML 内のインターフェース定義が使用されます。

    図16.13 インターフェースネットワーク定義のドメイン XML の例

             
    <interface type='network'>
       <source network='passthrough'>
    </interface>
          
    
    
  7. 検証

    これは、ネットワークを使用する最初のゲストを起動して、以下のように virsh net-dumpxml passthrough コマンドを実行して確認できます。

    図16.14 XML ダンプファイルパススルーの内容

          
    <network connections='1'>
       <name>passthrough</name>
       <uuid>a6b49429-d353-d7ad-3185-4451cc786437</uuid>
       <forward mode='hostdev' managed='yes'>
         <pf dev='eth3'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x1'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x3'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x5'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x7'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x11' function='0x1'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x11' function='0x3'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x11' function='0x5'/>
       </forward>
    </network>
          
    
    

16.2.5. SR-IOV 制限

SR-IOV は、以下のデバイスでのみテストされています。
  • Intel® 82576NS Gigabit Ethernet Controller(igb ドライバー)
  • Intel® 82576EB Gigabit Ethernet Controller(igb ドライバー)
  • Intel® 82599ES 10 Gigabit Ethernet Controller(ixgbe ドライバー)
  • Intel® 82599EB 10 Gigabit Ethernet Controller(ixgbe ドライバー)
他の SR-IOV デバイスが機能する可能性がありますが、リリース時にテストされていません。