【 ここから本文 】
システム/アプリケーション統合
ソーシャルブックマークに登録 :
印刷用ページの表示
【解説】
「KVM」――Linux標準の仮想化機能の得意領域を知る
Linuxカーネルに統合された仮想マシン環境
(2008年07月07日)
ここにきて、「VMware」や「Xen」に対抗する技術として、既存の仮想化資産を引き継ぎながら、新たなインフラストラクチャへと発展する可能性を秘めた新世代の仮想化技術がいくつか登場し始めている。本稿では、「インテルTXT」に続いて、Linuxカーネル標準の仮想化機能「KVM」を取り上げ、技術の仕組みや特徴、メリット、課題などを探る。
森若和雄
レッドハット
Linuxカーネル標準の仮想化機能「KVM」
KVMとは「Kernel-based Virtual Machine」の略であり、Linuxカーネルにハイパーバイザの機能を追加する仕組みである。完全仮想化(フル・バーチャライゼーション)による仮想マシン環境を提供し、仮想マシンを動作させたまま実マシン間を移動するライブ・マイグレーションにも対応する。
KVMはもともと、イスラエルの仮想化ベンダー、クムラネットが独自に開発したもので、2006年10月にアナウンスされ、同年12月にLinuxカーネルにマージされた(バージョン2.6.20)。現在は公開から間がないため、今すぐ企業で利用することは難しいと思われるが、次期Red Hat Enterprise LinuxのベースとなるFedoraにも導入され注目を浴びており、コミュニティ(http://kvm.qumranet.com/kvmwiki/)においても活発に開発が進められている。
KVMの基本的な実装はほぼ完成し、現在はゲストOS上で動作するパラドライバ(Para-virtualized Device Driver)の開発や、パフォーマンス・チューニング、IA以外のアーキテクチャへの対応が行われている。
CPUの仮想化機能を活用し「ネーティブ並み」の速度を実現
KVMでのI/Oエミュレーションは、従来から開発されているユーザー・モードでの完全仮想化環境を提供するエミュレータ「Qemu」をベースとしている。Qemuの基本的な動作は、これから実行する命令をチェックし、I/O処理などの特権が必要な場合には、ソフトウェアによるエミュレーション層に分岐して各種デバイスやCPU動作のエミュレーションを行い、エミュレーションが不要な場合には命令をそのまま実行する。
従来のQemuは、特権命令であるか否かの判定をソフトウェア・ベースで行っていたが、KVMではこれをCPUの仮想化支援機能を利用して行うことで、処理の大幅な高速化を実現している。
KVMは、Linuxカーネルのモジュールとして実装されており、CPUの仮想化支援機能(インテルVTまたはAMD-V)にアクセスするためのインタフェース
(/dev/kvm)を提供する。これにより、カーネル・モード、ユーザー・モードに加えて、ゲスト・モードという新しい動作モードが追加されることになる(図1)。
| 図1:KVMのアーキテクチャ |
ゲスト・モードではI/O以外の動作は自由に行えるが、I/O動作の命令はトラップされて、カーネル・モードに遷移する。そしてユーザー・モードで動作するハードウェア・エミュレーション層に制御が移る。ハードウェア・エミュレーション層は、必要に応じてエミュレーション処理、システムコールによる実デバイスへのリクエストを行う。
このようにKVMには、CPUの仮想化支援機能を活用する仕組みが実装されている。
[米国]【Red Hat Summit 2008】レッドハットが仮想化市場に本格参入、KVMベースの「oVirt」をリリース

仮想化環境向けセキュリティ・ソフトも同時に提供開始
【解説】「インテルTXT」――セキュリティ機構が“売り”の仮想化応用技術


システム全体のセキュリティ強化を支援する仮想化応用技術
メリットを享受するには、継続的なキャパシティ・プランニングが必要
【事例】マネージド・サービス・プロバイダーに見る仮想化技術の効用
サービス品質/アジリティの向上を果たしたコンテジックス
【解説】ヴイエムウェアがはまる、仮想化最大手ゆえの「落とし穴」


仮想化ハイパーバイザの優劣に固執する姿勢に疑問あり

