仮想化環境の概要と種類、仮想化環境を利用するメリットとデメリットについて紹介します。
仮想化環境とは
仮想化とは、コンピューターのハードウェアリソース(CPU、メモリ、ディスク、ネットワークなど)を分割することで、それぞれ独立した環境を複数動作させる技術のことです。この技術により、物理的な制限にとらわれず、ソフトウェア的に統合・分割することができます。
仮想化環境の種類
(1) ホストOS型
ホストOS型は、物理サーバーにインストールされたOS(ホストOS)を土台とし、その環境に仮想化ソフトウェアを導入することで仮想マシンを稼働させる方法です。
メリット:既存のコンピューターをそのまま利用できるため、手軽に仮想マシンを準備でき、テスト環境などを作成することに適していると言えます。
デメリット:ホストOS側のリソースと仮想マシンのOS(ゲストOS)の両方を動かすだけのリソースが必要になります。
ホスト型の仮想化ソフトウェアとして「VMware Workstation Player」「Oracle VM VirtualBox」などがあります。
(2) ハイパーバイザー型
ハイパーバイザー型は、ホストOSが不要なかわりに、専用の仮想化ソフトウェア(ハイパーバイザー)を物理サーバーに直接インストールすることで仮想マシンを稼働させる方式です。
メリット:ホストOSを必要としないため、ハードウェアを直接制御でき、仮想マシンの速度低下を最小限に抑えることができます。ホストOS型と比べて高い処理能力を発揮できます。
デメリット:既存のホストOSをそのまま利用できず、専用の物理サーバーを別途用意する必要があるため、ホストOS型と比べると手軽さに欠けてしまいます。また、ハイパーバイザーによっては、安全な環境を維持するために頻繁にバージョンアップが発生するものもあり、システム管理者にとっては運用負荷が増える傾向があります。
ハイパーバイザーの例は「VMware ESXi」「Microsoft Hyper-V」「Citrix Xen Server」「Linux KVM」などがあります。
(3) コンテナ型
コンテナは、アプリケーションを実行するため環境を仮想化する技術で、ホストOS、ハイパーバイザー型とは全く異なる概念です。
アプリケーションを実行するために必要となるリソースも含めて1つのコンテナで実現します。コンテナは、「コンテナエンジン」と呼ばれるアプリケーションで運用します。
メリット:コンテナは、1つのOSで稼働しますので、コンテナ内のリソース(CPU、メモリ、ストレージ)の消費もわずかです。そのため、同じ性能のハードウェアであれば、より多くのコンテナを同時に動かすことができます。
デメリット:コンテナが利用できるOSが限られます。また、ハイパーバイザー型のように異なるOSを持つ仮想マシンを同時に稼働させることはできません。
代表的なコンテナエンジンとして、「Docker」があります。また、多くのコンテナを効率良く管理し、自動化するシステムとして「Kubernetes」があります。
仮想化環境のメリット・デメリット
仮想化環境には、メリットとデメリットがあります。
仮想化環境のメリット
● リソースを有効活用できる
物理サーバーを利用する方式では、ピーク時の負荷を想定してスペックを選定したものの、いざ利用を開始すると、システムによっては、ピーク時以外はリソースを十分に利用していないという状況があると思います。一方で常時負荷がかかるようなWebサーバーなどもあり、サーバー間でリソースを分散できると効率的に動かせるのだが…というジレンマが発生していたのではないかと思います。
サーバー仮想化を利用することで、複数の仮想サーバーを1台の物理サーバーで動作させることができます。さらに、物理サーバーのリソースを自由に配分できるため、リソースを効率的に利用できます。
物理的なサーバー台数を減少できるため、購入費用の節約と、消費電力の抑制につながります。
● 復旧が早い
仮想化サーバーは、従来の環境と異なりハードウェアに依存しないため、仮想イメージとして複数の物理サーバーにバックアップしておくことができます。
従来の方式ですと、サーバー障害が発生した場合にハードウェアの復旧に数日間かかっていたのが、仮想化サーバーであれば、バックアップしていた仮想イメージを別の物理サーバーにコピーして起動するだけで良いため、数分後には復旧が可能になります。
● 古いシステム・アプリケーションを継続利用できる
業務によっては、古いOSで動作を保証しているシステム・アプリケーションを使い続ける場合があります。サーバーの老朽化に伴い物理サーバーを更新しようにも、新規サーバーが古いOSに対応していないというケースも想定されます。
このような場合は、新しい物理サーバーに仮想化環境を準備し、古いOSを導入した仮想サーバー上で古いシステム・アプリケーションを稼働させることができます。
仮想化環境のデメリット
● パフォーマンス面で物理サーバーに劣る場合がある
物理サーバーにあるリソースを仮想化ソフトウェアで分割することで、仮想サーバーを実現しているため、仮想化ソフトウェアの分だけオーバーヘッドが発生します。
厳密なパフォーマンスを求めるシステムの場合は、物理サーバーを選択いただく方が良い場合もあります。
● 物理サーバーの故障により、システム障害が大きくなる可能性がある
1台の物理サーバーで複数の仮想サーバーを稼働させているため、その物理サーバーに何らかの障害が発生した場合は、全仮想サーバーが停止するため、そこで動作させているシステムにも影響が及びます。
物理サーバーの障害に備え、冗長化するなどの検討が必要になります。
仮想化環境のまとめ
仮想化環境におけるメリット、デメリットをあげて紹介しました。コスト削減などメリットを享受できる半面、仮想サーバーを動作する物理サーバーの障害や、仮想化ソフトウェアやコンテナエンジン側の障害により全仮想サーバーが利用できなくなるデメリットもございます。
仮想化環境を導入される際には、OSやハードウェアだけでなく、ソフトウェア、ミドルウェアに対する監視や回復措置も合わせてご検討ください。
※記載の会社名、製品・サービス名は、各社の登録商標または商標です。