Linux-VServer

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Linux-VServer
開発元 Herbert Pötzl (コミュニティプロジェクト)
対応OS Linux 2.6、2.4
プラットフォーム x86, x64, SPARC/64, PA-RISC, S390/x, MIPS/64, ARM, PowerPC/64
種別 OSレベルの仮想化
ライセンス GNU GPL v.2
公式サイト Linux-VServer.org
テンプレートを表示

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ディストリビューションを修正なしでブート可能であり、DebianFedora Core を並行動作させることができる。

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

Linux-VServer には、2.6系カーネル向けの安定版 (2.2.x) と開発版 (2.3.x) があり、2.4系カーネル向けには安定版のみがある。安定版に grsecurity パッチを統合したブランチもある。

同様の仮想化機構[編集]

OSレベルの仮想化技術の他の実装としては、OpenVZParallels Virtuozzo ContainersFreeBSD jail 機構、Solaris ContainersFreeVPS(Linux-VServer から初期にフォーク)などがある。

利点[編集]

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

欠点[編集]

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

外部リンク[編集]