第13章 SR-IOV

13.1. はじめに

PCI-SIG (PCI Special Interest Group) が開発したシングルルート I/O 仮想化 (SR-IOV) 仕様は、単一デバイスを複数の仮想マシンで共有できる PCI デバイス割り当てにおける標準です。SR-IOV は、仮想マシンのデバイスパフォーマンスを改善します。
SR-IOV のしくみ

図13.1 SR-IOV のしくみ

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

SR-IOV デバイスは、1 つの物理ポートを複数の仮想マシンと共有できます。

仮想機能は、ネイティブに近いパフォーマンスを発揮し、準仮想化ドライバーやエミュレートされたアクセスよりも優れたパフォーマンスを提供します。仮想機能ではデータがハードウェアによって管理および制御されるため、同一の物理サーバー上における仮想マシン間でのデータ保護が提供されます。
これらの機能により、データセンター内でのホスト上の仮想マシン密度は高くなります。
SR-IOV は、複数ゲストとのデバイスの帯域幅を有効活用できます。