仮想化(2):サーバ仮想化

virtualization_009_R

サーバ仮想化

サーバ仮想化とは、1台のサーバ(物理サーバ)に複数台の仮想的なサーバ(仮想サーバ・仮想マシン)を作製して異なる種類のOSを同時に動作させることのできる仕組みです。それぞれの仮想サーバではOSやアプリケーションを実行させることができ、あたかも独立したコンピュータのように使用することができます。CPUやメモリー、ストレージ、ネットワーク、光学ドライブなどが利用できます。つまり、物理サーバーのCPU、メモリーなどのリソースを複数の仮想マシンで共有しているわけです。管理ソフトウエアによって、複数の物理サーバーを一つの大きなリソースとして扱うことができ、新たなシステムの構築する際の新サーバの追加などが容易にできるというメリットもあります。

サーバ仮想化の主な方式

サーバ仮想化にはいくつか方法があり、考え方によって大きく2つに分ける場合、3つに分ける場合などがあるようです。ここでは4つに分けてみました。

(1)パーティショニング型

パーティショニング方式は、物理パーティショニングと論理パーティショニングがあります。 物理パーティショニングは、物理サーバ上に独立したハードウェア区画(パーティション)を設けて分割します。物理パーティショニングでは、ハードウェア障害や負荷の影響がパーティション同士で影響を与えないのが特徴である。反面、状況に応じて区画を変更するなどの柔軟性に難があります。 論理パーティショニングは、CPU単位・メモリブロック単位で分割する方式で、どのパーティションにも自由にリソースを配分することができる特長がありますが、CPU・メモリを共有するため、故障や負荷の影響を受けやすいという課題もあります。 HPでは物理パーティショニングを「nPartition(nPar)」、論理パーティショニングを「Virtual Partitioning(vPar)」、IBMでは「Physical Partiotioning(PPAR)」「Logical Partitioning(LPAR)」との名称で実装しています。

virtualization_005 (ユニアデックスhttps://www.uniadex.co.jp/service/Virtualization/server.html より)

(2)ホスト(仮想OS)型

物理サーバのOS上に仮想化ソフトウェアをインストールし、その上で複数の仮想化環境を稼働させます。例えば、Mac OSXがインストールされたサーバー上で仮想マシンを立ち上げ、その上でMac OSXとは違うOS(Windowsなど)をインストールし立ち上げというような場合です。この場合、元々のMac OSXは「ホストOS」、仮想マシン上にインストールされたWindows は「ゲストOS」と呼びます。 この方式はアプリケーションをインストールするだけなので容易ではありますが、次に紹介するハイパーバイザ方式よりもオーバーヘッド(※1)が多くなるという問題もあります。 個人向けのVMware Player, VirtualBoxやKVMなどがこの方式に該当します。 (※1)オーバーヘッドとは、コンピュータの処理に必要以上に時間がかかるなどのシステムの実行に付随する余分な負荷を指します。ですので、オーバーヘッドはできるだけ小さいことが望ましいと言えます。

virtualization_006 (アスキーTECH http://ascii.jp/elem/000/000/447/447472/ より)

(3)ハイパーバイザー型

最も普及している方式です。ハードウェアとOSの間に位置するハイパーバイザーと呼ばれるソフトウェアによって、物理リソースは複数の仮想マシンに分割され、制御されます。ぞれぞれの仮想マシンはそれぞれ個別のOSを持ち独立して動作します。ハイパーバイザ型のサーバ仮想化ソフトは物理ハードウェア上で直接動作し、ゲストOSからハードウェアへの全アクセスをエミュレーションするため、ハイパーバイザの下にホストOSを必要としません。 特徴としては、複数のOSを動作させてもオーバヘッドは最小限に抑えられるとういうこと、OSを含めた今までのシステムが利用できること、それにより異なる環境を同一の物理サーバ上へ構築するということが挙げられます。ハイパーバイザ方式の仮想化ソフトウェアとしてはVMware ESX Server、Xenなどがあります。 なお、こうしたホストOSを持たないものをモノリシック型といい、これとは異なり管理OSにデバイスドライバーを保持したマイクロカーネル型と呼ばれるものをあります。この方式の場合、ディスクやネットワーク プリンターといったI/O処理に汎用的なデバイスドライバーを使用することができますので、対応可能なハードウエアの範囲が広がるという利点があります。その他に、ゲストOSのドライバをそのまま利用するパススルー型と呼ばれるものもあります。

virtualization_007_R (http://www.infraexpert.com/study/virtual.html より)

(4)コンテナ型

この方法は、1つのOSを共有しながら個別の独立したシステム資源に見せかける技術です。利用するユーザーから見れば、ハイパーバイザーと似ていますが、異なるのは、全てのコンテナは同じOSしか使えない点です。 一方、ハイパーバイザー型やホスト型よりもオーバーヘッドが少なく、極めて高速で起動できということや、他のサーバにコンテナを移動させて動かす場合でも基となるハードウェアの機能や設定に影響を受けることが少ないという特徴があります。 ただ、OSレベルの仮想化ではないので、1つのゲストOSの誤りによって、ホストOS全体が高負荷状態になるとか、カーネルは共通のため異なるOS同士を同時に動作できないとか、ホストOSがクラッシュするとすべてのコンテナは道連れになるといったデメリットもあります。 なお、ホストOS型仮想化とコンテナ型仮想化を区別しない考えもあります。 コンテナ型にはDockerやLXC、OpenVZなどがあります。また、ホストOS型仮想化とコンテナ型仮想化を区別するかどうかは、人によって判断が分かれるところです。

virtualization_008 (@IT http://www.atmarkit.co.jp/ait/articles/1504/23/news011_3.html より)

 

仮想化(3):デスクトップ仮想化とアプリケーション仮想化 ⇒

⇐ 仮想化(1):仮想化とは へ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です