仮想化の種類と特徴

【連載コラム:仮想化技術をしっかり解説します(2)】
仮想マシンの型には「ホストOS型」「ハイパーバイザー型」がありますが、その違いは?

最終更新日:2022年08月05日

前回は仮想化技術の概略を解説しました。今回は具体的に仮想化技術の種類と特徴について解説します。前回、仮想化技術は仮想マシンなどのほか、仮想ネットワークとしてVPNなどを紹介しましたが、以後主な対象はサーバーに関わる仮想マシンなどに絞って解説していきます。
仮想化技術を活用してサーバーを実行する最も基本的な方法は仮想マシンの利用です。仮想マシンを実行するソフトウェアには、「ホストOS型」と「ハイパーバイザー型」があります。それぞれの特徴を見てみましょう。


ホストOS型は通常のアプリケーションのように動作

ホストOS型の仮想マシンソフトウェアは、我々が通常利用しているWindowsやmacOS、LinuxなどのOSを「ホストOS」とし、その上で仮想マシンを実行して、仮想マシンの内部で「ゲストOS」を実行します。

ホストOS型は扱いやすい

ホストOS型仮想マシンソフトウェアは、扱いやすいのが最大の特徴といえるでしょう。通常のアプリケーション同様にインストールし、実行できます。設定や操作なども、知識は必要ですが特別なところがありません。

特別なデバイスドライバが不要

たとえば仮想マシンにネットワークを利用してインターネットに接続させる場合、物理的なネットワークインターフェースを経由して接続する必要があります。このインターフェースはホストOSが管理しており、デバイスドライバもホストOS用のドライバがあれば動作します。このように、多くの物理デバイスは、通常ホストOS用のドライバが用意されていて動作しますので、特別なデバイスドライバを用意しなくても仮想マシンはそれらのデバイスにアクセス、利用できます。

速度が遅い場合がある

ホストOS型仮想マシンは、物理的なハードウェアに対するアクセスをホストOSを経由して行うため、一般的に性能が遅くなります。特にストレージのように、元々速度が遅いものの場合に性能の劣化が顕著に感じられます。それでも、最近では高速な読み書きが可能なSSDを利用することが多く、一般的な学習、検証目的の利用であれば、性能劣化がストレスになるようなことはありません。逆に、速度が遅いHDDを利用する場合には、動作が遅いと感じることがあるでしょう。

代表例はVirtualBox

ホストOS型の代表例はVirtualBoxでしょう。本体部分がGPLでソースコードが公開されており、Windows、macOS、Linux、Solarisとクロスプラットフォームで動作するため、多くの人が活用しています。そのほか、VMwareやParallelsなどがホストOS型仮想マシンソフトウェアを販売しています。

ハイパーバイザー型は仮想マシン実行に特化

ハイパーバイザー型仮想マシンソフトウェアは、仮想マシン実行に特化したハイパーバイザーの上で仮想マシンを実行します。ハイパーバイザーは、Linux環境におけるLinuxカーネルのような位置づけにあるものと考えるとよいでしょう。

ハイパーバイザー型は性能に優れる

ハイパーバイザー型は仮想マシンに特化しているため、デバイスへのアクセスなどの処理がホストOS型に比べて無駄が少なくなっています。そのため、ホストOS型に比べると性能が優れています。ただし、完全に物理的なハードウェアへのアクセスに比べると、仮想化を行っている分、性能は劣化します。このあたりは、仮想化することによる利便性と引き換えであると考えればよいでしょう。
ホストOS型で説明したように、特に性能が要求されるのはストレージですが、実際の環境では高速なSSDを利用したり、HDDでも複数台用意してRAIDを構成することで読み書きを分散させて性能を向上させるなどの方法でこの問題を回避しています。

機能にも優れる

ハイパーバイザー型は大規模な仮想マシン環境を構築することを想定して、様々な機能を備えています。たとえば、複数の仮想化ホストを用意して、障害発生時には仮想マシンを別のホストで起動する冗長構成をサポートしています。
そのほかに、仮想マシンを実行したまま、実行しているホストを変更する(仮想マシンを移動させる)「ライブマイグレーション」なども代表的な機能です。
これらの機能は、システム停止時間をできるだけ短くしたい業務システムなどで重宝する機能です。

取り扱いには専門知識が必要

ホストOS型が使い慣れたOS上のアプリケーションとして動作するのに比べると、ハイパーバイザー型はハイパーバイザーを物理マシンにインストールしたり、管理用のツールを準備してネットワークに接続するなど、それぞれのハイパーバイザーに合わせた導入、管理が必要となります。高度な技術力が要求されるというわけではありませんが、Linuxでサーバーを構築できる、などのスキルとはまた異なった知識が要求されます。また、ストレージやネットワークなどについてもそれなりに詳しい技術者が扱うことを想定した作りになっています。

独自のドライバーが必要

ハイパーバイザー型は物理的なハードウェアの上で直接動作するため、各種デバイスを動作させるためのデバイスドライバを独自で用意する必要があります。よく使われているデバイスは大体ドライバが用意されているので大きな問題になることは少ないですが、ハイパーバイザーのバージョンが新しくなって古いデバイスがサポートされなくなったり、新しいハードウェアに未対応だったり、ということが希に起きます。継続的に仮想化環境を維持していく際に、ハードウェアの入れ替えなどの際に確認が必要です。
ただし、次に紹介するHyper-VやXenは、デバイスとのやり取りを行うための特殊な仮想マシン(親ドメイン)を動作させ、その他の仮想マシン(子ドメイン)は親ドメインに各種デバイス入出力を任せる形を取るため、親ドメインで動作するOSのデバイスドライバがあれば良い構造になっています。

ハイパーバイザー型はいろいろ

ハイパーバイザー型の仮想マシンソフトウェアには様々な種類があります。
よく使われているのはVMware ESXiがあります。Windows ServerやWindows 10/11ではHyper-Vが使用できます。ほかにオープンソースのXenなどもあります。

KVMは分類がやや難しい

Linuxカーネルに組み込まれた仮想マシン実行の機能であるKVM(Kernel VM)は、分類がやや難しくなります。Linuxカーネルに組み込まれているため、ハイパーバイザー型とも、ホストOS型とも言いにくいところがあります。また、仮想マシンとしての様々な機能をオープンソースのエミュレータである「QEMU」を利用することで実現しています。
分類すること自体にあまり意味はありませんが、使用感としてはややホストOS型寄りというところでしょうか。

ホストOS型とハイパーバイザー型の使い分け

ホストOS型とハイパーバイザー型、それぞれメリット、デメリットがありますが、どちらが優れているか、という比較はなかなか成り立ちません。それぞれのメリットを活かす使い分けが重要となります。

学習や検証環境にはホストOS型

ホストOS型は、普段使い慣れているOSをそのまま使うことができるので、何か調べながら仮想マシンでゲストOSを動かしたり、ブラウザでゲストOS上で動作するWebサーバーにアクセスするなど、学習や検証を行うのに適しているといえます。
実務においては、ホストOS型仮想マシンソフトウェアで検証用環境を構築して設定手順を確認したり、アップデートが問題なく行えるかなど、幅広く活用されています。

規模の大きい仮想マシン環境にはハイパーバイザー型

ハイパーバイザー型は、仮想マシンが複数実行される大規模な仮想マシン環境を想定して開発されています。業務システムで使用するような環境を構築する場合には、ハイパーバイザー型が選択されることが多いでしょう。また、仮想ホスト1台だけのような小規模な環境でも、性能面などを考慮してハイパーバイザー型を選択する場合があります。

筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。


バックナンバー

第10回:クラウド利用の留意点

第9回:オンプレミスのクラウド環境

第8回:たくさんあるぞ!クラウドサービス

第7回:クラウド〜仮想化技術の活用系〜

第6回:コンテナ実行の代表格「Docker」とは

第5回:仮想化を実現するソフトウェア|KVM

第4回:仮想化を実現するソフトウェア|VirtualBox

第3回:第3のサーバー環境「コンテナ」

第2回:仮想化の種類と特徴

第1回:仮想化技術ってなんだろう?なぜ必要なの??

ページトップへ