Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

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

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

PCI ネットワークデバイス (<source> 要素によりドメイン XML で指定) は、直接デバイス割り当て (passthrough と呼ばれることもあります) を使用して、ゲストに直接接続できます。 標準的なシングルポートの PCI イーサネットカードドライバー設計の制限により、この方法で割り当てることができるのは Single Root I/O Virtualization (SR-IOV) virtual function (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) が開発した SR-IOV (Single Root I/O Virtualization) 仕様は、単一デバイスを複数の仮想マシンに共有できる PCI デバイス割り当てタイプの標準です。SR-IOV は、仮想マシンのデバイスパフォーマンスを改善します。

図16.10 SR-IOV の仕組み

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

16.2.1. SR-IOV の利点

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