物理デバイスの存在を抽象化し、依存性をなくすことは仮想化の大きなメリットの1つである。このため通常は仮想マシンのネットワークアダプタには仮想NICを構成し、物理NICそのものの存在は仮想マシンからは見えないように構成される。ほとんどの用途においてこの方式は適切に機能する。実際に、1Gbpsイーサネットの環境を仮想マシンから利用する場合においては、性能・効率の両面においてこの仮想NICを用いる方式がうまく機能する。
一方で、10Gbpsイーサネットの帯域を常用するような用途の仮想マシンを考えてみる。この場合、ネットワーク性能に関しては物理マシンと同等の結果を得ることができるが、CPU資源の消費量という観点においては仮想マシンと物理マシンの間に差が生じてしまう。つまり、ある仮想マシンが10Gbpsイーサネットの帯域をフルに活用しているような状況では、仮想化レイヤを介在することによるCPU消費量が無視できないレベルに達する場合があるということである。
このような用途にも対応するため、VMware ESX 4.0ではVMDirectPath I/Oという機能を新規に提供した。仮想化レイヤを介さず、物理デバイスを仮想マシンに直接割り当てる機能である。
ESX 4.0の出荷時点では、以下の2種類のデバイスが正式サポート対象とされている。
また、試験的サポートという取り扱いとなるが、以下のストレージデバイスも利用可能となっている。
この機能を用いると、仮想マシンは物理デバイスを直接利用することができるようになる。また、仮想化レイヤを介することなくデータ通信が処理されるため、CPU消費量を大幅に削減することができる。ただし、VMDirectPath I/Oはハードウェアによる仮想化支援機構を利用する技術であるため、物理マシンがI/O仮想化の機能を保有していることが必要条件となる。具体的にはIntel VT-dが利用可能なシステムが必要となる。なおAMD IOMMU環境においてもVMDirectPath I /Oは利用可能であるが、こちらは現時点では試験的サポートという取り扱いになっている。
VMDirectPath I/Oを構成した仮想マシンでは、残念ながらいくつかの制限事項が発生する。以下の機能が利用不可となる。
従って、10 Gbpsイーサネットの帯域を恒常的に利用する必要があり、かつCPU資源の消費を低く抑える必要性がある仮想マシンに限り、上記のトレードオフを理解した上でVMDirectPath I/Oの適用を検討するということになる。なお、現在提供しているデバイスパススルー機構はあくまでも第1世代の技術であり、将来的には仮想マシンのさまざまな特長と両立できる、より汎用的なパススルー機構の提供を計画中である。
vSphere 4ではほかにも多数のネットワークに関する新機能が提供されているが、代表的なものをここでは紹介する。
・IPv6のサポート範囲の拡大
VMware Infrastructure 3では、仮想マシンのIPアドレスに限りIPv6の利用をサポートしていたが、VMware vSphere 4ではこれに加え、サービスコンソール、VMkernel、vSphere ClientがIPv6の利用に対応した。vCenter Serverは現状IPv4のみのサポートとなっている。またESXのIPストレージデバイス(iSCSIとNFS)におけるIPv6の利用は試験的サポートという取り扱いとされている。
・VMXNET3
VMware Infrastructure 3では、仮想NICデバイスとして完全仮想化を行うe1000デバイスと、準仮想化技術を活用してホスト負荷を低く抑えることができるVMXNET(フレキシブルと表記される場合もある)、その第二世代にあたるVMXNET2 (Enhanced VMXNET)というデバイスを提供していた。VMware vSphere 4ではこれに加え、第3世代の準仮想化アダプタVMXNET3を利用可能である。VMXNET3では、ゲストOS側におけるVLANタグ機能の利用、IPv4/IPv6双方に対するTSO機能、TCP・UDPのチェックサムオフロード機能、MSI/MSI-Xのサポート、Receive Side Scaling機能などが新機能として追加されている。
・Virtual Machine Communication Interface (VMCI)
同一の物理マシン上で動作している複数の仮想マシン同士でネットワーク通信を行う場合に、従来の仮想NIC/仮想スイッチのレイヤを介在させず、より高速でホスト負荷の低い通信手段を提供するのがVirtual Machine Communication Interface (VMCI)である。VMCIはゲストOSのソケットインターフェイスから利用可能なAPIとして提供されている。VMCIを利用するアプリケーションの開発あたって必要となるヘッダ・ファイルはVMware Toolsのインストール時にゲストOS内にインストールされる。またVMCIを利用したアプリケーション開発に必要な情報は以下にて公開されている。
VMCI Sockets Documentation
http://www.vmware.com/support/developer/vmci-sdk/
今回はVMware vSphere 4のネットワークに関する新機能を紹介した。多数の新機能が提供されているが、一方でVMware Infrastructure 3で提供されていた機能も基本的にそのまま提供されているため、既存のユーザーも比較的容易に移行できることだろう。新機能は大規模環境を意識した分散仮想スイッチのような技術から、VMXNET3のような仮想デバイスの細部の更新に至るところにまで及んでいる。
次回はVMware vSphere 4のストレージに関する新機能を紹介する予定である。
Copyright © ITmedia, Inc. All Rights Reserved.