X

Oracle Solaris, Oarcle ハードウェア製品に関する情報

  • Sun
    September 28, 2009

OpenSolaris 2009.06 で Zone を作成する

Guest Author


今回は、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 shared

test-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.cfg

export したファイル内の 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 2009

Zone のクローン作成は、即時に作成できましたので 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 の連携って素敵です!


Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.