OpenSolaris 2009.06 で Zone を作成する : やっぱり Sun がスキ! やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20090928 2009年 9月 28日 月曜日

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     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 の連携って素敵です!

投稿されたコメント:

コメント
  • HTML文法 不許可