パーティショニングとは
コンピュータは、ハードウェア、OS、アプリケーションなどさまざまな要素から構成されている。そのためコンピュータに関する「仮想化」を考える場合、「何を何に対して」仮想化するのかを把握する必要がある。
ここまでのパートでは、ホストOS型、ハイパーバイザ型の仮想化を紹介してきた。この2つは、いずれもOSに対してコンピュータのハードウェアを仮想化するものだ。これに対して「パーティショニング」とは、アプリケーションに対してOSを仮想化するものである(図1)。
1台の物理サーバ上で動いているOSは1セットだけだが、内部では仮想のOSセットが生成されており、動作するアプリケーションは、ほかのアプリケーションとは隔離されたOS環境の中で実行される。この環境は「コンテナ」と呼ばれる。
パーティショニングは、OSセットを仮想化するという意味で「OS仮想化」、またコンテナを生成することから「コンテナ型仮想化」など、さまざまな別名がある。本質的にはこれらは同等の仕組みといえる。
なお、CPU/メモリボードを何枚も備えた大型コンピュータで、ボードごとに物理的に分離する技術も「パーティショニング」と呼ぶ場合があるので、混同しないようにしよう。
パーティショニングの実装例
x86マシン上での仮想化技術はまだ歴史が浅いが、仮想化技術そのものはかなり昔から使われている。パーティショニングについても同様だ。以下に、代表的な製品や実装を紹介しよう。
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がある。
(次ページ、「パーティショニングのメリット・デメリット」に続く)
この連載の記事
-
第7回
ソフトウェア・仮想化
ネットワーク機器で用いられる仮想化技術 -
第6回
ソフトウェア・仮想化
サーバだけじゃない!ストレージ仮想化の重要性 -
第5回
ソフトウェア・仮想化
クライアントPCを仮想化するVDIの正体 -
第3回
ソフトウェア・仮想化
実行効率の高いハイパーバイザ型の仮想化ソフト -
第2回
ソフトウェア・仮想化
ホストOS型とハイパーバイザ型の違いを知る -
第1回
ソフトウェア・仮想化
さまざまな仮想化技術の基本を理解する -
ソフトウェア・仮想化
すっきりわかった仮想化技術<目次> - この連載の一覧へ