web-dev-qa-db-ja.com

Hyper-VとWindowsVirtual PC

Windows 8 Consumer Previewを試すときに、Hyper-Vをインストールしました。

それはちょうど別のWindowsVirtualPCのように見えました。

誰かがそれがどのように違うのか説明できますか?パフォーマンスに違いはありますか?私が他の代わりに1つを選ぶ理由は何ですか?

7
user541686

誰かがそれがどのように違うのか説明できますか?パフォーマンスに違いはありますか?私が他の代わりに1つを選ぶ理由は何ですか?

あなたがすでに説明した他の答えとして、2つのプロジェクトの間にはいくつかのアーキテクチャ上の違いがあります。

大まかに言えば、Intel VTハイパーバイザーが関係している場合、ハイパーバイザーをアクティブ化するには、(アセンブリーで)特別な一連の命令を実行し、最終的にVMXONになります。これにより、ハイパーバイザーモードが有効になります。

その作業の一部には、仮想マシンを 拡張ページテーブル またはAMDの同等の観点から定義することが含まれます。これは、仮想マシンのメモリ領域全体に対して行うことを除けば、ページテーブル(メモリがどこにマップされるか)を設定する通常のタスクと同じです。以前のVMテクノロジーがトラップされたばかり この目的のためのVM出口 これは本質的に派手なハードウェア割り込みのようなものです。

これはアーキテクチャをどのように参照していますか?ハイパーバイザーを構築するには、次の2つの選択肢があります。

  1. 仮想マシンモニターをセットアップし、ゲストオペレーティングシステムを待機するスタンドアロンハイパーバイザーを構築します。通常、VMを管理するのに十分な独自のオペレーティングシステムが含まれているか、特権ゲストをサポートします。たとえば、Xenハイパーバイザーには、ハイパーバイザーを管理する機能を持つ「Dom0」「ゲスト」が含まれています。

  2. ハイパーバイザーを既存のカーネルの一部として、たとえばカーネルモジュールとして構築します。コードは、オペレーティングシステムの存続期間中の任意の時点で(十分な特権を前提として)Intel VTに仮想マシンモニターとしてインストールし、削除することもできます。そのため、ハイパーバイザーコードは、必要に応じてメモリ内に必要な必要なスペースを設定するだけです。

実際には、エンドユーザーにとっての違いは、ハイパーバイザーが最初の種類である場合、再起動せずにハイパーバイザーをアンロードできないことです。これは、それ自体がオペレーティングシステムのように機能するためです。 Hyper-Vは次のように動作します。たとえば、Hyper-Vがインストールされている場合は、VirtualBoxをインストールできません。これは、両方が仮想マシンのモニタースペースを共有できないためです(Hyper-Vには既にインストールされているため)。ハイパーバイザーをアンロードするには、再起動する必要があります。

簡単に言うと、Hyper-Vがインストールされている場合、VMが実行されていなくても、他の仮想化製品を使用することはできません。これはVirtualPCには当てはまりません。

さて、パフォーマンス。 Intel VTのようなシステムでは、OSとハイパーバイザーのどちらを最初にロードしても、パフォーマンスの面でほとんど違いはありません。これはCPUにバインドされた領域にすぎず、CPUハードウェア支援仮想化をすでに使用している場合は、同じくらい高速です。とにかく得ることができるように。

パフォーマンス面では、仮想化の違いは、 準仮想化[〜#〜] iommu [〜#〜] / DMA re-マッピング 。つまり、OSのメモリ/ CPUの編成順序は、ハードディスクやグラフィックカードなどを効率的に仮想化できるかどうかほど大きな違いはありません。

このブログ投稿 から、Hyper-Vは過去に消費者タイプの仮想化の問題(グラフィックス、サウンドなど)で問題を抱えていたようです。私はこれらを必要とするHyper-Vを実行していません。それらがまだ問題であるかどうかについてはコメントできませんが、調査する価値があるかもしれません。

6
user26996

Hyper Vは、Windows VirtualPCと言うよりも優れたパフォーマンスを提供します

http://en.wikipedia.org/wiki/Hypervisor

Robert P. Goldbergは、次の2種類のハイパーバイザーを分類しています。[5]

タイプ1(またはネイティブのベアメタル)ハイパーバイザーは、ホストのハードウェア上で直接実行され、ハードウェアを制御し、ゲストオペレーティングシステムを管理します。したがって、ゲストオペレーティングシステムは、ハイパーバイザーの上の別のレベルで実行されます。

このモデルは、仮想マシンアーキテクチャの古典的な実装を表しています。元のハイパーバイザーは、1960年代にIBMで開発されたテストツール、SIMMON、およびCP/CMSでした。 CP/CMSは、IBMのz/VMの祖先でした。これに相当する最新のものは、Citrix XenServer、VMware ESX/ESXi、およびMicrosoftHyper-Vハイパーバイザーです。

タイプ2(またはホスト型)ハイパーバイザーは、従来のオペレーティングシステム環境内で実行されます。ハイパーバイザーレイヤーを別個の第2ソフトウェアレベルとして使用すると、ゲストオペレーティングシステムはハードウェアの上の第3レベルで実行されます。 KVM、BHyVe、およびVirtualBoxは、タイプ2ハイパーバイザーの例です。

ウィキペディアはそれを明確に説明しています

1
Akash