Skip to content

Red Hat Enterprise Linux 5

KVM FAQ

Kernel Based Virtual Machine

KVM (Kernel-based Virtual Machine) はIntel VT or AMD-Vなどの仮想化支援機能を持つx86ハードウェア上のLinuxのための完全仮想化(full virtualization)のソリューションです。KVMにより、複数の仮想マシンを実行してLinuxやWindowsを実行できるようになり、それぞれの仮想マシンは、ネットワークカード、ディスク、グラフィックアダプターなどの仮想ハードウェアを持ちます。

コアの仮想化インフラを提供するカーネルモジュールkvm.koとプロセッサ特有のkvm-intel.koまたはkvm-amd.koで構成されます。
KVMはLinuxのメインラインのソースコードに含まれており、オープンソースのソフトウェアです。

FAQ:よく頂く質問と回答

* 以下はKVMコミュニティのFAQを、一部日本向けに表現を加筆修正して翻訳しております。

1.1 KVMを使用するための準備

1.1 KVMを利用するために必要なものはなんですか?

ハードウェアとしてはIntel VT(Virtualization Technology)またはAMD-Vなどの仮想化機能をサポートするプロセッサを搭載したx86アーキテクチャのコンピュータが必要です。ソフトウェ アはRed Hat Enterprise Linux 5.4降の、KVMをサポートする最近のLinuxが必要です。


1.2 KVMは64ビットプロセッサをサポートしますか?

はい。現在のところ、Red Hat Enterprise Linux のKVMはIA-32アーキテクチャの64bit環境だけで提供しています。ゲストOSは32bitおよび64bit環境の両方をサポートしています。


1.3 Intel VT / AMD-V とは何ですか?

Intel VTやAMD-Vは仮想化ソフトウェアに対して、プロセッサレベルでハードウェアによる支援を提供するための拡張命令セットです。これにより、仮想マシン上で、(処理によっては)ネイティブなハードウェアに劣らない性能を実現できます。


1.4 どのようにしてIntel VTやAMD-Vがサポートされていると知ることができますか?

最近のLinuxカーネルであれば、以下のコマンドを実行してください。

$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
このコマンドの実行結果、何かが表示されたら、VTやAMD-Vがサポートされているはずです。また、プロセッサモデル名に関しては/proc/cpuinfoの実行結果をベンダのWebサイトと照らしあわせてください。

注:製造メーカによってはBIOSでVTを有効にしていない場合がありますのでご注意ください。もし、ご不明な点がある場合には、ハードウェアの製造メーカにお問い合わせください。


1.5 "KVM: disabled by BIOS" というエラーが表示された場合は?

"KVM: disabled by BIOS" というエラーが表示された場合は、有効にするためのBIOS設定オプションを確認してください。もし設定できないようであれば最新のBIOSについて製造メーカにご確認ください。


1.6 KVMはどのようなユーザ空間のツールを使いますか?

KVMは少し修正を加えたQEMUによって仮想マシンのインスタンスを生成します。実行された仮想マシンは従来のLinux上のプロセスです。top, kill, taskset などのコマンドを仮想マシン管理のために使えます。


1.7 KVMはどのような仮想ディスクフォーマットを使えますか?

Red Hat Enterprise LinuxのKVMはrawイメージ、ネイティブQEMUフォーマット(qcow2)をサポートします。


1.8 仮想マシンの管理を支援するツールはありますか?

はい。libvirtによりXenと同様に管理することができます。具体的にはvirsh およびVirtualization Managerにより管理が可能です。

2 KVMを使用する

2.1 VMのプロセスにKillコマンド(kill -9)を実行するとどうなりますか?

ゲストOSの視点からは、それは電源コードを抜くのと同じです。ホストの視点からは、プロセスがkillされて全てのリソースが開放されます。


2.2 ゲストOSのネットワーク設定について知りたいのですが?

Red Hat Enterprise Linux 5.4の設定は以下を参考にしてください。
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/chap-Virtualization-Network_Configuration.html

またKVMのwikiのHowtoのページのNetwork related-Setting guest networkのリンクを参考にしてください。
http://www.linux-kvm.org/page/HOWTO
また、QEMUのドキュメンテーションも参考になるでしょう。


2.3 参考になるドキュメンテーションはどこにありますか?

ほとんどのユーザビリティの問題は、QEMU のマニュアルでカバーされています。
またRed Hat Enterprise Linux 5.4 のKVMに関する情報はVirtualization Guideを参照ください。
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/index.html

3 トラブルシューティング

3.1 VNC Displayを使用しているときに"rect too big"というメッセージが表示されます。

RealVNC / xvnc4viewerなどのVNCクライアントがZRLEエンコーディングを選択しているときにこの問題が起きる可能性があります。VNCクライアントのオプションでHextileのエンコーディングを選択すれば、問題が解決するはずです。


3.2 ゲストOSを他のマシンからアクセスできるようにネットワークを設定するにはどうすればいいですか?またゲストOSのネットワークがうまく動いていないときはどうすればいいですか?

ネットワークの設定については、Virtualization Guideで解説しておりますのでそちらを参照ください。
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/chap-Virtualization-Network_Configuration.html


3.3 VMwareやParallelsやVirtualBoxをインストールしていて、modprobe KVMを実行しようとしたらデッドロックが発生しました。

Intel VTもAMD-Vも、ソフトウェアが現在のハードウェア仮想化の拡張機能を使用するかを判断するためのメカニズムを提供します。これにより、ロードされた 2つのカーネルモジュールがハードウェア仮想化の拡張機能使用しようとすると問題が発生します。もしも他のタイプの仮想化ソフトウェアを使ってKVMで問 題が起きる場合、バグとして報告する前に他のソフトウェアのカーネルモジュールなしでその問題を間違いなく再現できることを確認してください。


4 一般的なKVMの情報

4.1 KVMとXenの違いは何ですか?

XenはOSの外部にあるハイパーバイザーとしてマシンの制御と ゲストOS間のリソース分割を行います。一方、KVMは、Linuxの一部であり、スケジューラとメモリ管理をLinuxが行います。したがって、はるか に小さく使いかたもシンプルです。また機能が豊富です。例えばKVMはメモリーを開放するためにゲストOSをディスクにスワップすることが可能です。

KVMはハードウェアの仮想化支援機能があるx86プロセッサでのみ動作しますが、Xenはparavirtualizationにより仮想化 支援機能のないx86プロセッサ上で修正されたOSを実行可能です。KVMはCPUのparavirtualizationをサポートしませんが、I/O パフォーマンスを向上させるためにデバイスドライバのparavirtualizationをサポートします。


4.2 KVMとVMwareの違いは何ですか?

VMwareはプロプライエタリな独自製品です。一方、KVMはGPLのもとにリリースされるオープンソースのソフトウェアです。


4.3 KVMとQEMUの違いは何ですか?

QEMUはプロセッサをエミュレーションします。KVMはプロセッサの拡張機能を仮想化のために使います。


4.4 KVMのWindows版はありますか?

いいえ。


4.5 必要なメモリーは?

ゲストOSを快適に実行できる十分なメモリーが必要です。ホストOSとしては1GB程度は必要になるでしょう。


4.6 ゲストOSの動的なメモリー使用はサポートされますか?

はい。もし-m 6144と設定した場合、ゲストは必要に応じて最大6GBのメモリーを使います。(ただし、プラットフォームの制限があり、32ビットのゲストは、PAEを使用しないと4GB以上のメモリーを使えません。)


4.7 どのようなゲストOSを使用できますか?


4.8 KVMはダウンタイムなしで仮想マシンをあるホストから別のホストに移動させるライブマイグレーション機能をサポートしていますか?

はい。
Red Hat Enterrise Linux 5.4のライブマイグレーションは以下を参考にしてください。
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/chap-Virtualization-KVM_live_migration.html


4.9 KVMでは64ビットホスト上で32ビットゲストの実行できますか?PAEとの関連は?

KVMは64ビットホスト上で32ビットゲストの実行をサポートし、PAEを使うゲストとPAEと使わないゲスト、ホストの組み合わせを使えます。


4.10 USBデバイスをゲストOSで使用できますか?

はい。USBデバイスを直接ゲストOSに割り当てて使用することが可能です。


4.11 KVMはSMPのホストをサポートしますか?

はい。


4.12 KVMはSMPのゲストをサポートしますか?

はい。


4.13 KVMという名前は登録商標ですか?

いいえ。