Red HatがKVM(Kernel-based Virtual Machine)を搭載すると発表したのは、今年2月のこと。そして6月、とうとうKVMがRHEL(Red Hat Enterprise Linux)5.4βとして姿を現し、今年9月、シカゴで開催されるRed Hat Summit 2009で正式版となる予定だ。そのKVMを開発したのはイスラエルのQumuranet。2007年11月、Linux Kernel 2.6.20に搭載され、その後、同社は、昨年9月にRed Hatに買収された。
この買収でRed HatがKVMにのめり込むことが確実となった。
振り返ってみれば、Red Hatの仮想化対応は煮え切らないものだった。Red HatがXen搭載をRHEL4で発表したのは2004年のこと。しかし、実際にXenが搭載されたのは2007年のRHEL5.0 である。この間、殆ど何も進まなかった。そして同じRHEL5でも、5.0~5.3まではXen、5.4からはKVM、さらにRHEL6からはXenのサポートを停止するという。今度はもう後には戻れない。
KVMについて、少し纏めておこう。
KVM は、Para Virtualization(準仮想化)も可能だが基本的にFull Virtualization(完全仮想化)をサポートするのでGuest OSに変更の必要はなく、コードも約1万ライン程度とコンパクトなものでKernelに内臓される。これによって、他の仮想化技術とは異なり、Kernelがそのまま Hypervisorに生まれ変わった。このKernelとのタイトな関係によってパフォーマンス面では優位に立つ。つまり、Hypervisorでは SchedulerやMemory Management、I/O StackなどOS同様の機能が必要だが、KernelにKVMを持つことで、これらの重複を省くことができる。こうして出来上がった OSは仮想化技術内臓の次世代型となった。Guest OSとしてはRHEL3&4シリーズ、Windows XP、Windows Server 2003/2008がサポートされる。LinuxのKVMではハードウェアの仮想化支援機構であるIntel-VTかAMD-Vが前提となり、仮想コン フィギュレーションにはQEMU、仮想マシン用のAPIはLibvirtを採用、これらはXenも同様である。
さて今回のインプリメンテー ションの特徴だが、①High Performance I/Oだけでなく、②NICやCPUなどのHot Plug、③SMP用Guest OS、④大型サーバーNUMA (Non Uniform Memory Access)アーキテクチャー、⑤Power Management、⑥IBM社のPowerPCとS390対応などがあげられる。中でもRHELの大口SIerであるIBMのメインフレーム (S390)適用は特筆される。今や最新の自前OSを持たないIBMにとって、RHELは重要なOSであり、同社の製品の特性や顧客ユーザーに合わせて サーバーにはRHEL、メインフレームにはz/OSとRHELの両方が適用されている。また、KVMのPower ManagementもLinux自身が長年大きな努力を払ってきた分野であるが、KVMを内臓することによって、最良の制御が可能となった。
KVMのExecution Modeは3つ(User/Kernel/Guest)。
仮 想マシン(VM)上のCPU ControlはLinuxのThreadに対応し、Linux SchedulerがVMのScheduleも担当する。結果として、VMのコードはネイティブに近い速度で実行、I/OはQEMU対応となって、実際に はLinuxのDriverがI/O処理を担当する。
Red Hat KVMのポートフォリオ(関連製品)は次の通り。
-Red Hat Enterprise Linux 5.4。
-Red Hat Enterprise Virtualization Hypervisor・・・軽量埋め込み用。
-Enterprise Virtualization Manager for Servers・・・プロビジョニングや監視。
-Enterprise Virtulization Manager for Desktops・・・QumuranetのSolidICE。
今回のβ発表でRed Hat社の新仮想化戦略が見えてきたが、まだまだ、努力を要する分野が多い。現時点のRoadmapには、I/Oパスと密接な関係にあるQEMUの改良、 ScalabilityやPerformance、Network関連作業などが読み取れるが、仮想化技術周りの環境整備計画は見えず、IBMを含むISVなどがどのように協力するのかが今後の鍵となろう。