ハイパーバイザー

ハイパーバイザーについて解説します。

ハイパーバイザーの仕組み

OS(スーパーバイザー)との関わり

ハイパーバイザーはコンピューターの仮想化技術の一つで、OS(オペレーティングシステム)に対して、それを管理する役割という意味でハイパーバイザーと呼ばれます。ハイパーバイザーを利用することで、同一の物理マシン上で複数の異なるOSを並列に実行することが可能となり、限りあるシステムのパフォーマンスを効率よく作動させることができます。

ハイパーバイザーの種類

ハイパーバイザーはその制御方式により、大きく2つの種類に大別されます。Type1のベアメタル(ネイティブ)型はハードウェア上で直接稼働する一方、Type2のホスト型ではハードウェア上にOSが存在しており、そのOS上で仮想環境を管理する役割を担います。

ハイパーバイザー

Type1 ベアメタル(ネイティブ)型

狭義のハイパーバイザーはType1のことを指しています。マシンに対して直接、制御を行うことができるため後述のType2と比べて速度低下を少なく抑えることが可能になります。

Type2 ホスト型

狭義ではハイパーバイザーに含まれません。ハードウェア上にインストールされたOS上にハイパーバイザーが稼働し、その更に上のレイヤーでハードウェア上とは別のOS(ゲストOS)が稼働します。Type1に比べて導入が簡単にできる分、ホストOS経由でマシンにアクセスするため余計なオーバーヘッドがかかり処理速度が低下します。Windowsマシン上で最新OSを過去のバージョンに切り替える際にはこの技術が利用されています。主要なサービスとして以下のものが挙げられます。

ハイパーバイザーの開発の歴史

仮想化技術の歴史は1972年にIBMがリリースしたVM/370にまで遡ります。当初はメインフレーム(汎用大型コンピュータ)に仮想化技術が導入され、その後2000年にかけてサーバー、x86システム、組込システム等に仮想化技術が採用されていきます。一方でハードウェア自体の仮想化は最後まで導入されずに残されていました。

当時、仮想化ソフトウェアは前述のType2のホスト型のハイパーバイザー(ホストOS)のアプリケーションとして動いていました。そのためCPU割当、メモリアロケーション、ディスク/ネットワーク処理の責務は全てホストOSが担っていたため、ホストOSがクラッシュするとその上で動いている仮想マシンが全てダウンしてしまうことが懸念事項となっていました。またホストOSは汎用OSとして運用されていたため、仮想化技術に特化されておらずオーバーヘッドが大きいこともデータセンターで問題になります。

VMkernel

2002年仮想マシンの専用OS、ESXサーバー ver1.0がVMwareにより公開されます。これが前述のType1型のハイパーバイザの先駆けとなります。ESXのアーキテクチャの中心となるのが専用OSであるVMkernelです。VMkernelはx86ハードウェア上で直接動作し、プロセッサ、メモリ、ストレージ、ネットワークなどのハードウェア資源を抽象化して管理する役割を担います。これによりlinuxやwindows等のホストOSを必要とせず、物理マシン上でリソースのオーバーヘッドが非常に少ない状態で仮想化ソフトウェアの運用が可能になりました。

Xen

時期を同じくして、イギリスのケンブリッジ大学でもIan Pratt教授の研究グループがオープンソースのソフトウェアXenの開発を開始します。Xenは当初からハイパーバイザーを前提とした設計で、仮想化のCPUオーバーヘッドを小さくしたことが特徴です。しかし、これによって仮想マシン上で動くOSは準仮想化OSと呼ばれ、ハイパーバイザーと強調して動くようにインターフェースの設計を行う必要が出てきました。それに対して2005年にLinuxディストリビューターであるCPUベンダーや、サン・マイクロシステムズ、HP、IBM等からサポート表明を受けます。これによりLinuxはカーネルの準仮想化を行い、Xen上で仮想マシンとして動くようにします。またインテルとAMDがCPUの仮想化の支援を行う機能を開発したことで、Xenは準仮想化OSに限らず、汎用OS上でもゲストOSとして動かすことができるようになりました。

クラウド時代におけるハイパーバイザー

クラウドが普及したことで企業が自社で専用のサーバーを持つことは少なくなりました。2020年現在、大多数の企業でクラウドサービスの導入が進んでいます。そのため物理サーバーを自社で持ち、IT担当者がXenやESXを比較、導入するケースは徐々に減りつつあります。

VPSの運用

国内のレンタルサーバー業者では共用サーバー、専用サーバーとは別に仮想化技術を用いてVPS(バーチャル・プライベート・サーバー)サービスの提供を行うケースが増えています。VPSでは同一物理マシン上で仮想環境を複数立ち上げており、その仮想環境一つ一つがサービス利用者に割り振られます。これによって共用サーバーに比べて外部影響を受けづらくなった他、ホストOSの選択を自由にできるなど、サーバーリソースを安価なまま効率的に利用することが可能になりました。

VM型とコンテナ型

2010年以降のクラウド・仮想化技術の普及において欠かせないのがコンテナ型の仮想化技術になります。コンテナ型に対して、スーパーバイザーを使った仮想化技術はVM型と呼ばれるケースが一般的です。

コンテナ型はVM型と異なり、ホストOS上と仮想環境でカーネルを共有し、ゲストOSのインストールが不要となります。そのためVM型に比べて初期設定にかかる工数が削減され、クラウドサービス上で今まで以上に柔軟なインフラ構築運用を実現しました。2020年現在、サーバー、インフラ運用を行う中で、クラウドへの移行に伴い、VM型からコンテナ型への置き換えを求められるケースも増えてきています。

まとめ

ハイパーバイザーは仮想化技術のコア技術の一つとして現在でもデータセンターやクラウドベンダーなど多くの企業で利用されています。クラウドサービスが普及する昨今においては、あまり聞き慣れない用語になりつつはあるものの、ITの根幹を支える技術の一つであることに変わりはありません。クラウドサービスを深く活用する上でも、重要な概念となってきますので、ぜひその歴史と共に理解を深めていただければと思います。