
同じハードウェアでは、Xen と KVM のどちらが高速ですか?
最高のパフォーマンスを発揮する仮想化テクノロジーを採用しようとしています。
この件に関して私が見つけたベンチマークがいくつかあります: http://virt.kernelnewbies.org/XenVsKVM
彼らは、パフォーマンスに大きな違いがある KVM を勝者として示していますが、これは、KVM がタイプ 2 ハイパーバイザーであり、定義上、タイプ 1 ハイパーバイザー (Xen など) よりも遅くなるはずであるという考えに反しています。少なくとも、Web 上の記事ではそう書かれています。
この件に関して何かアイデアはありますか?
答え1
このベンチマークは、ネイティブ OS の速度を単一のゲスト OS と比較しているだけです。これは、実際のテストとは言えません。あまり重視しないと思います。KVM 陣営の大半は、Xen ではカーネルとユーザー空間の間で割り込みとホップが多すぎると主張していますが、私が見た実際のベンチマークのほとんどでは、それは実際には認識されておらず、Xen は KVM よりも少し速いようです。
申し訳ありませんが、それを裏付けるリンクは手元にありません。しかし、KVM は急速に改善しており、機能セットと安定性の面で急速に追いついているようです。
どちらのアプローチが優れているかという点については、Xen 陣営は、仮想化を安全かつ高速にするには、真の軽量ハイパーバイザーが必要であると主張します。また、一部のベンダーではファームウェアで Xen がサポートされ始めており、これも好ましいことです。KVM 陣営は、KVM の方がシンプルで、Linux は優れたハイパーバイザーになることができると主張します。
結局、どちらの方向が最終的に勝利するかはまだ不明です。Xen は確かに有利なスタートを切っており、すでにかなりの市場シェアを獲得しています。しかし、まだメインライン カーネルには組み込まれていません。近いうちに状況が変わることを期待していますし、過去数か月間、カーネル リストではこの件について多くの議論が交わされています。Red Hat は現在 KVM 陣営に属しており、仮想化プラットフォームの選択肢としてこれを推進しています。まもなくリリースされる Red Hat Linux 5.4 が、KVM を組み込む最初のバージョンになります。そのため、仮想化プラットフォームをまだ展開またはコミットしていないショップが注目する可能性が高いでしょう。
ツールに関しては、Xen と KVM はどちらも libvirt と QEMU およびそれらに関連するツールを使用します。そのため、virt-manager などの多くの同じツールを共有します。
職場では Xen を使用していますが、うまく機能しています。しかし、Xen では解決できなかった USB 転送と PCI パススルーの問題があったため、KVM を検討しています。KVM の方が優れているかどうかはわかりませんが、試してみればわかると思います。USB の問題を調べていて気づいたことの 1 つは、KVM のドキュメントは Xen のドキュメントよりも評価しやすく整理されていることです。ただし、完璧な仮想化プラットフォームは存在しないため、自分にとって何が理にかなっているかを判断する必要があります。
答え2
私個人としては、使いやすさ、サポート、信頼性、使用している仮想マシンへの適合性に基づいて仮想化を選択します。
Xen ネットワークのデータ転送速度は実際のハードウェアと同じくらい優れているようですが、Xen と vLans、複数のイーサネット カードでも苦労しました。KVM の経験はありませんが、VMware ESX(i) も検討することをお勧めします。
答え3
次のプレゼンテーションでは、このテーマに関する非常に興味深い情報が見つかります。Xen と KVM の定量的比較
これを行った人は Xen の専門家ですが、比較はかなり公平であるように思われます。
答え4
FWIW: 答えは、現在および将来のニーズによって完全に異なります。
はい、役に立たない答えであることは承知しています。残念ながら、それは事実です。仮想化の選択は、その後のほとんどすべての作業に影響するため、自分自身にいくつかの質問をする必要があります。
(1)ネイティブパフォーマンスの97%とネイティブパフォーマンスの96%(根拠のない数字)の違いは、あなたにとって本当に重要ですか?
(1a) 一方が HD アクセスで優れており (これは、非常に優れたデータベースを使用しているか、追加の RAM を購入する余裕がないかのどちらかを意味します)、もう一方がネットワークで優れている場合、どちらがより重要ですか?
(2)いずれかのソリューションに付属するツールを自信を持って使用できますか?
(3)一方が最近のLinuxカーネルに(ある意味)ネイティブであり、もう一方がそうではないという事実は、違いを生むでしょうか?
(3a) 仮想化環境で別の OS を実行する必要が生じたことがあるか、または現在または過去に生じたことがありますか? Windows である必要はありません。FreeBSD でも、Haiku でも、何でもかまいません。(ここではおそらく Xen が勝りますが、確認することをお勧めします。)
全体像を見ると、KVM は Solaris ゾーンに対する Linux の回答であると私は考えています (Solaris ゾーンのほうが望ましいですが、類似点も見られます)。Xen は複数の OS をサポートする成熟したハイパーバイザー テクノロジであると私は考えていますが、複数の OS が必要ない場合、それはそれほど重要ではありません。
正直に言うと、どちらを選んでも間違いはありません (上記の注意事項を考慮)。私はケンブリッジ大学に通っていたので Xen を好みますが、RH で働いていたらおそらく KVM を好むでしょう。