このページの本文へ

前へ 1 2 次へ

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

アプリから見たOSを仮想化する

パーティショニングによる仮想化とは?

2009年05月22日 09時00分更新

文● ネットワークマガジン編集部

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

パーティショニングとは

 コンピュータは、ハードウェア、OS、アプリケーションなどさまざまな要素から構成されている。そのためコンピュータに関する「仮想化」を考える場合、「何を何に対して」仮想化するのかを把握する必要がある。

 ここまでのパートでは、ホストOS型、ハイパーバイザ型の仮想化を紹介してきた。この2つは、いずれもOSに対してコンピュータのハードウェアを仮想化するものだ。これに対して「パーティショニング」とは、アプリケーションに対してOSを仮想化するものである(図1)。

図1 ハイパーバイザ型仮想化(左)とパーティショニング(右)の違い

 1台の物理サーバ上で動いているOSは1セットだけだが、内部では仮想のOSセットが生成されており、動作するアプリケーションは、ほかのアプリケーションとは隔離されたOS環境の中で実行される。この環境は「コンテナ」と呼ばれる。

 パーティショニングは、OSセットを仮想化するという意味で「OS仮想化」、またコンテナを生成することから「コンテナ型仮想化」など、さまざまな別名がある。本質的にはこれらは同等の仕組みといえる。

 なお、CPU/メモリボードを何枚も備えた大型コンピュータで、ボードごとに物理的に分離する技術も「パーティショニング」と呼ぶ場合があるので、混同しないようにしよう。

パーティショニングの実装例

 x86マシン上での仮想化技術はまだ歴史が浅いが、仮想化技術そのものはかなり昔から使われている。パーティショニングについても同様だ。以下に、代表的な製品や実装を紹介しよう。

表1 おもなパーティショニングソフトウェア

chroot

 「chroot」はUNIX系OSのコマンドで、ルートディレクトリを変更してコマンドを実行するものだ。

 UNIX系のOSでは、ディレクトリツリーの頂点(ルート)以下に、さまざまなディレクトリが存在し、設定にもよるが一般のユーザーでもある程度アクセスすることができる。chrootを用いてルートディレクトリを変更すると、ユーザーのアクセス可能な範囲を限定することができる。非常にシンプルなレベルだが、chrootもパーティショニングといってよいだろう。

jail(FreeBSD)

 「jail」(ジェイル)はFreeBSDが備えるパーティショニングの機構だ。jailはchrootを強化したもので、chroot同様のルートディレクトリの変更によるディレクトリアクセスの制限に加え、プロセス空間もほかのjailから独立したものとなっている。つまりあるjailからは、ほかのjailや元のOSのプロセスを参照することはできず、高い独立性を持っている。

 このような特徴から、レンタルサーバ業者の安価なサービスに利用される例が多い。

Solarisコンテナ

 サン・マイクロシステムズのSolarisには「Solarisコンテナ」と呼ばれるパーティショニング技術が提供されている。最新のSolaris 10に含まれており、設定するだけですぐに利用可能だ。

 Solaris Zoneと呼ばれる仮想OSセット上では、NFSサーバを使えなかったり、デバイスドライバの追加が行なえないという一部の制限のほかは、ほぼ通常のOS環境と同様に利用できる。

Virtuozzo

 前のパートでも少し触れたが、「Virtuozzo」(バーチュオッゾ)はパラレルズが販売しているパーティショニングソフトウェアだ。もともとSWソフトが開発したものだが、同社がパラレルズを子会社にしたのち、社名をパラレルズに変更して、今に至っている。

 Windowsおよび、Linuxに対応しており、jailと同様に各社のレンタルサーバやホスティングサービスに広く利用されている。

 Linux版Virtuozzoのオープンソース版として、OpenVZがある。

(次ページ、「パーティショニングのメリット・デメリット」に続く)


 

前へ 1 2 次へ

カテゴリートップへ

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