Virtual I/Oとは

Virtual I/Oとは、HBAやNIC等のI/Oデバイスを複数のホストから共有することを可能にする技術のことです。I/OデバイスはI/O仮想化装置に集約され、I/O仮想化装置とホスト間はInfinibandのような性能/コスト効率のよいネットワークで接続するというやり方になります。こうすることで、ホストごとにI/Oデバイスを持たなくてもよくなるとともに、ケーブル数を大きく減らすことができます。
今日は、Virtual I/Oについて良エントリがあったので紹介します。

Data Center Advice, Discussion, & Community - Network Computing
この記事では大きく二つのアプローチが紹介されています。一つ目のアプローチはInfinibandを使ったアプローチです。サーバとI/O仮想化装置の間をInfinibandで接続し、I/O仮想化装置にあるHBAやNIC複数のホストで共有します。製品例として、Voltaire Grid DirectorMellanox BridgeXXsigo I/O Directorが紹介されています。
実装は各社で異なるようです。例えば、MellanoxはInfiniband上にFCやEthernetカプセル化していますが、Xsigoは自製のドライバをホストに提供し、そのドライバがホスト上に仮想HBAや仮想NICを作成し、それらがホストからは通常のHBA/NICとして認識されるというやり方です。Xsigoの仮想NIC/HBAは物理サーバ間で容易に移行可能という特徴があるらしく、負荷分散や移行に使うと面白いかもしれません。
もう一つのアプローチはInfinibandの代わりにPCIeを使ったアプローチです。製品例として、NextIOApriusVirtenSysが紹介されています。IBMBladeCenter HTもNextIOの技術を使っているようです。
PCIeの魅力は、価格です。

these systems use a low-cost -- around $200, versus $1,500 for a converged network adapter -- stateless PCIe extender card so servers use the I/O devices drivers unmodified.

PCIe Extender Cardは$200程度とかなり低価格になっています。また、デバイスドライバの変更もいらないことも大きな魅力です。
ブレードサーバ等の普及に伴いVirtual IOの高密度化・ケーブルレス化へのニーズは今後大きくなることが予想されます。目が離せない領域の一つです。