web-dev-qa-db-ja.com

Xen、QEMU、KVMの違いは何ですか?

QEMUがXenで使用されていることを知っています。KVMはQEMUのフォークです。

したがって、KVMには、XenがQEMUに追加するものが含まれていますか?名前は何ですか?

ありがとう

51
Xorax

QEMUは強力なエミュレータです。つまり、さまざまな種類のプロセッサをエミュレートできます。

Xenは [〜#〜] hvm [〜#〜] ゲスト、より具体的にはHVMゲストのデバイスモデルにQEMUを使用します。 Xen固有のQEMUはqemu-dmと呼ばれます(QEMUデバイスモデルの略)

QEMUはエミュレーションを使用します。 KVMは、仮想化にプロセッサー拡張(HVM)を使用します。

XenとKVM merge の両方のアップストリームQEMUに対するさまざまな機能、アップストリームQEMUを直接使用してXenデバイスモデルエミュレーションなどを実行できます。

Xenは、ハードウェア仮想化を必要としない 準仮想化 ゲストを持つという点でユニークです。

XenとKVMの両方には、HVMゲストの上で実行できる準仮想化デバイスドライバーがあります。

54
Todd Deshane

上記の答えは詳細で、技術的です。私は簡単な素人の言葉でそれを入れてみてください。

Qemuは、KVMアクセラレータ(ホストCPUでゲスト命令を直接実行できるLinuxカーネルモジュール)の有無にかかわらず動作するエミュレーターです。 Qemu + TCGの遅い選択肢とは異なります。

Xenは異なるモード(仮想化タイプ)を持つベアメタルハイパーバイザーです。ところで、ベアメタルは誤解を招く用語です。 Type-II/hostedまたはType-I/bare-metalのすべてのハイパーバイザーには、基盤となるOSが必要です。したがって、ベアメタルには、ハイパーバイザーが使用するレイヤーのようなベアミニマムオペレーティングシステムの非常に薄いレイヤーもあります。

Xen PVまたは準仮想化-ハードウェアエミュレーションは不要です。ゲストカーネルは、ゲストが基盤のXenハイパーバイザーで検出/実行できるように変更されます。

Xen HVMまたは完全仮想化-ハードウェアエミュレーションが必要です。仮想化Intel-VTなどをサポートするCPUでのみ実現されます。変更されたQemuはハードウェアエミュレーション(ディスク、ネットワーク、USBコントローラーなど)に使用され、ゲストカーネルは変更されません。

一般に、エミュレートされた仮想化(フル)は、修正されたカーネル仮想化(パラ)よりも低速です。ゲストカーネルに専用ドライバー(PVドライバー)をインストールすることにより、完全に仮想化されたゲストのパフォーマンスを向上させることができます。

40
pumpkin_cat