QemuとKVMの関係を理解する


17

KVMとQemuの違いは何ですか?私が理解するように、後者は「ユーザーモードエミュレーション」を提供できます。つまり、次のような他のアーキテクチャ用に構築された単一の実行可能ファイルを実行できます。

# file busybox-sparc 
busybox-sparc: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped
# qemu-sparc busybox-sparc ls
Packages_arm     Packages_i386    arm              busybox-armv6l   busybox-i686     busybox-powerpc  busybox-sparc    busybox-x86_64   i386
# 

..および「コンピューターエミュレーション」は、動的なバイナリ変換が実行されるだけでなく、仮想マシン全体がエミュレートされることを意味します(ビデオカード、サウンドカード、ネットワークカード、光学デバイスなど)。例えば:

# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d

私が理解したように、Qemuはハードウェア仮想化(x86アーキテクチャ上のIntel VT-xまたはAMD-Vソリューションなど)を活用する方法を知りません。これはKVMが役立つ場合です。ただし、KVMは、特定のハードウェアアーキテクチャ上のハードウェア支援仮想化へのエミュレーションプログラムへのアクセス以外の機能を提供しますか?KVMのみを使用して、全体(CPU、ビデオカード、I / Oデバイスなど)の仮想マシンを作成できますか?はいの場合、この仮想マシンの作成と制御に使用するプログラムはどれですか?


回答:


16

あなたは部分的に正しいです。混乱する可能性があるため、注意してください。KVMは、Linuxカーネルの仮想化テクノロジーの名前です。

KVMは一般に、ハードウェア仮想化のサポートが強化されたQEMUプロジェクトのフォークの名前(より正確な名前はqemu-kvm)としても使用されます。この主張はQEMUプロジェクトによって確認されましたが、QEMUのバージョン1.3の時点でqemu-kvmのすべての機能がマージされました

KVMプロジェクトのダウンロードページでも、その違いがよく説明されています。

留意すべきもう1つの点は、qemu-kvmの利点がqemuの新しいリリースに統合されているため、いつか2つの違いがなくなることを願っています。


それでは、KVM「Linuxカーネルの仮想化技術」とqemu-kvmは2つの異なるものですか?
dtmland

@dtmlandええ、はい。qemu-kvmは、カーネルでKVMを使用するユーザーランドソフトウェアです。
チャッツ

6

KVMは、仮想化固有のCPU拡張機能により、VMのCPU要求を最小限のオーバーヘッドでホストCPUおよびRAMで直接スケジュールできるようにするカーネルモジュールです。QEMUは、エミュレートされたハードウェアの残りを提供します。これは、仮想マシンでさえ、単なるCPUではなく、多くの追加ハードウェアだからです。QEMUはCPUをエミュレートすることもできますが、KVMが行う方法と比較すると、両方の長所を最大限に活用するために非常に遅いため、マージが遅くなります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.