Linux-VServer

Linux-VServer は、LinuxカーネルにOSレベルの仮想化機能を追加することで実装されたバーチャル・プライベート・サーバ。オープンソースソフトウェアとして開発・配布されており、GNU General Public License (GPL) でライセンスされている。

 概要 
プロジェクトの創始者は Jacques Gélinas。現在はオーストラリアの Herbert Pötzl が保守しており、負荷分散の実装を行っている Linux Virtual Server プロジェクトとは無関係である。

Linux-VServer はjail機構であり、コンピュータシステムの各種リソース（ファイルシステム、CPU時間、ネットワークアドレス、メモリなど）をセキュアに分割でき、プロセスは自身の存在するパーティション以外に対してDoS攻撃の影響を与えることができない。

各パーティションを「セキュリティコンテキスト」と呼び、その中で動作する仮想化されたシステムを「バーチャル・プライベート・サーバ」と呼ぶ。セキュリティコンテキストに下降するための chroot のようなユーティリティが用意されている。バーチャル・プライベート・サーバのブートは、単に新しいセキュリティコンテキスト内で init を起動すればよい。同様にシャットダウンするには、そのセキュリティコンテキスト内の全プロセスを停止すればよい。各コンテキストでLinuxディストリビューションを修正なしでブート可能であり、Debian や Fedora Core を並行動作させることができる。

バーチャル・プライベート・サーバは一般にWebホスティングサービスに利用され、顧客アカウントの分離、リソースのプーリング、潜在的セキュリティ違反の封じ込めなどに有効である。インストールにあたって領域を節約するため、各バーチャル・サーバのファイルシステムは「テンプレート」ファイルシステムのコピーオンライト型ハードリンクのツリーとして構築される。そのハードリンクはファイルシステムの特殊な属性付きであり、書き込み時にセキュアかつ透過的にファイルの実際のコピーに置換される。

 同様の仮想化機構 
OSレベルの仮想化技術の他の実装としては、OpenVZ、Parallels Virtuozzo Containers、FreeBSD jail 機構、Solaris Containers、FreeVPS（Linux-VServer から初期にフォーク）などがある。

 利点 
 バーチャル・サーバ間でシステムコールインタフェースは共通であり、エミュレータのオーバーヘッドは生じない。
 各バーチャル・サーバにディスクイメージを持つ必要はなく、ファイルシステムを共有できる（ただし、コピーオンライト型ハードリンク経由）。これにより、システムのバックアップが容易になり、バーチャル・サーバ間でディスク空き領域をプールできる。
 バーチャル・サーバ内のプロセスは、ホストシステムの通常のプロセスと同じである。システム全体をエミュレートする仮想化よりもメモリやI/Oが効率化される。
 バーチャル・サーバ内のプロセスは、ホストシステムのスケジューラでスケジューリングされ、どのプロセスもSMPシステム上で並行動作可能である。システム全体のエミュレーションでは必ずしも簡単ではない。
 ネットワークは仮想化というよりも分離されているだけであり、パケット送受信に余分なオーバーヘッドが生じない。

 欠点 
 ホストカーネルにパッチをあてる必要がある。
 全バーチャル・サーバが同じカーネルを共有するため、バグやセキュリティホールも共有する可能性がある。
 クラスタリングやプロセスマイグレーション機能がない。ホストカーネルおよびそのハードウェアで障害が発生すると、全バーチャル・サーバがダウンする危険性がある。
 ネットワークは仮想化ではなく分離されているだけである。このため、バーチャル・サーバが独自にルーティング設定したり、ファイアーウォールを設定したりできない。
 一部のシステムコール（特にハードウェア関連、例えばリアルタイムクロック関連）、/proc や /sys ファイルシステムの一部は仮想化されていない。
 ディスクI/Oの帯域幅をバーチャル・サーバ毎に割り当てることができない。

 脚注 

 外部リンク 
 プロジェクトのホームページ
 公式リリース
 Implementation paper

Category:仮想化
Category:オープンソースソフトウェア