2009-03-07 9 views
2

私は複数のOSをホストするために仮想マシンを使用していますが、私はそれらの多くがある無料のソリューションを検討しています。私は、ハイパーバイザーとは何か、なぜ「標準」の仮想マシンと異なるか、それとも優れているのか、混乱しています。私が標準を意味するとき、私はベンチマーク仮想マシンVMWare Server 2.0を使うつもりです。Hypervisor VMのメリットは何ですか?

最大3台のVMを実行できる4GBのRAMを搭載したデュアルコアシステムの場合。どちらが最善の選択ですか?ハイパーバイザーまたは非ハイパーバイザーとはなぜですか?私は既にWikipediaの記事を読んだことがありますが、技術的な詳細は私の頭の中にあります。私はこれらの異なるVMの味が私にとって何をすることができるのかに関する基本的な答えが必要です。

私の主な質問は、複数の環境でどのようにテストを行うかに関するものです。私はOSesの分離について懸念しているので、複数のOSで同時にアプリケーションをテストすることができます。また、実際の機械がどのように動作するかについて、どのフレーバーでより近い経験が得られますか?

(ハイパーバイザー)

  • Xenの
  • のHyper-V

(非ハイパーバイザー)

  • のVirtualBox:

    私は次のことを検討しています

  • のVMware Server 2.0
  • 仮想PC 2007

*私がリストアップしましたVMの分類が正しくない可能性があります。

答えて

5

主な違いは、Hyper-Vはオペレーティングシステム上ではなく、ハイパーバイザと呼ばれる薄いレイヤー上で実行されるシステムと共に動作することです。 Hypervisorは、複数のオペレーティングシステムを同時にホストコンピュータ上で実行できるようにするコンピュータハードウェアプラットフォーム仮想化ソフトウェアです。

他の多くの仮想化ソリューションでは、エミュレーションなどの他の技術を使用しています。詳細はWikipediaを参照してください。

+0

これは、ハイパーバイザーが通常のVMと同じ程度の分離度を持たないことを意味しますか?また、これは、VMからの欠陥が実際のOSに流出する可能性があることを意味しますか?もしそうなら、ハイパーバイザーは私がテスト環境のために望むものではないかもしれません。 –

+0

@ジェレミー、それは全く反対を意味します。 –

+0

あなたはおそらくKVM(カーネルベースの仮想マシン)も含めるべきです。これは基本的に、標準のLinuxカーネルコアに組み込まれたハイパーバイザーです。これは2.6.0以降のカーネルに含まれています。詳細はhttp://www.linux-kvm.org/page/Main_Pageを参照してください。 –

5

免責事項以下はすべて、私の意見です(広く)。

仮想マシンモニター(ハイパーバイザー)を非常に小さなマイクロカーネルと見なすと便利です。イベントチャネルの監視やゲストドメインへの特定のリソースへのアクセスを許可するなど、基盤となるハードウェアにアクセスする以外にも、ジョブはほとんどありません。何らかのスケジューラを実施します。

すべてのゲストマシンは完全に他のゲストマシンを認識しませんが、分離は真です。ご宿泊のお客様は、特別ゲスト(またはお互い)とメモリを共有しません。したがって、この例では、VMMに関しては、各ゲスト(特権レベルのゲストさえも)をプロセスと考えることができます。一般的に、最初のゲストは余分な特権を得て、残りのゲストを管理することができます。これは、バーチャルマシンが生産され、世界に公開されるときに使用する理想的なテクノロジです。

さらに、一部のゲストは、ハイパーバイザを認識してパフォーマンスを大幅に向上させるためにパッチを適用できます。

一方、私たちはVMWareやQEMUのように、ベアメタルと十分なメモリにアクセスできるようにホストカーネルに依存しています。彼らは、すべてのゲストが完全なマシンを提示する必要があると仮定します。これらの仮想マシンを提示するプロセスの限界は、仮想マシンの限界になります。デバイスマッパーのQoSが一般的に実装されていないため、多かれ少なかれ私は言います。これは、他のOSや他のアーキテクチャでコードを試すのに理想的なソリューションです。多くの人々が、QEMU、Simics、または時にはVMWare(製品によって異なる)を「シミュレータ」と呼ぶことになります。

私はQEMU、Simics、またはVirtualBoxを使用して、クロスコンパイルしたものをテストするためにXenを使用します。

新しいコードをさまざまなオペレーティングシステムやアーキテクチャでテスト/ローリングしている場合は、#2をお勧めします。イントロスペクションが必要な場合(ゲストで悪いプログラムが実行されてゲストメモリが変更されるのを監視するなど)、回答する前にもっと説明が必要です。

関連する問題