SR-IOV は要件を満たしている ESXi 5.1 ホストでサポートされますが、vSphere Web Client を使用してそれらのホスト
で SR-IOV を構成することはできません。それらのホストで SR-IOV を有効化するには、NIC ドライバモジュールの
max_vfs パラメータを使用します。「ホストプロファイルまたは ESXCLI コマンドの使用による SR-IOV の有効 化 (P. 146)」を参照してください。
また、そのようなホストの仮想マシンに SR-IOV パススルーアダプタを割り当てることはできません。アダプタは、ESXi 5.5 以降と互換性のある仮想マシンで使用できます。vCenter Server 5.5 リリースは、ESXi 5.1 ホストを管理している可 能性がありますが、その構成はリリース 5.1 と同じです。PCI デバイスを仮想マシンハードウェアに追加し、デバイス用 の VF を手動で選択する必要があります。
SR-IOV コンポーネントのアーキテクチャと相互作用
vSphere SR-IOV のサポートは、パフォーマンスを向上させるための NIC ポートの仮想機能(VF)と物理機能(PF) の間の相互作用、およびトラフィックを制御するための PF のドライバとホストスイッチの間の相互作用によって異なり ます。
SR-IOV 物理アダプタ上で仮想マシントラフィックを実行するホストでは、仮想マシンアダプタは仮想機能と直接コンタ
クトしてデータを伝達します。ただし、ネットワークを構成する機能は、仮想マシンを保持しているポートの有効なポリ シーに基づきます。
SR-IOV を使用しない ESXi ホストでは、仮想スイッチはホスト上でそのポートを使用して、関連するポートグループの
物理アダプタから、またはその物理アダプタに外部ネットワークトラフィックを送信します。仮想スイッチは、管理対象 パケットのネットワークポリシーも適用します。
図 10‑1. vSphere の SR-IOV サポートでのデータおよび構成パス
IOMMU PCI Express
物理ネットワーク アダプタ(SR-IOV あり)
PCI Express
物理ネットワーク アダプタ(SR-IOV なし)
ポート グループ
ポートの関連付け データ パス 制御パス ポート グループ
アップリンク ポート
VMware ESXi 仮想スイッチ
仮想マシン 仮想マシン
1
3 4
2 5
仮想マシン VF ドライバ 仮想マシン
VF ドライバ
PF
PF ドライバ PF ドライバ
VF VF PF
仮想スイッチ アップリンク
ポート
SR-IOV のデータ パス
仮想マシンネットワークアダプタが仮想機能に割り当てられると、ゲスト OS の VF ドライバは I/O メモリ管理ユニット
(IOMMU)テクノロジを使用して、ネットワークを介してデータを送受信する必要のある仮想機能にアクセスします。
VMkernel、つまり仮想スイッチは特にデータフローを処理しないため、SR-IOV が有効なワークロードの全体的な待ち
時間が削減されます。
SR-IOV の構成パス
ゲスト OS が VF にマップされている仮想マシンアダプタの構成を変更しようとする場合、その仮想マシンアダプタに関 連付けられたポートのポリシーによって許可されれば、その変更が実行されます。
構成ワークフローは、次の操作で構成されています。
1 ゲスト OS によって VF の構成変更が要求されます。
2 VF は、メールボックスメカニズムを使用して PF に要求を転送します。
3 PF ドライバは、仮想スイッチ(Distributed Switch の標準スイッチ、またはホストプロキシスイッチ)で構成要 求をチェックします。
4 仮想スイッチは、VF が有効な仮想マシンアダプタが関連付けられているポートのポリシーに基づいて、構成の要求 を確認します。
5 新しい設定が仮想マシンアダプタのポートポリシーに準拠している場合、PF ドライバは VF を構成します。
たとえば、VF ドライバが MAC アドレスを変更しようとする場合に、ポートグループまたはポートのセキュリティ ポリシーで MAC アドレスの変更が許可されていない場合、アドレスはそのまま変わりません。ゲスト OS には変更 が成功したことが示されても、ログメッセージには操作が失敗したことが示される場合があります。この結果、ゲ スト OS と仮想デバイスには異なる MAC アドレスが保存されます。ゲスト OS のネットワークインターフェイス が、IP アドレスの取得と通信を行えない可能性があります。この場合、ゲスト OS でインターフェイスをリセット し、仮想デバイスから最新の MAC アドレスを取得して、IP アドレスを取得する必要があります。
vSphere と仮想機能の相互作用
仮想機能(VF)は、データの交換に必要なすべてのリソースを含む、軽量な PCIe 機能ですが、最小限に抑えられた構 成リソースが含まれています。vSphere と VF の間の相互作用は制限されます。
n 物理 NIC では、MSI-X 割り込みを使用する必要があります。
n VF では、vSphere にレート制御は実装されません。すべての VF は物理リンクの全バンド幅を使用する可能性があ
ります。
n VF デバイスを仮想マシン上でパススルーデバイスとして設定すると、仮想マシンのスタンバイと休止機能はサポー トされません。
n 作成できる VF の最大数と、パススルーに使用できる VF の最大数は異なります。インスタンス化できる VF の最大 数は、ホストの NIC 機能およびハードウェア構成によって異なります。ただし、パススルーデバイスに使用できる 割り込みベクトルの数は制限されているため、インスタンス化されたすべての VF のうち、ESXi ホストで使用できる 数は制限されています。
各 ESXi ホストの割り込みベクトルの合計数は、32 CPU の場合、最大で 4096 です。ホストが起動するときに、ホ
スト上のデバイス(ストレージコントローラ、物理ネットワークアダプタ、USB コントローラなど)が、4096 個 のベクトルの一部を消費します。これらのデバイスによって 1024 個を超えるベクトルが必要になると、潜在的にサ ポートされる VF の最大数が減らされます。
n Intel NIC でサポートされる VF の数は、Emulex NIC でサポートされる数と異なる場合があります。NIC ベンダー の技術ドキュメントを参照してください。
n Intel NIC と Emulex NIC で SR-IOV が有効に設定されている場合、Intel NIC で使用可能な VF の数は、Emulex NIC 用に構成されている VF の数によって決まり、この逆も当てはまります。3072 個のすべての割り込みベクトルがパ ススルーに利用できる場合、以下の公式を使用して、使用可能な VF の最大数を予測できます。
3X + 2Y < 3072
ここで、X は Intel VF の数であり、Y は Emulex VF の数です。
ホスト上の他の種類のデバイスが、ホスト上の合計 4096 個のベクトルのうち、1024 個以上の割り込みベクトルを 使用する場合、この数字は小さくなることがあります。
n vSphere SR-IOV は、サポートされている Intel NIC と Emulex NIC で最大 1024 個の VF をサポートします。
n vSphere SR-IOV は、サポートされている Intel NIC または Emulex NIC で最大 64 個の VF をサポートします。
n サポートされる Intel NIC が接続を失うと、物理 NIC からのすべての VF は、VF 間の通信を含めて、通信を完全に 停止します。
n サポートされている Emulex NIC が接続を失うと、すべての VF は外部環境との通信を停止しますが、VF 間の通信 は引き続き機能します。
n VF ドライバは、IPv6 のサポート、TSO、LRO チェックサムなど、多数の機能を提供します。詳細については、NIC ベンダーの技術ドキュメントを参照してください。
DirectPath I/O 対 SR-IOV
SR-IOV は、DirectPath I/O の場合と同様に、パフォーマンス上の利点とトレードオフを提供します。DirectPath I/O と
SR-IOV の機能は類似していますが、それらの機能を使用して異なるタスクを実行します。
SR-IOV は非常に高速なパケットレートのワークロードと遅延要件を満たす際に有用です。SR-IOV は、DirectPath I/O
と同様に、vMotion など、特定のコア仮想機能と互換性がありません。しかし、SR-IOV では、単一の物理デバイスを複 数のゲストで共有できます。
DirectPath I/O では、1 つの仮想マシンにマッピングできる物理機能は 1 つのみです。SR-IOV では、1 つの物理デバイ スを共有できるため、複数の仮想マシンを物理機能に直接接続できます。
SR-IOV を使用するための仮想マシンの構成
SR-IOV の機能を使用するには、ホスト上で SR-IOV 仮想機能を有効化し、仮想マシンをその機能に接続する必要があり
ます。
開始する前に
お使いの環境の構成が SR-IOV をサポートしていることを確認します。「SR-IOV サポート (P. 138)」を参照してください。
手順
1 ホスト物理アダプタでの SR-IOV の有効化 (P. 143)
仮想マシンを仮想機能に接続するには、vSphere Web Client を使用して、SR-IOV を有効にし、ホストの仮想機 能の数を設定します。
2 仮想機能の SR-IOV パススルーアダプタとしての仮想マシンへの割り当て (P. 144)
仮想マシンと物理 NIC が確実にデータを交換できるようにするには、仮想マシンを 1 つ以上の仮想機能に SR-IOV パススルーネットワークアダプタとして関連付ける必要があります。
トラフィックは、SR-IOV パススルーアダプタから、標準スイッチまたは Distributed Switch の関連ポートに関するア クティブポリシーに準拠している物理アダプタに渡されます。
SSR-IOV パススルーネットワークアダプタに割り当てられている仮想機能を確認するには、仮想マシンの [サマリ] タブ
で [仮想マシンのハードウェア] パネルを展開し、アダプタのプロパティを確認します。
スイッチのトポロジダイアグラムには、仮想機能を使用する仮想マシンアダプタが アイコンで示されます。
次に進む前に
スイッチ、ポートグループ、およびポートでネットワークポリシーを使用して、仮想マシンに接続された仮想機能を通 過するトラフィックを設定します。「SR-IOV 対応仮想マシンに関連するトラフィックのためのネットワークオプショ ン (P. 145)」を参照してください。
ホスト物理アダプタでの SR-IOV の有効化
仮想マシンを仮想機能に接続するには、vSphere Web Client を使用して、SR-IOV を有効にし、ホストの仮想機能の数 を設定します。
手順
1 vSphere Web Client で、ホストに移動します。
2 [管理] タブで、[ネットワーク] をクリックし、[物理アダプタ] を選択します。
SR-IOV プロパティを確認すれば、物理アダプタで SR-IOV がサポートされているかどうかがわかります。
3 物理アダプタを選択し、[アダプタ設定の編集] をクリックします。
4 [SR-IOV] で、[ステータス] ドロップダウンメニューから [有効] を選択します。