#topicpath
----
Solaris10 x86 6/06 にて、Solaris Container の作成をしてみました。
ファイルシステムは zfs を使ってみます。
* zfs を作る [#m12628e0]
まず zfs ファイルシステムのプールを作成します。
# zpool create -f zfspool c0d0s7
* zone 用のファイルシステムを割り当てる [#r9bc5aa4]
10GB 分切り出してみます。
# zfs create zfspool/zone1
# zfs set mountpoint=/export/zone1 zfspool/zone1
# zfs set quota=10G zfspool/zone1
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfspool 156K 66.4G 24.5K /zfspool
zfspool/home 35.5K 66.4G 35.5K /export/home
zfspool/zone1 24.5K 10.0G 24.5K /export/zone1
/export/zone1 は chmod 700 しておきます。
# chmod 700 /export/zone1
* zone の定義を作成 [#c0bd9a15]
zone1 という zone を作成してみます。
IPアドレスは 192.168.1.101 で、NIC は rtls0 を共有することにします。
ファイルシステムは上で切り出した /export/zone1 です。
自動起動も設定します。
# zonecfg -z zone1
zone1: そのような構成済みゾーンはありません
'create' を使用して、新しいゾーンの構成を開始してください。
zonecfg:zone1> create
zonecfg:zone1> set zonepath=/export/zone1
zonecfg:zone1> set autoboot=true
zonecfg:zone1> add net
zonecfg:zone1:net> set address=192.168.1.101
zonecfg:zone1:net> set physical=rtls0
zonecfg:zone1:net> end
zonecfg:zone1> verify
zonecfg:zone1> commit
zonecfg:zone1> exit
* 作成した定義の確認 [#ec073218]
定義が作成されたことが確認できます。中身はまだありません。
# zoneadm list -vc
ID NAME STATUS PATH
0 global running /
- zone1 configured /export/zone1
* zone のインストール [#e8f9bee2]
global zone からパッケージをインストールしていきます。
# zoneadm -z zone1 install
Preparing to install zone <zone1>.
Creating list of files to copy from the global zone.
Copying <2471> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1061> packages on the zone.
Initializing package <290> of <1061>: percent complete: 27%
...
Initialized <1061> packages on zone.
Zone <zone1> is initialized.
The file </export/zone1/root/var/sadm/system/logs/install_log> contains a log of
the zone installation.
* zone の起動 [#qf712945]
# zoneadm -z zone1 boot
* コンソール接続 [#f1427782]
OS としての初期設定を行うため、コンソール接続します。
言語やタイムゾーン、ホスト名などの設定をしていきます。
# zlogin -C zone1
[ゾーン 'zone1' コンソールに接続しました]
...
Select a Language
0. English
1. Japanese
Please make a choice (0 - 1), or press h or ? for help:
... (などなど)
全部設定が終われば、プロンプトが出てきます。
これで zone の作成は完了です。
SunOS Release 5.10 Version Generic_118855-15 32-bit
Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hostname: zone1
zone1 console login:
このコンソールは、~^D で抜けます。
* 作成した zone の確認 [#a0d8ee7f]
running になっていることが確認できます。
# zoneadm list -vc
ID NAME STATUS PATH
0 global running /
2 zone1 running /export/zone1
* ネットワークの確認 [#t555b2eb]
ifconfig で IP アドレスなどの確認をしてみました。
ユーザを作ればここで設定した 192.168.1.101 へ SSH 接続ができるので、
リモートから他の設定もできるようになります。
** global zone [#cdcf5309]
# hostname
solaris10
# zonename
global
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
lo0:1: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
zone zone1
inet 127.0.0.1 netmask ff000000
rtls0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
ether 0:7:40:1f:63:ca
ether 0:7:40:xx:xx:ca
rtls0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
zone zone1
inet 192.168.1.101 netmask ffffff00 broadcast 192.168.1.255
** local zone (zone1) [#ue087f8d]
# zonename
zone1
# hostname
zone1
# ifconfig -a
lo0:1: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
rtls0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.1.101 netmask ffffff00 broadcast 192.168.1.255
----
#comment