web-dev-qa-db-ja.com

Full、Para、およびHardware Assisted Virtualizationの違いは何ですか?

私は仮想化のトピックを調べていますが、この質問をするのは少しばかげているようですが、基本概念を理解するのは完全にうんざりしています。ウィキペディアはいくつかの関連情報を提供していますが、基本概念を理解するには十分ではありません。コンセプトは2〜3行ですが、ネットでも本でも見つけることができません。

誰かがこれらの3つのタイプの基本的な概念を教えてくれれば嬉しいです。私は仮想化をよく知っており、よく理解していますが、これらの3つのタイプは...

61
Muhammad Faraz
  • Paravirtualizationは、ゲストオペレーティングシステム(仮想化されるもの)がゲストであることを認識し、それに応じてハードウェアコマンドを発行する代わりに、ホストオペレーティングシステムに直接コマンドを発行するドライバー。これには、メモリとスレッドの管理も含まれます。通常は、プロセッサで使用できない特権命令が必要です。

  • 完全仮想化は、ゲストオペレーティングシステムが仮想化環境にあることを認識しないため、ハードウェアが仮想化される仮想化ですゲストが実際のハードウェアであると考えるものにコマンドを発行できるように、ホストのオペレーティングシステムによって、実際にはホストによって作成された単なるハードウェアデバイスです。

  • ハードウェア支援仮想化は、マイクロプロセッサアーキテクチャにハードウェアの仮想化を支援する特別な指示がある完全仮想化の一種です。これらの命令により、ゲストがホストに影響を与えることなくプロセッサ上で特権命令を直接実行できるように、仮想コンテキストを設定できる場合があります。このような機能セットは、しばしばHypervisorと呼ばれます。上記の指示が存在しない場合でも、完全な仮想化は可能ですが、Dynamic Recompilationなどのソフトウェア技術を使用して実行する必要があります。ホスト上で非特権の方法で実行できるようにするゲストの特権命令。

  • また、ハイブリッド仮想化と呼ばれるパラ仮想化と完全仮想化の組み合わせがあり、ゲストオペレーティングシステムの一部は特定のハードウェアドライバーの準仮想化を使用し、ホストは他の機能の完全仮想化。これにより、ゲストを完全に準仮想化する必要なく、ゲストのパフォーマンスが向上することがよくあります。この例:ゲストは、カーネルの特権命令には完全仮想化を使用しますが、ゲストの特別なドライバーを使用するIO要求の準仮想化を使用します。この方法では、ゲストOSを完全に準仮想化する必要はありません。これは使用できない場合もありますが、ゲスト用の特別なドライバーを実装することで準仮想化機能を利用できるためです。

131
Dougvj

ハードウェア支援仮想化の場合、仮想化は設計されています。命令セットは、ホストをパーティション分割するための命令を提供します。例としてIntelのVT-xテクノロジーを参照してください。そのため、ハイパーバイザーは、オペレーティングシステムを使用せずにハードウェアと直接連携し、アクセスして完全な仮想化を実現します。

0
user3679416