日本ヒューレット・パッカード 池田 拓也


 ヴイエムウェアは2006年6月,サーバー向け仮想化ソフトウエアのスイート製品「VMware Infrastructure 3」を発表した。サーバー向け仮想マシン・ソフトの最新版「VMware ESX Server 3.0」と,仮想インフラストラクチャ管理ソフトウエアの最新版「VMware VirtualCenter 2.0」が含まれる。これらの製品には多くの機能が追加され,対応するデバイスも拡張された。この1年でエンタープライズ領域での仮想化ソフトウエアの利用は急速な広がりを見せており,今後導入を検討する企業はますます増えてくると予想される。

 ここでは,VMware Infrastructure 3 を使用したシステムの構築方法や新機能,システムを効率良く利用するためのヒントなどを紹介する。まずは,いくつかあるヴイエムウェアの仮想化ソフトウエア製品の特徴を説明し,その中でのVMware ESX Serverの位置づけを明らかにする。

ヴイエムウェア唯一のハイパーバイザー

 ヴイエムウェアは現在,x86向けの仮想化ソフトウエアとして,サーバー向けに「VMware ESX Server」と「VMware Server」の2種類,デスクトップ向けに「VMware Workstation」と「VMware ACE」の2種類の製品を提供している。VMware ESX Server は大規模環境やミッション・クリティカル環境向け,VMware Serverは中小規模環境向け,そしてVMware Workstationはソフトウエアの開発やテスト向けの製品である。VMware ACEは非技術系部門で簡単に仮想化環境を利用できるよう,管理機能を充実させた製品である。

 これらのソフトウエアは,1台の物理的なコンピュータ上に複数の仮想マシンを構築するといった仮想化ソフトウエアの基本的な機能は同じである。だが,採用している仮想化アーキテクチャに大きな違いがある(図1)。

図1●ヴイエムウェア製品間の仮想化アーキテクチャの違い
図1●ヴイエムウェア製品間の仮想化アーキテクチャの違い
[画像のクリックで拡大表示]

 VMware ESX Serverは「VMkernel」と呼ぶ独自の仮想マシン管理カーネルを備え,これがハードウエア上で直接動作して仮想マシンを構築する。VMkernelは,独自のドライバによって直接ハードウエアを制御する。このため,次に説明するホストOSが必要なタイプに比べて,仮想化によるオーバーヘッドが少ないという特長がある。VMware ESX Serverが採用しているこの方式は「ベア・メタル・アーキテクチャ」あるいは「ハイパーバイザー・アーキテクチャ」と呼ばれている。

 これに対してVMware ServerとVMware Workstationは,ホストOSと呼ばれる既存のOS上にアプリケーション・ソフトとしてインストールされる。この方式では仮想マシンからI/Oアクセスがあると,VMware Server/Workstationを経由して,ホストOSが備えるデバイス・ドライバがI/O要求を処理することになる。つまり,要求のたびにVMM(仮想マシン・モニター)からホストOSへプロセッサの制御が移るわけだ。この切り替え処理の負荷は非常に大きく,結果としてVMware ESX Serverと比べて仮想化のオーバーヘッドが大きくなってしまう。しかし,この方式には,ホストOSが備えているドライバが対応したすべてのデバイスを使用できるという利点がある。VMware ESX Serverでは,VMware ESX Serverが対応している(ドライバを備えている)デバイスしか利用できない。

 さらに詳しく説明しよう。

仮想マシンでSMP構成が可能

 VMware ESX Serverは,ハイパーバイザー型アーキテクチャを採用すると同時に,ハードウエア・リソースの高度な管理機能と制御機能を備えている。例えば,仮想マシンを動作させるプロセッサの明示的な割り当て(Scheduling A?nity)や仮想CPUの優先度(Shares)を,仮想マシンを動作させたまま変更できる。また,ハイパースレッディングやNUMAといったハードウエア技術にも対応している。

 このように多機能なVMware ESX Serverだが,その中でも特に「Virtual SMP」と「VMotion」が特徴的だ。

 Virtual SMPは,1つの仮想マシンに複数の論理プロセッサを割り当てる機能である(図2)。論理プロセッサとはデュアルコアやクアッドコアといったマルチコア・プロセッサの場合,1つひとつのコアを指し,ハイパースレッディング・システムではそれぞれのハードウエア・スレッドを指す。

図2●1つの仮想マシンに複数の論理プロセッサを割り当てる「Virtual SMP」
図2●1つの仮想マシンに複数の論理プロセッサを割り当てる「Virtual SMP」
[画像のクリックで拡大表示]

 逆にシングルコア・プロセッサでは論理プロセッサ=物理プロセッサとなる。つまり,Virtual SMPとは複数の論理プロセッサを備えたハイエンド機で仮想マシンを稼働したときに,仮想マシンからハードの処理性能をより多く引き出すための機能である。

 1つの仮想マシンに1つの論理プロセッサしか割り当てられないとすると,4wayあるいは8wayといったハイエンド機やデュアルコア,クアッドコア・プロセッサといった最新のプロセッサを搭載したサーバーを利用しても,ある瞬間で見ると仮想マシンはその中の1つの論理プロセッサしか使用していないことになる。つまりハードウエアの性能をフルに引き出せない。Virtual SMPを使用すると,複数のプロセッサを1つの仮想マシンに割り当ててSMP構成の仮想マシンを作りだすことができ,プロセッサ・パフォーマンスが高い仮想マシンを作成できる。VMware ESX Server 3.0では,1つの仮想マシン当たり,最大で4つの論理プロセッサを割り当てられる。最新のサーバーはほぼすべてデュアルコア,クアッドコアといったマルチコア・プロセッサを搭載しているため,その性能を最大限に利用するためにもVirtual SMPは重要な機能と言える。

 VMware ESX Serverのターゲットは,データセンターのような大規模環境におけるサーバー統合である。データセンター内に存在する使用効率の低いサーバーを仮想マシン上に移行させ,物理的なサーバーの台数を減らすことによりハードウエアのコストと管理コストを削減できる。さらにVMware ESX Server 3.0なら,4way Virtual SMPが利用できるため,仮想化環境では処理性能が出ないといった問題でこれまで移行できなかったサーバーでも,仮想化環境に移行できるだろう。今後はさらにサーバーの集約率を高めることが可能になる。