
私はどのような種類の仮想化が存在するかを理解しようとしており、この作業を支援するために、Dijiang Huang と Huijun Wu による「Mobile Cloud Computing」という本を見つけました。
以下に掲載されている文章は、Google ブックスでもご覧いただけます。https://books.google.com/books?id=dupGDgAAQBAJ。
セクション 2.2.3、表 2.2、ページ 42 より:
HAL(フル)
- 説明:ハイパーバイザーは、完全な VM (ホストと同じコンピューティング アーキテクチャ) を提供し、変更されていないゲストを分離して実行できるようにします。
- 利点:複数のベンダーの異なる OS の異なるバージョンを柔軟に実行できます。
- デメリット:ゲスト OS は仮想化されていることを認識しないため、特に I/O を集中的に使用するアプリケーションの場合、一般的なハードウェアでパフォーマンスにかなりの影響が出る可能性があります。
HAL (並列)
- 説明:ハイパーバイザーは、各ゲストに完全かつ特殊な VM (ホストと同じコンピューティング アーキテクチャ) を提供し、変更されたゲストが分離して実行できるようにします。
- 利点:軽量かつ高速で、ネイティブに近い速度。0.5~3.0% のオーバーヘッド範囲で動作することが実証されています。OS がハイパーバイザーと連携できるようにし、IO とリソースのスケジュールを改善し、完全な仮想化をサポートしていないアーキテクチャを仮想化できるようにします。
- デメリット:ゲスト OS を移植する際に、機密命令の代わりにハイパーコールを使用する必要があります。並列仮想化の主な制限は、複数の同一の実行環境をサポートするホスト プログラムである VM モニター (VMM) 上で実行するようにゲスト OS を特別に調整する必要があることです。これは、並列仮想化拡張機能をまだ実装していない従来のクローズド ソース OS に特に影響します。
ここで、「並列仮想化」は「準仮想化」と同義語のように見えます。(この本を読むまで、「並列仮想化」という用語は聞いたことがありませんでした。一方、「準仮想化」という用語はインターネットではよく知られています。)
しかし、2.2.2 節の 39 ページでは、この本は前の文章と矛盾しているようです。
セクション 2.2.3 で紹介する 3 番目の仮想化分類では、最も人気のある 2 つの HAL ベースの仮想化ソリューション、つまり並列仮想化 (またはベアメタル、またはタイプ 1 仮想化) とホストベースの仮想化 (またはタイプ 2 仮想化) について詳しく説明します。
つまり、要約すると次のようになります。
- セクション 2.2.3: 並列仮想化は準仮想化と同じです。
- セクション 2.2.2: 並列仮想化は、ベアメタル (別名タイプ 1) 仮想化と同じです。
- しかし、私が知る限り、準仮想化とベアメタル (別名タイプ 1) 仮想化は 2 つの異なるものであり、同じものではありません。
質問:
- 2番目の文章が1番目の文章と矛盾しているというのは本当ですか?
- 準仮想化とベアメタル (別名タイプ 1) 仮想化は異なるものであるというのは本当ですか?
- 42ページの文章は正しく、39ページの文章はない正しいですか?39ページの文章をどのように説明しますか?
答え1
準仮想化とベアメタル (別名タイプ 1) 仮想化は異なるものであるというのは本当ですか?
ゲストが抽象化レイヤーを最適化することは、ハイパーバイザーが汎用オペレーティング システムの上にある場合とは異なる次元です。
QEMU はエミュレーターです。KVM を追加すると、ハードウェア アクセラレーションによってオーバーヘッドが最小限に抑えられ、実質的にタイプ 1 になります。さらに、KVM には準仮想化ゲスト ドライバーがあります。ただし、QEMU と KVM はどちらも汎用オペレーティング システム上で実行されるため、仮想ホスト上で任意のアプリケーションを実行できます。
ハイパーVWindows を実行している特権ルート パーティションを介して直接ハードウェア アクセスを実行します。タイプ 2 のようです。ただし、ゲストとハードウェア間のレイヤーは最小限であるため、Hyper-V パーティションの外部でユーザー プロセスを実行することはできません。
抽象化レイヤーの図を描くと役立つかもしれません。実装は、タイプ 1 とタイプ 2 が示唆するように、2 つのカテゴリにきちんと分類されるわけではありません。このようなカテゴリは、ベアメタルと比較したオーバーヘッドや、できればシンプルなハイパーバイザーのセキュリティと保守性などの実用的な考慮事項を必ずしも測定するものではありません。
準仮想化という用語が最初に使われたのは、ワシントン大学のデナリ論文少なくとも、Xen ペーパーDenali がこの用語を作ったとしています。この用語が「parallel」に由来するという証拠は見つかりませんでした。おそらく、接頭辞 para- の「隣」や「補助」の意味を想起させるためだったのでしょう。