TOP(サイトマップ)

Solaris 10 ZONE(コンテナ)インストール

(はじめに)
はじめに
Solarisって・・・
SunのセミナーとSDC
Solaris 10概要
資格(SCSA,SCNA)
Solarisフォーラム
管理人に連絡

(Solaris基本)

Solarisのインストール
システムの起動と停止
ファイルシステム
オートマウントとマウント
パッケージとパッチ
ユーザの追加と削除
ファイル権限(セキュリティ)
バックアップとリストア
CDE環境
プロセス管理/監視

(ネットワーク管理)

OSIを理解してみる
TCP/IPの設定
(TCP/IP入門)
DNSの設定
NISの設定
NFSの設定(WebNFS,CacheFS)
(NIS、NIS+、DNS違い)
DHCPの設定
1つのNICで複数IP設定

(IO関連)

インタフェース概要
SAFの管理
プリンタ管理概要
プリンタコマンド
SunSolve Online
SCSI情報(KEY,ASC,ASCQ)

(ソフトウェア関連)

Bash
Apache
Solstice DiskSuite
(SDS OSミラー回復)
Veritas VxVM

(OBPについて)

PROM(OBP)の概要
OBPでのキーボード操作
一般的なOBPコマンド
SolarisでOBPの設定
OBPに関するFAQ


(トラブル時の対応)

基本情報
エラーメッセージ
(主要メッセージ一覧)
性能関連コマンド
トレースコマンド
クラッシュダンプ
SunSolve Online

(その他)

小技集
UNIXコマンド
(manマニュアル)
システムチューニング
ネットワークチューニング
UltraSPARC T1について

(FAQ)

rootのPASSが不明
ハングアップかな?
ハードトラブル
OSが起動しない(b)
swap領域の拡張方法

(リンク)

Sun関連リンク
その他リンク
アバウトなJava入門
Perlメモ(逆引き用)

Solaris 10 ZONE(コンテナ)


ZONE(Solarisコンテナ)はどんな感じなのか、SDCの例を参考に作ってみました。概要としては、普通にOSをインストールして、そのOS自体がGlobal Zone(グローバルゾーン)と言うようです。まあ、ZONEを作らないのであれば、そんな名前を言うことがないのでしょう。
で、そのOSの他に別なOSを作る。まあ子供みたいなもんですね。そいつをnon-global zoneというそうです。

1.ZONEの作成
まずは、作成前の状態を確認する
# zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /

2.zone nameの登録・作成
ここでは、non-global zoneの名前を付けるということ。後で後悔したのですが、名前に「*アスタリスク」や「_(アンダーバー)」を使わないほうがいいです。とりあえず、test_zoneという名前で作ります。
# zonecfg -z test_zone
test_zone: そのような構成済みゾーンはありません
'create' を使用して、新しいゾーンの構成を開始します。
ここでプロンプトが変わります。

3.test_zoneの作成
zonecfg:test_zone> create

4.zone pathの設定
簡単に説明すると、どこのディレクトリ配下にインストールするかということ。ZONEを作った後でdfコマンドで比較すると、最低150Mはあったほうが良さそうです。
# df -h
ファイルシステム     サイズ 使用済み 使用可能 容量      マウント先
/dev/md/dsk/d1         940M   282M   602M    32%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   612M   984K   611M     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
/dev/md/dsk/d3         4.8G   3.3G   1.5G    70%    /usr
fd                       0K     0K     0K     0%    /dev/fd
/dev/md/dsk/d5         7.3G   964M   6.3G    14%    /var
swap                   611M   264K   611M     1%    /tmp
swap                   611M    56K   611M     1%    /var/run
/dev/md/dsk/d4         2.1G    32M   2.0G     2%    /opt
/dev/md/dsk/d6         658M   1.0M   598M     1%    /export/home

なので、/optにでも作ってみる。

zonecfg:test_zone> set zonepath=/opt/test_zone
*:/opt領域が余っているのでここで作ってみる。

5.共有ファイルシステムの設定
デフォルトだと/lib、/platform、/sbin、/usrが大元のglobal zoneのディレクトリを共有するようです。指定はadd inherit-pkg-dirということらしい。例えば/optのExplorerというのも共有したい場合
zonecfg:test_zone> add inherit-pkg-dir
zonecfg:test_zone:inherit-pkg-dir> set dir=/opt/SUNWexplo
zonecfg:test_zone:inherit-pkg-dir> end
です。後で気づいたのですが、/optも共有しておりました。ということで個人的にはZONEが全て終わってから共有ファイルを検討していったほうが良さそうです。

ちなみに注意事項が書いてあって、「inherit-pkg-dir に登録された packaged software を保持するので、zoneadm で non-global zone がインストールされた後には、これらの packaged software を修正したり、削除することはできません」とのこと。ということはKJPなどのパッチ当てたらどうなるのだろう??という疑問が残った今日この頃。まあ、次に進む。

6.ファイルシステムの登録
ちょっと理解しにくいので、手順にある通り実行(あとで調べる)。
zonecfg:test_zone> add fs
zonecfg:test_zone:fs> set dir=/usr/local
zonecfg:test_zone:fs> set special=/opt/local

「新たに仮想ファイルシステムとしてloopback file system(lofs)を設定します。」
って書いてある。よく分からんけどやってみる。
zonecfg:test_zone:fs> set type=lofs
zonecfg:test_zone:fs> end

7.autoboot valueの設定
global zone がブートしたら test_zoneもブートするか?の設定をする。デフォルトはfalseのよう。とりあえずtrueに設定してみる。
zonecfg:test_zone> set autoboot=true

8.IPアドレスなどネットワークの設定
後でもできると思いますが・・・NICのLANのポートが1つしかないのだが・・・仮想IPみたいなのでいけるのかな?って思いつつやってみる!
(ちなみにglobal zoneは)
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 100.8.36.176 netmask ffffff00 broadcast 10.8.36.255
        ether 8:0:20:a7:e8:68

zonecfg:test_zone> add net
zonecfg:test_zone:net> set address=100.8.36.173
zonecfg:test_zone:net> set physical=hme0
zonecfg:test_zone:net> end

9.リソースプールとの関連づけ
これは難しそうなので、デフォルトで・・・
zonecfg:test_zone> set pool=pool_default

10.Zone 環境での FSS の設定
CPU の Share 数の指定?CPU1個しかないのに設定いるのか??試しにやってみる。
zonecfg:test_zone> add rctl
zonecfg:test_zone:rctl> set name=zone.cpu-shares
zonecfg:test_zone:rctl> add value (priv=privileged,limit=3,action=none)
zonecfg:test_zone:rctl> end

11.コメントの登録
これはいらないでしょう・・・。でもやっておくか・・・。
zonecfg:test_zone> add attr
zonecfg:test_zone:attr> set name=test_zone_comment
zonecfg:test_zone:attr> set type=string
zonecfg:test_zone:attr> set value="This System is Test Zone !!"
zonecfg:test_zone:attr> end
attr name test_zone_comment は無効です: 含めることができるのは、英数字、'-'、および '.' だけです。
zonecfg:test_zone:attr> set name=test-zone-comment
zonecfg:test_zone:attr> end
やってみるもんですな。nameで「_」は使えないのか・・・。

12.設定内容の確認
zonecfg:test_zone> export
省略

13.整合性の検証、stable storage への書き込み、で終わり
zonecfg:test_zone> verify
zonecfg:MyZone:> commit
zonecfg:MyZone:> exit

14.設定内容の確認とインストール
さて、わくわくドキドキする瞬間ですね!!
# zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /
   - test_zone        configured     /opt/test_zone

いるね!!では、インストール!!
# zoneadm -z test_zone install
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' 
に結合されません。
Preparing to install zone <test_zone>.
ERROR: Read-only file system: cannot create mount point </opt/test_zone/root/usr/local>
ERROR: cannot setup zone <test_zone> inherited and configured file systems
ERROR: cannot setup zone <test_zone> file systems inherited and configured from the global zone
ERROR: cannot create zone boot environment <test_zone>
zoneadm: zone 'test_zone': '/usr/lib/lu/lucreatezone' が終了コード 74 で失敗しました。
失敗したじゃん!!
「cannot create mount point」がエラーなんでしょ?設定してよく分からなかったから(^^;)
ということで、設定削除します。

zonecfg:test_zone> remove fs dir=/usr/local
zonecfg:test_zone> export
zonecfg:test_zone> verify
zonecfg:test_zone> commit
zonecfg:test_zone> exit

# zoneadm -z test_zone install
zoneadm: zone 'test_zone': ゾーンは incomplete です; uninstall が必要です。
???ゴミが残っているのか??アンインストールしてから再度してみる

# zoneadm -z test_zone uninstall
ゾーン test_zone を uninstall してよろしいですか (y/[n])? y

# zoneadm -z test_zone install
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default'
 に結合されません。
Preparing to install zone <test_zone>.
Creating list of files to copy from the global zone.
Copying <2701> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1020> packages on the zone.
Initializing package <647> of <1020>: percent complete: 63%
順調に行ってるよう・・・・

Zone <test_zone> is initialized.
The file </opt/test_zone/root/var/sadm/system/logs/install_log> contains a log of the zone installat
ion.
とりあえず終わったようだ。だいたい10分くらいだったかな。

# zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /
   - test_zone        installed      /opt/test_zone

15.test_zoneの起動
とりあえず動かしてみるしかないよね
# zoneadm -z test_zone boot
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' 
に結合されません。
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' 
に結合されません。

# zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /
   1 test_zone        running        /opt/test_zone

なんか警告(WARNING)は出たけど、起動できた。pingも通る。
なんか、あっけないな・・・・とりあえずtelnetでログインしてみようっか・・・ってrootユーザしかないから、/opt/test_zone/root/etc/default/loginを編集してrootがtelnetでログインできるようにする。globalで編集したが、ログインできず。なんで????pingはOKだが、ftpができん。
で、いろいろ調べてみると・・・・zlogin コマンドというを発見!tip接続イメージみたい(~.で抜けれる)
どうやら起動中のようです。
しばらくすると・・・・インストールっぽい画面が・・・

*******************************************
Select a Language

  0. English
  1. Japanese

Please make a choice (0 - 1), or press h or ? for help:1
*******************************************
Select a Locale

  0. Japanese EUC (ja)
  1. Japanese EUC (ja_JP.eucJP)
  2. Japanese PC Kanji (ja_JP.PCK)
  3. Japanese UTF-8 (ja_JP.UTF-8)
  4. Go Back to Previous Screen

Please make a choice (0 - 4), or press h or ? for help:
*******************************************
省略
:


rebooting system due to change(s) in /etc/default/init


[NOTICE: Zone rebooting]
リブートしているみたいです・・・。
SunOS Release 5.10 Version Generic_118833-17 64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: test-zone
:
起動完了!!さてdf打ってみますか!

とりあえずdfコマンド実行
# df -h
ファイルシステム     サイズ 使用済み 使用可能 容量      マウント先
/                      2.1G   164M   1.9G     8%    /
/dev                   2.1G   164M   1.9G     8%    /dev
/lib                   940M   282M   602M    32%    /lib
/opt/SUNWexplo         2.1G   164M   1.9G     8%    /opt/SUNWexplo
/platform              940M   282M   602M    32%    /platform
/sbin                  940M   282M   602M    32%    /sbin
/usr                   4.8G   3.3G   1.5G    70%    /usr
proc                     0K     0K     0K     0%    /proc
ctfs                     0K     0K     0K     0%    /system/contract
swap                   558M   248K   558M     1%    /etc/svc/volatile
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                   558M     0K   558M     0%    /tmp
swap                   558M    16K   558M     1%    /var/run

ということで、ZONE(コンテナ)のインストールは、終わった。いろいろ実験してみたい気もするが、それは次回に!!

Google
WWW を検索 Solarisでいきましょか?」内を検索





Copyright (C) 2008 Solarisでいきましょか? All rights reserved