特集
2003/07/29 17:53 更新
UNIX USER03年8月号特別企画より転載:
FreeBSD 5.1-RELEASEにおける新機能の概要と活用例 (3/6)
jailは、FreeBSDにおけるchroot(2)の拡張的な機能であり、特定のサブディレクトリ下に完全なFreeBSDのバイナリツリーを作成し、独立したIPアドレスを持つ一種の仮想マシンとして利用するものだ。
ただし、いままで複数のjailを起動した場合、親ホストからそれらの区別をつけることが困難であり、また親ホストからjail内へプロセスを送り込めなかった(注3)。
注3 jailは/etc/rcから順番に通常のマシンのように起動するため、外部からコマンドを送り込むようなことを想定していなかった。
5.1-RELEASEでは、複数のjailを管理するサポート機構、および親ホストからのプロセス送信機能が追加された。
実際に、追加された機能を試してみよう。ここでは、2つのjail環境(/usr/jail/jail1と/usr/jail/jail2をルートとする)があると想定する。
現在稼働しているjailのリストは、今回追加されたjlsコマンドによって取得できる(注4)。
# jls JID IP Address Hostname Path 5 192.168.0.101 testjail2 /usr/jail/jail2 4 192.168.0.100 testjail1 /usr/jail/jail1 |
それぞれのjailにはJIDという番号が割り振られているので、これをベースに親ホストからjailの制御を行う。
たとえば、killallコマンドの「-j」オプションでJIDを指定すれば、該当するjailを終了させることが可能だ。
# killall -j 5 # jls JID IP Address Hostname Path 4 192.168.0.100 testjail1 /usr/jail/jail1 |
また、jexecコマンドを利用することで、jail内にコマンドを送信できる。たとえば、JID 4番のjail内に/bin/psコマンドのプロセスを送信するには、次のように実行すれば良い。
# jexec 4 /bin/ps aux |
[UNIX USER特別企画] FreeBSD 5.1-RELEASEにおける新機能の概要と活用例 |
(1) 完成度の向上した5.1-RELEASE |
(2) nsdispatchのNSSモジュール対応 |
(3) jailに追加された機能 |
(4) ULEスケジューラ |
(5) FireWire/DVTS〜新ブートローダー |
(6) VMware 3用のports〜5.2-STABLEに向けて |
関連リンク
UNIX USER
定期購読のご案内
バックナンバー販売協力店
読者モニターレポート
FreeBSD 5.1-RELEASEを収録 UNIX USER 8月号
第1特集 Webmin解体新書 |
[細川達己,UNIX USER]
Copyright © ITmedia, Inc. All Rights Reserved.