2009年 9月 28日 月曜日
やっぱり Sun がスキ!
OpenSolaris 2009.06 で Zone を作成する
今回は、OpenSolaris 2009.06 で Solarisコンテナを作成する手順を纏めてみましたので 紹介します。
今まで、「やっぱり Sun がスキ!」ブログでは、Solaris 10 ベースの Solarisコンテナに 関する TIPS をいろいろ紹介して来ましたが、OpenSolaris 2009.06 では Solaris 10 と 少し変わっていますので、Solaris 10 との違いを中心に説明していきます。
ステップ1 zonepath 用のディレクトリを作成する
Zone 作成時に一番重要なプロパティは zonepath ですが、Solaris 10 の ように適当なディレクトリを mkdir で作成して zonepath に設定してはいけません。OpenSolaris 2009.06 では、zonepath に ZFS のデータセット名を指定する 必要があります。例えば、zonepath に /rpool/zones/test-zone と指定したい 場合は、あらかじめ下記の設定が必要になります。
# zfs create rpool/zones # zfs create rpool/zones/test-zone # chmod 700 /rpool/zones/test-zone
ステップ2 Zone の作成を行う
次に zonecfg で Zone名 test-zone の作成を行います。# zonecfg -z test-zone test-zone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:test-zone> create zonecfg:test-zone> set zonepath=/rpool/zones/test-zone
ここで設定値を確認してみます。
zonecfg:test-zone> info zonename: test-zone zonepath: /rpool/zones/test-zone brand: ipkg autoboot: false bootargs: pool: limitpriv: scheduling-class: ip-type: shared hostid:
info の出力結果で注目する箇所は、Solaris 10 と違いブランド名が native でなく ipkg 形式に なっている事です。従いまして、inherit-pkg-dir のプロパティも無くなっています。
zonecfg の設定を保存した後、zone の状態を確認してみます。
# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared - test-zone configured /rpool/zones/test-zone ipkg sharedtest-zone のブランドが native でなく ipkg になっています。
ステップ3 Zone のインストールを行う
Zone の作成が完了しましたので、インストールを行います。
# zoneadm -z test-zone install
Publisher: Using opensolaris.org (http://pkg.opensolaris.org/release/).
Image: Preparing at /rpool/zones/test-zone/root.
Sanity Check: Looking for 'entire' incorporation.
Installing: Core System (output follows)
DOWNLOAD PKGS FILES XFER (MB)
Completed 20/20 3021/3021 42.55/42.55
PHASE ACTIONS
Install Phase 5747/5747
Installing: Additional Packages (output follows)
DOWNLOAD PKGS FILES XFER (MB)
Completed 37/37 5598/5598 32.52/32.52
PHASE ACTIONS
Install Phase 7329/7329
Note: Man pages can be obtained by installing SUNWman
Postinstall: Copying SMF seed repository ... done.
Postinstall: Applying workarounds.
Done: Installation completed in 1075.241 seconds.
Next Steps: Boot the zone, then log into the zone console
(zlogin -C) to complete the configuration process
Zone のインストールを実行すると、パッケージのリポジトリからパッケージのダウンロードが開始されます。そして、ログにはインストールにかかった時間が表示されるようになりました。
インストールが完了すれば、後は Solaris 10 と同様に Zone をブートして使用可能になります。
# zoneadm -z test-zone boot # zlogin -C test-zone
おまけ Zone のクローンを作成する
せっかく zonepath が ZFS ベースなので、Solarisコンテナのクローン機能が ZFS のクローンと 連携出来ているか確認してみました。# zoneadm -z test-zone halt # zonecfg -z test-zone export -f /var/tmp/clone-zone.cfgexport したファイル内の zonepath を /rpool/zones/test-zone から /rpool/zones/clone-zone に 変更します。
# zonecfg -z clone-zone -f /var/tmp/clone-zone.cfg # zoneadm -z clone-zone clone test-zone sys-unconfig started 2009年09月27日 01時29分53秒 rm: cannot remove `/rpool/zones/clone-zone/root/etc/vfstab.sys-u': No such file or directory grep: /rpool/zones/clone-zone/root/etc/dumpadm.conf: No such file or directory sys-unconfig completed Sun Sep 27 01:29:53 2009Zone のクローン作成は、即時に作成できましたので ZFS のクローンときちんと連携できているようです。
ZFS の状態を確認してみます。
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT rpool/ROOT/opensolaris@install 146M - 2.82G - rpool/zones/test-zone/ROOT/zbe@clone-zone_snap 0 - 341M - # zfs get origin | grep clone rpool/zones/clone-zone origin - - rpool/zones/clone-zone/ROOT origin - - rpool/zones/clone-zone/ROOT/zbe origin rpool/zones/test-zone/ROOT/zbe@clone-zone_snap - rpool/zones/test-zone/ROOT/zbe@clone-zone_snap origin -
Zone と ZFS の連携って素敵です!
Posted at 09:51午後 9 28, 2009 by Naoyuki Yamada in Sun | 投稿されたコメント[0]