仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

Windows Server 2012 Hyper-V の SR-IOV 構築手順 (1)

f:id:ogawad:20190203195637p:plain:right

(1) (2) (3) (4)

次期 Windows Server 2012 には、
ここ最近仮想化で話題の SR-IOV (Single Root IO Virtualization) が実装されます。
先日の イベントで利用したサーバー を使って SR-IOV を試してみましたので、3回くらいで書き残しておこうと思います。

SR-IOV とは?

SR-IOV とは、ゲストが NIC や HBA などを介して物理サーバーの外に I/O するにあたり、オーバヘッドとなるハイパーバイザー層を介さずに直接 I/O する技術です。
通常、ゲストには完全(または部分的に)エミュレートされた「仮想 NIC」や「仮想 SCSI アダプタ」を割り当てますが、SR-IOV を利用した場合はサーバーに搭載されている 物理 NIC や 物理 HBA をゲストがそのまま認識します。



SR-IOV のメリットと VMDirectPath I/O との違い

SR-IOV を使う一番のメリットは「性能」です。
スループットはもちろんですが、オーバーヘッドが無いことで特に遅延の大幅改善と CPU 負荷の低減が見込まれます。このほかにも、物理 NIC や 物理 HBA の拡張機能が制限されず、フルに利用できる利点もあります。



類似の技術として、VMware 独自の「VMDirectPath I/O」もありますが、
PCI-SIG が標準化した SR-IOV は次のような強みがあります。

  • Live Migration や HA、Snapshot、Suspend といった仮想化機能を制限しない
  • ゲストと物理デバイスは占有 (1:1) だけでなく、共有 (n:1) もできる
  • 同一サーバー上のゲスト間通信の場合は、仮想スイッチに切り替えて内部通信させる実装も可能


ここでお気づきになった方もいると思うのですが、SR-IOV はそんなに目新しい考えではなく、従来ハイパーバイザーが行っていた複数ゲストからの I/O 調停をハードウェア(NIC や HBA)が代行するだけです。しかし、この効果は非常に大きく「CPU オフロード」と「ハードウェア処理」の両方を得ることができます。


SR-IOV の要件

非常に強力な SR-IOV ですが、ハードウェア側の対応が必要です。
現行モデルであればそれほど問題は無いと思いますが、今後仮想化用のハードウェアを調達する際には、この辺りの対応状況も代理店に確認しておきましょう。


本番業務向けのハードウェアが必要ということで、ブロガーによる検証情報などは少ないですが、標準化を後押しした Intel の KB が充実しています。

FAQs: Using SR-IOV with Intel® Ethernet Server Adapters
http://www.intel.com/support/network/adapter/pro100/sb/CS-031492.htm

Windows Server 2012 Hyper-V の SR-IOV 追加要件

Windows Server 2012 Hyper-V で SR-IOV を利用する場合、とりあえずは NIC に限定*1 されます。また RC の時点では対応デバイスに制限があるそうです。

http://blogs.technet.com/b/privatecloud/archive/2012/05/14/increased-network-performance-using-sr-iov-in-windows-server-2012.aspx


次回 は、実際に Windows Server 2012 で SR-IOV を構築してみたいと思います。

*1:FC-HBA は NPIV で対応