web-dev-qa-db-ja.com

Hyper-Vとは何ですか

VirtualBox仮想マシンにUbuntuをインストールしたかっただけです。それに応じて、VirtualBoxは私にエラーを出しました:

VT-xが有効になっていません

Windows8.1でHyper-Vが有効になっていることが原因である可能性があることをグーグルで調べました。

私はそれを無効にしました、そしてそれは私の問題を解決しました。私がHyper-Vについて読み始めたよりも、それは仮想化のためのMicrosoftの非常に素晴らしいツールであることがわかりました。

仮想化ツールが仮想化を無効にするのは少し奇妙に思えます。

  1. そのHyper-Vは本当に何のためにあるのでしょうか?
  2. それを無効にするとどうなりますか?
  3. なぜVirtualBoxで動作しなかったのですか?
3
Andrzej Gis

仮想化ツールが仮想化を無効にするのは少し奇妙に思えます。

これを理解するには、仮想化が使用されているときにシステムで何が起こっているかを知る必要があります。

仮想化を有効にしていない場合、システムは次のように動作します。

[ハードウェア]-> [オペレーティングシステム]-> [アプリケーション]-> [あなた]

Hyper-Vを使用する場合、そこに追加のレイヤーがあります。

[ハードウェア]-> [仮想化ハイパーバイザー]-> [おそらくいくつかのOSの1つ]-> [そのOS下のアプリケーション]-> [あなた]

Hyper-Vを有効にすると、違いに気付かなくても、そこにハイパーバイザーがあります。さて、 ハイパーバイザーがハードウェアの真上にあることに注意してください Hyper-Vを使用します。 VMWareサーバー製品もこのように動作します。

したがって、Hyper-Vが有効になっていると、現時点で1つの「ゲスト」OS(Hyper-V以前のOS)しか実行していない場合でも、ハイパーバイザーに「参加」しています。

x86ハードウェアは、「ネスト」ハイパーバイザーをサポートしていません。それを設定するVMXON命令は、ハードウェア仮想化が有効になっている場合に「VM終了」を引き起こします。したがって、ハイパーバイザーがアクティブな場合、そのハイパーバイザーのOSが仮想化をセットアップしようとすると、通常、ハイパーバイザーはゲストOSに仮想化がサポートされていないことを通知します。

ゲストOSが仮想化機能を使用できるようにしたい場合は、ハイパーバイザーがハードウェア仮想化を「エミュレート」することは可能ですが、ご覧のとおり、Hyper-Vはこれを行わないことを選択しました(とにかく、実行するのは複雑です)。

ここで、VMWarePlayerまたはVirtualPCをこのような方法で使用している場合:

[ハードウェア]-> [オペレーティングシステム]-> [VMアプリケーションでOSを実行している]-> [あなた]

VMWareプレーヤーは、それ自体の複数のインスタンスをまっすぐに保つことができるため(多数のドライバーをインストールします)、問題なく複数のVMWareプレーヤーを実行できます。ただし、VMWareプレーヤーとVirtual PCを実行しようとしたかどうかはわかりませんが、おそらく機能しません。

10
LawrenceC

Hyper-Vは、Microsoftバージョンのハイパーバイザー(VirtualBoxなど)です。 VT-xは、x86プラットフォームでの仮想化のためのインテルのテクノロジーを表しています。一部のマザーボードでは、これはBIOS設定で有効にできます。 BIOSでこれを有効にしないと、仮想環境は基盤となるハードウェアを介して高速化されません。

Hyper-Vの無効化に関する質問に答えるには、VirtualBoxにVT-xへのアクセスを許可します。このフォーラムを参照してください http://social.technet.Microsoft.com/Forums/windows/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum = w8itprogeneral

Hyper-VがWindows8 Proにインストールされている場合、ハイパーバイザーは常にホストOSの下で実行されており、安定性のために一度にVTハードウェアを制御できるのは1つだけです。ハイパーバイザーは、VTハードウェアへの他のすべての呼び出しをブロックします。

enter image description here

ここにMSTechnetからのいくつかのポイントがあります。個人的には、VirtualBoxの構成レイアウトが好きなので、Hyper-Vは使用しません。ヘッドレスVMが必要な場合は、Proxmoxクラスターにインスタンスをスローします。

Hyper-Vは、ハードウェア上で直接実行されるヘッドレス仮想化です。VirtualboxにはOSが必要であり、デスクトップ上で実行される仮想化アプリケーションです。

VirtualBoxは、特にサウンド、USB、およびサポートされている非常に幅広いOSが必要な場合に、VMを直接操作するために使用するものです。

Hyper-Vは、追加のデスクトップハードウェア(USBなど)をあまり必要としないサーバーをホストするように設計されています。多くのシナリオで、Hyper-VはVirtualBoxよりも高速である必要があります。サーバー製品に期待されるクラスタリング、NICチーミング、ライブマイグレーションなど)などが得られます。

4
kobaltz

Hyper-Vは、OSを覆うためにVT-xを実際にブロックします。しかし、私を助けた小さなことは、説明されているように、必要に応じてHyper-Vのオンとオフを切り替えることでした(インストール/アンインストールではなく、非常に困難です) ここ 次のコマンドの助けを借りて

bcdedit /set hypervisorlaunchtype off

bcdedit /set hypervisorlaunchtype auto start

これで、必要に応じてHeper-VとVirtualBoxを使用できるようになります(一度にではなく、「シングルリブート」ステップで)。

3
Pavel K