Linux-VServerは、
LinuxカーネルにOSレベルでの
仮想化機能を追加することで実現された、バーチャル・プライベート・サーバ(VPS)です。オープンソース
ソフトウェアとして開発されており、
GNU General Public License (GPL) の下で
ライセンスされています。
概要
プロジェクトはJacques Gélinas氏によって開始されましたが、現在はHerbert Pötzl氏が保守を担当しています。
Linux-VServerは、負荷分散を行う
Linux Virtual Serverプロジェクトとは異なるものです。
Linux-VServerはjail機構として機能し、
ファイルシステム、
CPU時間、ネットワークアドレス、メモリといったシステムリソースを安全に分割できます。これにより、
プロセスは自身が属するパーティション外からの
DoS攻撃の影響を受けないよう保護されます。
各パーティションは「セキュリティコンテキスト」と呼ばれ、その中で動作する
仮想化されたシステムが「バーチャル・プライベート・サーバ」です。セキュリティコンテキストへの移行には、chrootのようなユーティリティが使用されます。バーチャル・プライベート・サーバの起動は、新しいセキュリティコンテキスト内でinit
プロセスを開始するだけで完了します。同様に、シャットダウンは、そのコンテキスト内の全
プロセスを停止することで行われます。各コンテキストでは、修正なしで
Linuxディストリビューションを起動でき、DebianやFedora Coreなどを並行して動作させることが可能です。
バーチャル・プライベート・サーバは、主にWebホスティングサービスで利用されており、顧客アカウントの分離、リソースのプーリング、潜在的なセキュリティ侵害の封じ込めに効果的です。インストール時には、ディスク領域を節約するため、各バーチャル・サーバの
ファイルシステムは、「テンプレート」
ファイルシステムの
コピーオンライト型
ハードリンクツリーとして構築されます。これらの
ハードリンクは
ファイルシステムの特殊な属性を持ち、書き込み時にセキュアかつ透過的にファイルの実際のコピーに置き換えられます。
OSレベルの
仮想化技術には、
Linux-VServer以外にも、
OpenVZ、
Parallels Virtuozzo Containers、
FreeBSD jail機構、Solaris Containers、FreeVPS(
Linux-VServerから初期にフォーク)などがあります。
利点
効率性: バーチャル・サーバ間で
システムコールインターフェースを共有するため、
エミュレータのようなオーバーヘッドが発生しません。
ディスクスペース: 各バーチャル・サーバが個別のディスクイメージを持つ必要がなく、
ファイルシステムを共有できます(
コピーオンライト型
ハードリンク経由)。これにより、システムのバックアップが容易になり、ディスクの空き領域をバーチャル・サーバ間でプールすることが可能です。
パフォーマンス: バーチャル・サーバ内の
プロセスはホストシステムの通常の
プロセスと同様に動作するため、システム全体をエミュレートする
仮想化よりも、メモリやI/Oが効率的に利用できます。
並列処理: バーチャル・サーバ内の
プロセスは、ホストシステムのスケジューラによって
スケジューリングされ、SMPシステム上で並行して実行できます。システム全体のエミュレーションでは、この並列処理が容易ではありません。
ネットワーク: ネットワークは
仮想化というよりは分離されているだけであり、パケットの送受信に余計なオーバーヘッドは発生しません。
欠点
カーネルパッチ: ホスト
カーネルにパッチを適用する必要があるため、導入に手間がかかります。
セキュリティ: 全バーチャル・サーバが同じ
カーネルを共有するため、
カーネルにバグやセキュリティホールが存在する場合、すべてのサーバが影響を受ける可能性があります。
クラスタリングとマイグレーション: クラスタリングや
プロセスマイグレーションの機能がありません。ホスト
カーネルや
ハードウェアに障害が発生すると、すべてのバーチャル・サーバがダウンする危険性があります。
ネットワーク設定: ネットワークは分離されているだけで、
仮想化されていないため、バーチャル・サーバが独自にルーティングやファイアウォールを設定することはできません。
システムコールとファイルシステム: 一部の
システムコール(特に
ハードウェア関連)や、/proc、/sys
ファイルシステムの一部が
仮想化されていません。
ディスクI/O: ディスクI/Oの帯域幅をバーチャル・サーバごとに割り当てることはできません。
外部リンク
プロジェクトのホームページ
公式リリース
実装に関する論文