FreeBSD jail

FreeBSD jailはOSレベル仮想化機構実装の一つである。jailを使うと、管理者がFreeBSDベースの計算機システムをjailと呼ばれる独立した小さなシステムに分割できるようになる。
FreeBSD jailは、レンタルサーバ業者が業者の提供するサービスと顧客のサービスとを分離するのによく使われる。
このように分離することで安全性を確保し、管理の手間を軽減できる。
サーバデーモンの設定レベルで分離するのと違い、jailからは自分に割り当てられたファイルシステムおよびプロセス空間しか扱えないようになっている。
jailの利点.
FreeBSD jailには主に次の3つの利点がある。
jailのやり方は従来のUnixでプロセスのスコープを制限するのに使われるchroot jailに似ている。FreeBSD jailはこれを強化したもので、各プロセスは他のjailで動いているプロセスに干渉したり、raw socketやdivert socket、routing socketを操作したりできないよう、特別なカーネル構造体を用いて管理してある。
jail(8)ユーザーランドコマンドとjail(2)システムコールはFreeBSD 4.0で登場した。jailの取り扱いを簡単にする新しいユーザーランドコマンド (たとえば、jailの一覧を出すjls(8))やシステムコール (たとえば、jailに新しいプロセスを追加するjail_attach(2))はFreeBSD 5.1から追加された。
jailの作り方.
FreeBSD jailの利用は次のように簡単に行える。
こうすることで、jailのコンテキストでいくつかのプロセスが実行される。そして、中で起動したプロセスはjailの中のプロセスの操作しかできず、jailのルートファイルシステムとして指定されたファイルシステム (ここでは、/usr/jail) の外にあるファイルをアクセスできなくなる。
jailを使い始めるときはjail(8)のオンラインマニュアルが参考になる。
同様の技術.
OSレベルの仮想化技術にはこのほかにOpenVZ/Virtuozzo, Linux-VServer, Solaris Containers, FreeVPS, LXCがある。