このページの本文へ

すっきりわかった!仮想化技術 第2回

サーバ仮想化の仕組みと種類を学ぶ

ホストOS型とハイパーバイザ型の違いを知る

2009年05月08日 06時00分更新

文● 大内明/日本仮想化技術株式会社 

  • この記事をはてなブックマークに追加
  • 本文印刷

サービスレベルでの仮想化

 サービスレベルでの仮想化は、Webサーバやメールサーバなどのサービスだけを仮想化する方法である。サービスレベルで利用できる仮想化技術の代表例が、バーチャルドメイン機能だ(図2)。

図2 バーチャルドメインのイメージ

 バーチャルドメイン機能は、1つのサーバ(1つのIPアドレス)に対して複数のドメインを割り当てて、それぞれで異なるサービスを同時に稼働させる機能である。これにより、1つのサーバで複数のドメイン、すなわち複数の企業や組織ごとに異なるサービスを提供できるようになるため、サービスの集約化が実現する。

 バーチャルドメインを使うと、たとえばWebサーバでは、リクエストされたドメインに応じて異なるWebサイトを表示させることが可能になる。また、メールサーバでは、1台のメールサーバで異なるドメイン宛のメールを受信できる。もし同じアカウント名でもドメイン名が異なっていれば、それぞれ違うメールボックスに振り分けられるようになる。

 バーチャルドメインを利用するメリットは、前述のように1つのシステムで複数のドメインを管理可能なため、ドメインごとに別々のサーバを用意する必要がなくなるという点である。また、仮想マシンで複数サーバを用意する場合と比較すると、仮想マシンのエミュレートなどによるリソース消費がなく、オーバーヘッドによるパフォーマンス低下も起こらない。そのため、リソースを大幅に節約できるというわけだ。

 ただし、複数ドメインから同時に負荷が集中してサービスがダウンした場合や、急なハードウェア障害によってシステムがダウンした場合は、すべてのドメインのサービスが停止してしまうため、運用には注意が必要である。

ファイルシステムレベルのパーティショニング

 ここでいうパーティショニングとは、ファイルシステム上のあるディレクトリをルートディレクトリとみなすことで、仮想のファイルシステムを作成する技術である(図3)。つまり、ディレクトリツリーの一部分だけを独立したファイルシステム(仮想ファイルシステム)とみなして運用することを意味する。仮想ファイルシステムでは、外のファイルシステムが見えなくなり、触れることさえ一切できなくなるのが特徴だ。そのため、サービスのセキュリティ対策や、OSレベルでの仮想化に使用されている。

図3 仮想環境の例

 赤枠の中がそれぞれファイルシステムとして独立している。外側の枠が本当のファイルシステム、内側の2つの枠が仮想のファイルシステムとなる

BINDの例

 サービスのセキュリティ対策の利用例では、ネームサーバ(DNSサーバ)「BIND」のnamedがポピュラーだろう。namedは、Linuxの場合、/var/named/chroot/var/named以下に設定ファイルが配置されており、サービス起動時には/var/named/chrootディレクトリがnamedにとってのルートディレクトリとみなされる。

 万が一、namedのセキュリティが破られてファイルシステムにアクセスされても、/var/named/chrootがルートディレクトリとして見えるため、侵入者はこれより上のディレクトリにはアクセスできない。つまり、被害をそのサービス内のみに食い止められるのだ。

OSレベルのパーティショニング

 一方、OSレベルでのパーティショニングは、仮想ファイルシステムにOSをインストールする方法だ。この方法によって用意されたOSを「OSインスタンス(仮想化実体)」もしくは「仮想環境(VE)」と呼ぶ

 この方法は、OSレベルでの仮想化であるため、後述するハイパーバイザ型の仮想マシンよりもオーバーヘッドが大幅に少なく、1つのサーバに多量のOSインスタンスを作成することが可能である。そのうえ、仮想マシンと同様にそれぞれ別のシステムとして稼働しているように見せられ、どれか1つのOSインスタンスがクラッシュしても、他のOSインスタンスには影響しない。ただし、WindowsとLinux両方という風に、ほかのOS同士の混在はできない。これについては、次のパートでより詳しく説明する。

(次ページ、「仮想マシンによるサーバ仮想化」に続く)


 

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード