Zoneは1台の物理サーバ上に、仮想的に独立したSolaris環境を複数実現する技術のこと。
仮想的なSolaris環境は分離,独立していて、お互いに影響を与える事なく動作する。
zone には、"global zone" と "non-global zone" の2種類がある。
まずはじめにSolars 10 をインストールした環境が global zone 。これは1つしか存在しない。このglobal zone の上に構築される仮想サーバが non-global zone なのだ。
global zone は全ての non-global zone に干渉する事ができるが、non-global zone は他のzone(global zone 含む)にはいっさい干渉できない隔離された環境なのである。
non-global zoneの作成方法はちょっと面倒だった。
分からない項目は飛ばして、とりあえず最低限のセットアップだけで作成してみた。
ここからは面倒なので、non-global zoneをzoneと呼びます。
流れは大きく分けて3つ
1.Zoneの設定
2.Zoneのインストール
3.Zone上のOSの設定
1.Zoneの設定
■まず今のマシンにZoneがあるかどうかを確認。
# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / native shared
うん、global zoneだけがある(単にOSをインストールしただけの)状態だって事が分かる。
■では新しくゾーンを作ってみよう。
# zonecfg -z zone01
zone0: そのような構成済みゾーンはありません
'create' を使用して、新しいゾーンの構成を開始してください。
■createで作成されます。
zonecfg:zone03> create
■ここから細かい設定をしていきます。
・ファイルパスの設定。
zoneの情報をどこに保存するか決めます。
dfなのでサイズを確認してから決めます。
zone path には、各 non-gloal zone の root となる path なので、
global zone に実存する path を割り当てます。
zonecfg:zone03> set zonepath=/export/home/zone03
・共有ファイルシステムの設定(inherit-pkg-dir)
"inherit-pkg-dir" とは、packaged software を含むディレクトリを non-global
zone でも使用できるよう、共有するためにmountする共有ファイルシステムです。
ユーザが任意のディレクトリを設定できるようになっているほか、default inher
it-pkg-dir resources として、次の4つが、あらかじめシステムにより設定され
ています。
/lib
/platform
/sbin
/usr
他のディレクトリを指定したいときは、set dir= で設定します。
終わったらendで抜けます。
zonecfg:zone03> add inherit-pkg-dir
zonecfg:zone03:inherit-pkg-dir> set dir=/opt
zonecfg:zone03:inherit-pkg-dir> end
・autoboot valueの設定
global zone がブートしたら non-global zone も自動的にブートするか否かを設定することができます。 デフォルト値は false ですが、自動的にブートするよう、true に設定します。
zonecfg:zone03> set autoboot=true
・ネットワークの設定
zonecfg:zone03> add net
zonecfg:zone03:net> set address=172.20.100.90
zonecfg:zone03:net> set physical=e1000g0
zonecfg:zone03:net> end
・リソースプールとの関連づけ
正直よく分からないので、マニュアルどおりに設定
zonecfg:zone03> set pool=pool_default
・その他、以下のの設定は無視しなかったです。
ファイルシステムの登録
Zone環境でのFSSの設定
コメントの登録
■設定内容の確認
zonecfg:zone03> export
create -b
set zonepath=/export/home/zone03
set autoboot=true
set pool=pool_default
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add inherit-pkg-dir
set dir=/opt
end
add net
set address=123.456.789.012
set physical=e1000g0
end
■整合性の検証
ここまで登録した設定の整合性をシステムが検証してくれます。
何か間違っていると、ここでエラーを出してくれます。
zonecfg:zone03> verify
■Stable Storageへの書き込み
これまでの設定をメモリから Stable Storageへ書き込みます。
zonecfg:zone03> commit
■設定の終了
zonecfg:zone03> exit
■設定の確認
# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- zone03 configured /export/home/zone03 native shared
2.Zoneのインストール
■以下のコマンドでインストールします。
# zoneadm -z zone03 install
zoneadm: zone 'zone03': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' に結合されません。
Preparing to install zone <zone03>.
Creating list of files to copy from the global zone.
Copying <2408> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
警告は出るけど、大丈夫です。
確認すると、STATUSがinstalledになります。
# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- zone03 installed /export/home/zone03 native shared
■zone のブート
bootすることにより、zoneをrunningの状態にします。
# zoneadm -z zone03 boot
zoneadm: zone 'zone03': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' に結合されません。
zoneadm: zone 'zone03': 警告: Pools facility not active; zone will not be bound to pool
こちらも警告は出るけどOKです。
確認すると、STATUSがrunningになります。
# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- zone03 running /export/home/zone03 native shared
3.Zone上のOSの設定
仮想上のOSの設定をすして、仮想OSのインストール完了です。
# zlogin -C MyZone
ここでネットワーク、言語や時間の設定をします。
これで終了!!!仮想OSが作成できました。
最近のコメント