web-dev-qa-db-ja.com

Xen PV、Xen KVMとHVMの違いは?

プロバイダーはXenでオーバーセルできないため、通常、XenはOpenVZよりも優れています。ただし、Xen PVXen KVM、およびHVMの違いは何ですか(このプロバイダーの specs を使用していましたか?目的と理由に適したものはどれですか) ?


編集:

ウェブサイトをホストするだけのエンドユーザーにとって、どちらが良いですか?効率性やその他の観点から、一方が他方よりも優れている点はありますか?

53
JP19

Xenがサポートする仮想化タイプ

Xenは、2種類のゲストの実行をサポートしています。 XenゲストはしばしばdomU(非特権ドメイン)と呼ばれます。両方のゲストタイプ(PV、HVM)を単一のXenシステムで同時に使用できます。

Xen準仮想化(PV)

準仮想化は、Xenによって導入された効率的で軽量な仮想化手法であり、後に他の仮想化ソリューションでも採用されました。準仮想化では、ホストCPUからの仮想化拡張機能は必要ありません。ただし、準仮想化ゲストには、Xenでネイティブに実行するように移植された特別なカーネルが必要です。そのため、ゲストはハイパーバイザーを認識し、エミュレーションまたは仮想エミュレートハードウェアなしで効率的に実行できます。 Xen PVゲストカーネルは、Linux、NetBSD、FreeBSD、OpenSolaris、Novell Netwareオペレーティングシステム用に存在します。

PVゲストには、仮想エミュレートされたハードウェアの種類はありませんが、ゲストpvfb(準仮想フレームバッファー)を使用してグラフィカルコンソールを使用できます。 PVゲストのグラフィカルコンソールは、VNCクライアントまたはRedhatのvirt-viewerを使用して表示できます。各ゲストのPVFBのdom0に個別のVNCサーバーがあります。

Linux 2.6.24以降のアップストリームkernel.org Linuxカーネルには、Linux pvopsフレームワークに基づくXen PVゲスト(domU)サポートが含まれているため、すべてのアップストリームLinuxカーネルは、追加のパッチや変更なしでXen PVゲストカーネルとして自動的に使用できます。

Linux pvops Xenサポートの詳細については、XenParavirtOps wikiページを参照してください。

Xen完全仮想化(HVM)

完全に仮想化された別名HVM(ハードウェア仮想マシン)ゲストには、ホストCPU(Intel VT、AMD-V)からのCPU仮想化拡張機能が必要です。 Xenは、Qemuの修正バージョンを使用して、BIOSを含む完全なPCハードウェアをエミュレートしますIDEディスクコントローラー、VGAグラフィックアダプター、USBコントローラー、ネットワークアダプターなど、HVMゲスト用。CPU仮想化拡張機能を使用してパフォーマンスを向上完全仮想化ゲストは特別なカーネルを必要としないため、たとえばWindowsオペレーティングシステムをXen HVMゲストとして使用できます。完全仮想化ゲストは通常​​、必要なエミュレーションのため、準仮想化ゲストよりも低速です。

完全に仮想化されたHVMゲストは、パフォーマンスを向上させるために、特別な準仮想デバイスドライバーを使用して、ディスクおよびネットワークIOのエミュレーションをバイパスできます。 Xen Windows HVMゲストは、オープンソースのGPLPVドライバーを使用できます。 Linux HVMゲスト用のXen PV-on-HVMドライバーの詳細については、XenLinuxPVonHVMdrivers wikiページを参照してください。

これは http://wiki.xenproject.org/wiki/XenOverview からのものです

KVMはまったくXenではなく、別のテクノロジーです。ここでKVMはLinuxネイティブカーネルモジュールであり、Xenのような追加のカーネルではありません。これによりKVMより良い設計ここでの欠点は、KVMがXenよりも新しいため、一部の機能が不足している可能性があることです。

48
dyasny

Xenは、メタル(PC /サーバー)で実行され、ドメインと呼ばれる仮想マシンをホストするハイパーバイザーです。

Xen PVドメインは準仮想化ドメインです。つまり、オペレーティングシステム(通常、ここではlinuxと呼んでいます)がXenで実行するように変更されており、ハードウェアを実際にエミュレートする必要はありません。このすべきは、パフォーマンスの観点から、最も効率的な方法です。

Xen HVMドメインはハードウェアエミュレートドメインです。これは、オペレーティングシステム(Linux、Windowsなど)がまったく変更されておらず、ハードウェアがエミュレートされていることを意味します。これはかなり遅いので、通常、重要なハードウェア(通常はディスクとネットワーク)のゲストOSにPVドライバーをインストールするので、ゲストは全体として完全に仮想化されますが、パフォーマンスが最も重要な部分を実行しますハードウェアは準仮想化されて実行されます。最近のLinuxシステムには、カーネル内のディスクとネットワークの両方にpvドライバーがあり、Windows用のさまざまなPVドライバーも存在します。近年のHVMのすべての開発により、通常、標準的なワークロードのHVMとPVのパフォーマンスにはほとんど違いがありません。

KVMはXenではなく、Linuxカーネル内に構築された別の仮想化プラットフォームです。 ゲストの観点からは、Xen HVMに似ています。ゲストは完全に仮想化されて実行され、特定のドライバーが準仮想化されて実行されます(ここでも、ディスクとネットワーク)。

Xen HVMとLinuxの両方KVMハードウェア支援の仮想化サポートが必要です(Intel VT-x、AMD AMD-V)。一方、Xen PVはPVサポートなしではオペレーティングシステムを実行できません。 Xen PVでWindowsを実行しないでください)。

Xen HVMとLinuxの両方KVMは、qemu仮想化ソフトウェアの一部を使用して、ゲストシステムでPVドライバーを使用していないデバイスの実際のハードウェアをエミュレートします。

Xen(PVとHVMの両方)は、実行中のゲストを1つの物理サーバーから別の物理サーバーにライブマイグレーションできます。KVMも可能かどうかはわかりません。

XenとKVM=はメモリをオーバーコミットできないため、通常は「真のRAM」を取得できますが、VMwareなどの他のプラットフォームではゲストRAMの一部をディスクにスワップできます。

違いはありますが、通常は特定のインストールに適用され、他の人に販売する汎用仮想プライベートサーバーには適用されません。たとえば、最近のXenハイパーバイザーは、ゲストがサポートしている場合(linuxカーネル> = 3.何か)にメモリ使用率とゲストのパフォーマンスを向上させる可能性がある超越メモリをサポートしています。

これらのテクノロジーはすべて、正しく実装されていれば優れたエクスペリエンスを提供し、ユーザーの視点から見て大きな違いはありません。もちろん、問題が発生する可能性のある方法は1,000通りありますが、特定の仮想化ソリューションとは関係ありません(つまり、ゲストが低速のディスクに格納され、パフォーマンスを低下させる可能性があります)。

32
Luke404