はじめに
無尽蔵に増え続けるサーバにより運用コストの増大やCO2排出量が問題となっています。サーバ台数を削減し、運用コストとCO2排出量を削減するために仮想化技術を導入する企業が数年前から急激に増えています。これから3回にわたり、x86システムの仮想化について説明していきます。
1.仮想化の種類
X86システムでは、図のようにハードウェア、オペレーティングシステム、アプリケーションのレイヤーから成っています。仮想化はそれぞれのレイヤーで行うことが可能であり、各レイヤーで仮想化した場合の機能・特徴について簡単に説明します。
(1)ハードウェアレベルの仮想化
このレイヤーの仮想化は、ハードウェアを仮想化することを意味します。すなわち、単一のハードウェアに対して複数の仮想化されたハードウェアを同時に動かすことができます。この仮想化されたハードウェアを、一般に仮想マシン(Virtual Machine:VM)と呼びます。個々の仮想マシンには、それぞれOSをインストールできますから、複数の異なったOSやバージョンを1台のサーバ上で同時に実行できるという特徴があります。このレイヤーでの仮想化製品としてVMwareの製品やCitrix XenServerなどがあります。
(2)OSレベルの仮想化
OSレベルの仮想化は、OSを仮想化します。動いているOSはベースとなる1つだけですが、その上でコンテナと呼ばれる仮想OSを複数実行できます。従って、異なるOSやバージョンを各コンテナ上で動かすことはできませんが、異なるアプリケーションを各コンテナにインストールし利用することが可能です。OSは1つだけのため、ベースとなるOSにパッチ等の更新を行うと、すべての仮想OSに反映させることができます。ISPでの使用など、同じOSのシステムを数多く運用するようなシステムでは、オーバヘッドも少ないため効果的です。このレイヤーの仮想化製品としてはParallelsのVirtuozzoやSolaris 10のContainersなどがあります。
(3)アプリケーションレベルの仮想化
アプリケーション仮想化は1つのアプリケーションベースとして複数のアプリケーションが動いているように見せます。各アプリケーションは専用の構成セットを持つため他のアプリケーションの設定による誤動作などを防ぎます。このレイヤーの仮想化製品としてはCitrix XenApp(旧Citrix Presentation Server)やMicrosoft SoftGrid Application Virtualizationなどがあります。
それぞれの方式について長所・欠点がありますし、それぞれの仮想化技術を組み合わせて使用することもできます。仮想化導入は仮想化技術を理解し、目的にあった方式を検討して採用することが必要となります。このコラムではハードウェアレベルの仮想化に焦点を当てて説明を行います。