Hyper-V - Microkernelized hypervisor vs. Monolithic hypervisor ?

the Microsoft Conference 2008が4/15-16と開催されています。
http://www.microsoft.com/japan/msc/2008/default.mspx
ふらっとちょっと行ってみたのですが、まぁ会場大混乱(^_^;)。そりゃそうですよね、各セッションとも予約制ではなく、当日選択制なんですから。まぁあれだけの人を集客できるMicrosoftはさすがですけれども。やはりIT Pro向けとDeveloper向けは別に開催した方がよいのでは?
で、幅広く色々書いてもなんなので、今日は表題の件について。
Hyper-Vによって、やっとHypervisor型のサーバ仮想化アーキテクチャをそのラインナップに追加したMicrosoftですが、自身のHypervisor型モデルはVMwareよりも優れている!と訴えている差別化ポイントがこの"Microkernelized hypervisor"と"Monolithic hypervisor"という点。
MicrosoftHyper-Vの実体はhvboot.sysというマイクロドライバみたいなもの。それがOSよりも下、ハードウェア上で仮想化レイヤーとして動作します。そのサイズ、約3MB。VMwareのESX3iでも30数MBあることを考えると、非常に小さな仮想化レイヤーです。まぁそれもそのはず、Hyper-V自体はあくまでも仮想化レイヤーとして動作するためだけの存在であり、デバイスドライバ仮想マシンとのI/O制御などは全てその上で実行されているWindows Server 2008(64bit版のみ!)にまかせています。しかもハードウェアによる仮想化支援機能であるIntel-VTやAMD-V、そしてさらにはハードウェアDEP(Intel XDやAMD NX)が必須と、徹底的に「任せられる部分は外に任せる」仕様。Micorosoftはこの必要最小限のみに仮想化レイヤーを抑えた"Microkernelized hypervisor"型の方が、仮想化レイヤーがシンプルになり、セキュリティも確保することができること、そしてドライバなどをユーザが追加したり管理できる点などから「より堅牢な」Hypervisor型であると訴えています。
対してVMwareはここでMicrosoftがいう分類では"Monolithic hypervisor"型。仮想化レイヤー自身がドライバを含めてハードウェアデバイスを「完全に」制御する方式を採っています。仮想化レイヤーがどうしてもある程度のサイズを必要としてしまう点や、ドライバのセキュリティリスクが内在してしまう点、そしてドライバをユーザが追加したりすることができないが故にどうしても認定ハードウェアでの動作しか保証されない点などがデメリットとして存在します。
さて、ではどちらの方が優れているのか、という話ですが、そういうことになると、どちらも一長一短といった気がします。たしかにMicrosoftHyper-Vが採用した"Microkernelized hypervisor"型はユーザがドライバを管理できたりと柔軟性や拡張性があり、便利そうです。しかし、いくらServer Coreで大丈夫だとはいえ、ドライバやゲストOSのI/O制御を行うWindows Server(=Parent Partition)の安定性=仮想化環境の安定性、という図式になるわけです。また、ユーザが自由にデバイスドライバを管理できる仕様は、メリットでもありますが「不安定なドライバが組み込まれてしまったり」する可能性を残すことになります。Parent Partitionの停止は他のゲストOS(=Child Partition)にとってI/O停止を意味します。はてさて、おちおちWindows Updateもできないのでは…。
さらにMicrosoftにとって予想外なのは、VMwareがすでにESX3iというもはや"Monolithic"ですらない、"Thin hypervisor"型製品に移行しつつある点です。仮想化レイヤー自体のサイズでは勝っていても、Parent Partitionとして必要となるWindows Server 2008を含めるとやはり数GBは必要なHyper-Vは完全な「アプライアンス型」の仮想化製品となり得るのか。
ブラウザ戦争で圧倒的シェアを覆した実績を持つMicrosoftがこれからどういう戦法で先行するVMwareに対抗していくのか、2008-2009は面白いことになりそうです。
かなり書き漏らしていたり、書き切れていなかったりする部分もあるのですが、今日のところはこのへんで。