第4のハイパーバイザー「KVM」開発者が語る、Xenとの大きな違い


 「KVMはXenよりも大幅にパフォーマンスがアップしている。なにより、LinuxカーネルにマージされているKVMは、Linuxカーネルで追加される新しい機能を享受できる」、そう語るのは、Red Hatが開発を進めているハイパーバイザーKVMの開発者で、メインメンテナーのアヴィ・キヴィティ氏。アヴィ・キヴィティ氏は、KVMの開発を行っていたイスラエルのQumranetに在籍し、QumranetがRed Hatに買収された後も、KVMの開発、メンテナンスを続けている。

 普及という面では、Xenに一歩遅れていたKVMだが、NTTコミュニケーションズのクラウドサービス「BizCITY」で採用されるなど、徐々に採用が始まっている。今回、アヴィ・キヴィティ氏およびレッドハット株式会社 マーケティング本部 部長の中井雅也氏に、KVMの特長と今後のスケジュールなどを伺った。


Linuxの仮想化スタンダードはKVMに


―Xenと比べて、KVMにはどのようなメリットがありますか?

アヴィ・キヴィティ氏
XenとKVMの歴史

アヴィ氏
 Xenと比べて、KVMが開発されたのは新しいのですが(Xenは2003年、KVMは2006年)、2007年にLinuxカーネル(Linux 2.6.20)にマージされました。Xenは、現在でもLinuxカーネルとのマージはなされていません。

 カーネルにマージされるということは、Linuxカーネルでサポートされているさまざまな機能がKVMでも利用できるということです。例えば、パワーマネジメント機能を実現するACPIなどのサポートも、KVMであればLinuxカーネルでサポートされれば、KVMでも利用できます。しかし、Xenの場合は、Xen自身でACPIをサポートしなければならないため、対応が遅れてしまいます(2008年にリリースされたXen 3.2でサポート)。こういったことを考えると、Linuxカーネルで追加される新しい機能をKVMはいち早く享受できます。

 また、旧Qumranetが、Red Hatに買収されたことで、世界中で最も利用されているRed Hat Enterprise Linux(RHEL)に標準でKVMが提供されました。こういったことからも、Linuxにおいては仮想化のスタンダードはKVMになっていくと思います。


―KVMのアーキテクチャーはどのようになっていますか?。

アヴィ氏
 最大の特徴は、KVMはLinuxカーネルにマージされているので、そのままLinuxアプリケーションを動かせるという点にあります。

 Xenは、Domain 0という管理環境でデバイスドライバを管理しています。このDomain 0は、管理に徹しているため、Linuxアプリケーションなどを動かすことは適切ではありません。Linuxアプリケーションを動かすには、仮想環境にLinuxをインストールして、仮想マシン上で動かす必要があります。

 しかし、KVMはカーネルと統合されているため、Linuxアプリケーションを動かすときは、RHELをそのまま利用できます。KVMは、仮想マシンを動かすときだけ関係します。


KVMのアーキテクチャー。Linuxカーネルでサポートされているので、通常のLinuxアプリケーションをそのまま動かすことができるXenのアーキテクチャー。Xenは、Linuxカーネルが提供しているさまざまな機能が利用できないため、Xen自身にスケジューリングなどの機能をインプリメントしなければならない

Linuxカーネルの新機能をいち早くKVMでも利用できる


―KVMの基本スペックを教えてください。

アヴィ氏
 KVMは、96コアのCPU、1TBのメモリなどをホストサーバーでサポートします。仮想マシン1つあたりでは、16仮想CPU、64GBメモリのサポートとなっています。また、仮想環境にとって必要なLive Migration機能は、2007年に実現されています。もちろん、IntelのEPTやAMD-Vなどの仮想化支援機能やVT-dといった機能もサポートしています。


―KVMのパフォーマンスはどうですか?

KVMとXenのパフォーマンス比較。KVMの方がXenの数倍速い
KVMで採用しているメモリモデル

アヴィ氏
 2009年7月にSybaseのデータベースを使ってベンチマークを行いました。KVMは、物理ハードウェアと比べると15%ほどのオーバーヘッドがあります。しかし、Xenと比べると大幅にパフォーマンスアップしています。このデータから分かるように、KVMを使えば、仮想環境でも大幅にパフォーマンスアップできると思います。

 KVMでは、パフォーマンス面だけでなく、メモリ管理でもいろいろな機能を用意しています。例えば、Ballooning機能により、仮想マシンのゲストOS上で利用されていないメモリをホストに返却することができます。これにより、仮想環境でも効率の良いメモリ管理が行えます。ただし、ゲストOS側にBallooning機能に対応するためのドライバが必要です(現在、Linuxのみ対応)。このほか、Sharing機能(メモリ空間上にある同一内容を一つにまとめる機能)、Swapping機能(仮想マシンに割り当てたメモリをスワップする機能)など、メモリ管理機能が追加されています。

 こういった機能は、KVMだけのために作られたのでありません。Linuxのカーネルに新しいメモリ管理機能が追加されることで、KVMでも利用できるようになっているのです。こういったことは、カーネルに統合されているKVMならではです。

 これ以外にも、NUMAアーキテクチャーのプラットフォームにおいて、各CPUが持っているローカルメモリをきちんと管理して、仮想マシンが利用しているCPUの管理外(他ノード)のメモリを頻繁に利用しないようにするPage Migration機能なども用意しています。

 将来的には、協調的なメモリ管理、メモリの圧縮機能なども追加していく予定です。


―KVMとXenの関係はどうなるのでしょうか?

アヴィ氏
 Linuxカーネルの開発者は、同じ機能を重複してサポートすることを嫌います。現在、カーネルに統合されている仮想化機能はKVMだけです。Xenは、古くからLinuxカーネルへの統合を表明してはいますが、さまざまな部分で重複部分を持っているため、Linuxカーネルへの統合は大変難しいと思います。

 先にお話しした仮想化のスケジューリングが重複してXenにインプリメントされていたり、Domain 0の問題などがあるため、Xenの開発は大変になっていくでしょう。Linuxカーネルに統合されない以上、Xenは自分自身ですべてをサポートしていかなければなりません。これは、Xen自体が肥大化する原因になると思います。

 また、新しい機能のサポートに関しても問題があるでしょう。KVMは、カーネル統合されているため、多くの開発者が作った機能をそのまま利用できます。例えば、NehalemなどのCPUで提供されているパワーマネジメント機能などは、Linuxカーネルでサポートされたため、すぐに仮想マシンでも提供できました。また、今後、KVMにインプリメントされるメモリの圧縮機能は、もともと仮想化とは別に開発されていた機能です。KVMは、シンプルでありながら、Linuxカーネルの進化とともに、新しい機能がどんどんと提供されていきます。Xenはこういったペースで進化していくことは、現状のままではないでしょう。

 RHELもディストリビューションとしては、Xenが入っています。このため、すぐにKVMがXenを置き換えるとはいえませんが、Linuxの仮想化における未来はKVMにあると確信しています。

 RHELは、コンサバティブなOSです。企業の中枢で利用されるサーバーOSである以上、信頼性や安定性が重要視されています。新しいRHEL 5.4でKVMが統合されたということは、KVM自体が安定して企業で利用して大丈夫なくらい安定してきたといえます。今後は、KVMが仮想化のスタンダードになっていくと確信しています。


―KVMでのOSサポートはどうなっていますか?

アヴィ氏
 KVMは、準仮想化を採用しているため、仮想マシン上のOSにKVMに対応したデバイスドライバが必要になります。現在、RHEL以外にも、Windows Server 2003以降のOSがサポートされています。これは、単に動作するというだけでなく、MIcrosoftの契約の元に相互互換性を保証しています(筆者注:Windows NT 4.0以降のOSもKVM上で動作するが、Red Hatはサポートはしていない)。


管理ツールは年内にリリース、VDIソリューションは2010年に

―KVMの管理ツールなど、ほかのソフトウェアのリリーススケジュールはどうですか?

中井氏
 KVMを統合したRHEL 5.4を9月8日に発表しました。複数のRHELサーバーを管理するための「Red Hat Enterprise Virtualization Manager For Servers」は、年内にリリースする予定です。ただ、Red Hatにとっては初のWindowsベースのソフトウェアになってしまいました。最初は、Windowsベースでリリースしますが、Javaベースでの書き換えを行っているため、将来的にはLinuxベースでも動作するようになると思います。

 また、RHELのカーネルとKVMだけが入った「Red Hat Enterprise Virtualization Hypervisor」のリリースも年内に行います。これは、VMwareのESXiなどと同じく、非常にコンパクト(64MBのフットプリント)になっています。USBメモリからのブートもできます。

 旧Qumranetで開発が進められていたSolid ICE VDIを利用した仮想デスクトップソリューション「Red Hat Enterprise Virtualization Manager for Desktops」に関しては、2010年になりそうです。


複数の仮想化サーバーを管理するRed Hat Enterprise Virtualization Manager for Serversは、少しスケジュールが遅れており、年内のリリースを予定しているRed Hat Enterprise Virtualization Hypervisorは、仮想サーバーを実現するだけの非常にコンパクトなハイパーバイザーだ。最小限のLinuxカーネルが搭載されている


―Xenは、本年中にデスクトップPC用のハイパーバイザーをリリースしますが、KVMはデスクトップ用の製品を計画していますか?

アヴィ氏
 特にデスクトップ用の製品を検討しているわけではありません。ただ、LinuxのカーネルにKVMは入っているため、FedoraやUbuntuなどのデスクトップOSでも仮想環境がサポートされています。ただ、Red HatでデスクトップPC用の仮想ハイパーバイザーをリリースする予定はありません。将来的には、Linuxカーネルに入っているKVMを利用したデスクトップOSをリリースする企業などが出てくるでしょう。

 とにかくわれわれは、KVMの機能をどんどんアップしていき、すべてのLinux環境において、KVMが利用されていくようにしたいと思っています。


―ありがとうございました。



関連情報
(山本 雅史)
2009/10/26 00:00