ハードウェアによる仮想化支援はさらに進む〜CPU, Memory, そしてNetwork

仮想化がより普及していく中で、x86/64アーキテクチャにおける様々な標準仕様においてハードウェアの仮想化支援機能がより拡充されつつあります。KVMなどのかなりシンプルなHypervisorは、ソフトウェア的に実装されてきた多くの機能がハードウェア的に実装されていったことにより成立しているといえるでしょう。2008年はCPU、2009年はMemoryに関する仮想化支援機能が普及した年となりましたが、2010年はNetworkに関する仮想化支援機能が普及する年となりそうです。10Gbpsの普及はこの流れをつくり出す強力なエンジンとなるでしょう。
個人的に普及することを期待している技術がSR-IOV (Single Root I/O Virtualization)です。
SR-IOVはPCIにおいて仮想マシンからのI/Oを処理するための規格なので、必ずしもNetworkのための仮想化支援機能というわけではありません。ストレージコントローラにおいて用いれば仮想マシンごとのストレージI/Oの振り分け処理がハードウェアによって処理されることになります。

http://itpro.nikkeibp.co.jp/article/Keyword/20100115/343227/
しかし、個人的にはSR-IOVを最も活かすことが出来るのはやはりNICバイスでの使用だと思います。NICにおけるSR-IOVは、NICの中にL2スイッチを構成することとほぼ同義です(Broadcastもサポートされます)。これにより、これまでソフトウェア的にvSwitchによって処理されていたスイッチング処理はNICによってハードウェア処理させることができるようになります。

SR-IOVはPCIにおける仕様ですが、Hypervisorによる制御が必要です。Hypervisor側にPCI Manager (PCIM)と呼ばれる制御機構と対応デバイスドライバを組み込むことにより、SR-IOVに対応したPCI NICを制御します。PCIMは仮想マシンごとにVirtual Fanction (VF)を用意し、仮想マシンにはVFデバイスドライバを組み込むことにより仮想マシンごとのネットワークI/OがNICにより処理されることになります。SR-IOVという仕様は2007年に策定された仕様ですが、10Gbps NICによってその真価が発揮できる環境が整ったといえます。Hypervisor側の対応ステータスとしては、まだ現時点ではKVMなど一部だけに留まっていますが、VMwareHyper-V、XenServerにおけるサポートが進めば、一気に普及していくことになるのではないかと思います。