ハイパーバイザは、かなり古い技術です。しかし、仮想化するために非常に重要なものです。最初のハイパーバイザは、IBMが1967年に開発したものです。これは、IBMの CP/CMSオペレーティングシステムのテストツール( SIMMONと名付けられました)として開発されました。
仮想化とは何でしょうか?簡単に言うと、保管、ネットワーク、計算を大量にソフトウェア (もしくは仮想)で処理するための工程です。これは、ハードウェアと一緒に、バーチャルマシンがそれぞれ分割して動きます。一つ一つ独自のオペレーティングシステムがあります。
現在、ここにハイパーバイザが入っています。これで仮想化が可能になります。ここでは、種類の違うハイパーバイザが、それぞれどのように動くか紹介します。では、基本的な質問から始めましょう。
ハイパーバイザとは何か?
定義: ハイパーバイザは、バーチャルマシンを作るためのハードウェア、ソフトウェア、ファームウェアです。そして、効率的にこれらを分配していく役割をしています。それぞれのバーチャルマシンは、独自のシステムをアプリケーションで動きます。
ハイパーバイザが入っているコンピューターをホストマシンと呼びます。そして、バーチャルマシンはゲストマシンと言います。ハイパーバイザは、ハードウェアを使って、ゲストマシンのシステムやアプリケーションを動かす事ができます。
RAMが16 GBのPCとand 500 GBの Linuxシステムを用意してください。 そしてmacOSでアプリケーションを動かしてください。この場合、macOSでバーチャルマシンを動かし、この中でハイパーバイザを使っています。例えば、RAMの4GBを使っていれば、100 GBの容量を使っています。
ゲストマシン側からすると、目に見える環境も仮想環境も違いがありません。バーチャルマシンは、ハイパーバイザで動かされていて、分配されているという事がわかりません。ハードウェアを同時に動かしています。そして、ハードウェアの動きが安定します。
ハイパーバイザが開発されて半世紀たちます。近年クラウドコンピューティングの需要が高まっていて、益々ハイパーバイザは重要になっています。
ハイパーバイザの種類
1970年代半ばから、2種類のハイパーバイザが主流になっています。
Type 1 / Bare-metal / Native Hypervisors
Type-1 hypervisorsは、ホストマシンのハードウェアで直接動きます。ゲストマシンに直接繋がるので、オペレーションシステムを作る必要がありません。これは、ベアメタルハイパーバイザと呼ばれています。
これは、他のタイプ(Type-2)より動きが効率的で、セキュリティが強化されています。なので、大きな団体や企業が、データセンターで利用しています。
たいていのType-1は、手動でゲストマシンのアプリケーションに分配し、一部が自動で動き、管理されます。
SIMMONのような初期のハイパーバイザが、type-1です。
一般的な例: VMware ESXi, Nutanix AHV, Oracle VM Server for x86, Microsoft Hyper-V.
Type 2 / Hosted Hypervisors
他のコンピュータープログラムと同じように、Type-2はオペレーションシステムで動きます。なので、ハードウェアでもソフトウェアでも使います。ゲストのオペレーティングシステムは、ホストのオペレーティングシステムの先にあります。
これらのハイパーバイザは、複数のマシンで使っている間、直接ホストのハードウェアを直接触る事はできません。すでにインストールされているオペレーティングシステムが、ネットワーク、記録、容量を管理します。ここでハイパーバイザが制限しているものを解除し、追加します。
これらは、セットアップや管理が簡単です。常に管理をしている必要がなく、ハードウェアの互換性が幅広いです。多くの開発者が、テストで使っています。
使用例: VMware Workstation, VirtualBox, QEMU, VMware Player, VMware Fusion, Parallels Desktop for Mac.
利点
使いやすい:
ハイパーバイザは、複数のゲストマシン(仮想の) がホストマシンとは別で動かす事ができます。そして、ゲストマシンは、それぞれ別のオペレーティングシステムを使う事ができます。
許可されたユーザーは、作業量を移す事ができます。条件をつけて、複数のゲストマシンに記録、容量などを分配する事ができます。 容量の大きいアプリケーションを使う時、ハイパーバイザを経由して (ホストマシンから)使うと便利です。
経済的:
もし、ハイパーバイザを入れていないのなら、色々なアプリケーションを試すのに、それに合わせたハードウェアを一つ一つ購入しなければいけません。しかし、ハイパーバイザを使えば、一つで複数のオペレーティングシステムを動かす事ができます。 コンピューターの購入費用も消費電力も抑える事ができます。
柔軟性:
ハイパーバイザがオペレーティングシステムとハードウェアを分離するので、アプリケーションはハードウェアの影響を受けません。これで、色々なソフトウェアを実行しやすくなります。
安全性:
ゲストマシンがそれぞれ独自に動いているので、一つのゲストマシンに問題が発生しても他に影響しません。例えば、バーチャルマシンのファイルが全て壊れたとしても、他のゲストマシンのファイルやアプリケーションには影響ありません。
システムのバックアップと復元:
バーチャルマシンの中のファイルは、コピーされていて復元する事ができます。バーチャルマシン上で複製するより、ハイパーバイザを使って複製する方が、簡単で費用対効果が高いです。これは、他のハードウェアでも同じです。どんなデバイスにもバックアップファイルを簡単に保管する事ができます。
欠点
機能性:
ゲストマシンはバーチャルで繋がっているので(お互いは独立しているけれど)、影響を及ぼす事があります。
時々、問題の根本原因が隠れている事があります。例えば、容量がいっぱいになっているハードウェアにプログラムを入れると、他のゲストマシンの容量を使います。これで、ハードウェアの容量が不足してしまいます。
リスク:
仮想化にはリスクが伴います。なぜなら、一つの場所に全てのものを入れているからです。ホストマシンが落ちると、全てのゲストマシンも落ちます。これを「単一障害点」と言います。
複雑さ:
1台の機械を管理するより、複数のバーチャルマシンを管理する方が複雑になります。いくつかのハイパーバイザは、急激に複雑になります。そして、仮想化が一般的になってきているので、新しいスキルが必要です。
家庭のコンピューターを仮想化する
2000年代半ば、 AMD-VやIntel VT-xのようなマイクロプロセッサに、仮想化 するためのハードウェアが加わりました。その後のモデルは、より高速になりました。2019年現在、Intel とAMDプロセッサーの最新版は、バーチャルマシンに対応しています。
ハイパーバイザには、最新の 埋め込みシステムもあります。大抵は、特別な設計をされた Type-1のハイパーバイザです。埋め込みシステムは コンピューターのハードウェアと違って、広範囲で使えて、標準化されていない環境でも使えます。
これらの仮想化は、より効率化され、範囲が広くなり、分離、セキュリティーが強化され、タイムラグが短くなります。例えば、OKL4は、 x86 やARMなどの色々な環境で使えます。20億台以上の携帯電話で、ベースバンドとホストの仮想オペレーティングシステムが入っています。
セキュリティー
セキュリティーは、仮想化において最も重要なものの一つです。もし、アタッカーがハイパーバイザに自由にアクセスできれば、シェアされている履歴や脆弱性を利用して、ソフトウェアに繋がっている全てのゲストマシンに侵入する事ができます。 このタイプの攻撃は、ハイパージャッキングと呼ばれます。
最新のハイパーバイザは、セキュリティーが強化させています。何件か小さなハッキングがあるというニュースがありますが、大きなハイパージャッキングは「実証実験」以外で報告されていません。