2012年6月12日
Oracle Solaris 11には、ゾーンという仮想OSを作る機能があります。これは、Oracle Solaris 10からある機能なのですが、Oracle Solaris 11では、仮想OSとしてOracle Solaris 11だけでなく、Oracle Solaris 10も標準機能としてサポートしています。
そこで今回は、Oracle Solaris 11の上にOracle Solaris 10 ゾーンを作成する方法をご紹介したいと思います。
Solaris 11の上にSolaris 10の環境を作るには、移行元となるSolaris 10のシステムが必要です。残念ながら新規にSolaris 10 ゾーンを作成することはできません。
作成方法には、移行元が物理環境の場合(Physical to Virtual:P2V)と仮想環境の場合(Virtual to Virtual:V2V)の2通りがあります。今回はP2Vで実施したいと思います。
移行元の環境を確認するために、zonep2vchkツールが用意されています。zonep2vchkツールは、Solaris 11の環境にインストールされていますので、これをSolaris 10の環境にコピーします。
root@s11-0:~# ls -l /usr/sbin/zonep2vchk
-r-xr-xr-x 1 root bin 145467 10月 21日 2011年 /usr/sbin/zonep2vchk
ここでは、Solaris 11と同じ /usr/sbin ディレクトリにコピーしました。これを実行してみましょう。
Sol10# /usr/sbin/zonep2vchk -T S11
--Executing Version: 1.0.5-11-16135
- Source System: t5120-ldom1
Solaris Version: Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC
Solaris Kernel: 5.10 Generic_142909-17
Platform: sun4v SUNW,SPARC-Enterprise-T5120
- Target System:
Solaris_Version: Solaris 11
Zone Brand: solaris10 (Solaris 10 Container)
IP type: exclusive
--Executing basic checks
----省略----
- The following SMF services will not work in a zone:
svc:/network/iscsi/initiator:default
svc:/network/nfs/server:default
svc:/system/iscsitgt:default
Basic checks compete, 4 issue(s) detected
--Total issue(s) detected: 4
-T オプションはターゲットとなるシステム、すなわち移行先のシステムを指定します。移行先がSolaris 11の場合、”S11”と指定します。
コマンドの出力を見てみると、移行元で動作している三つのSMFサービスがゾーン上で動作しないという結果が出ています。もし、移行後にこれらのサービスが停止してしまうと困る場合には、Solaris 11上への移行はできないことになります。
移行元の確認ができたら、移行元でアーカイブを作成します。アーカイブを作成する方法は色々あるのですが、今回はFlashアーカイブで作成したいと思います。
前回NFS共有を設定した領域を使用して、アーカイブをSolaris 11上に直接作ろうと思いますので、まずはNFS領域をマウントします。
Sol10# mount -F nfs 192.168.10.195:/pool1/sharefs1 /mnt
では、Flashアーカイブを作成しましょう。
Sol10# flarcreate -n s10-system /mnt/s10-system.flar
全体フラッシュ
整合性をチェックしています...
整合性チェック完了。
precreation スクリプトを実行しています...
precreation スクリプトの実行を完了しました。
アーカイブのサイズを確認中...
アーカイブのサイズは、約 4.90GB です。
アーカイブを作成中...
アーカイブの作成が完了しました。
postcreation スクリプトを実行しています...
postcreation スクリプトの実行を完了しました。
pre-exit スクリプトを実行しています...
pre-exit スクリプトの実行を完了しました。
次に、ゾーンの定義ファイルを作成します。ゾーンの定義ファイルもzonep2vchkツールを使用して作成することができます。-c オプションをつけて実行すると、定義ファイルが出力されるので、それをファイルに保存します。
Sol10# /usr/sbin/zonep2vchk -T S11 -c > /mnt/s10-config
zonep2vchkツールで定義ファイルを作らずに、移行先でzonecfgコマンドを使ってゾーンを作成することも可能です。
移行元での作業が終わりましたので、これからは移行先での作業になります。
まずは、アーカイブと定義ファイルを確認しましょう。
root@s11-0:~# ls -lh /pool1/sharefs1/
total 10291461
-rw-r--r-- 1 root root 1.1K 4月 23日 16:17 s10-config
-rw-r--r-- 1 root root 4.9G 4月 23日 16:09 s10-system.flar
ゾーンを作成する前に、zonep2vchkツールで作成した定義ファイルを修正する必要があります。
ここでは、必要最小限の修正をします。lower-linkの値が「changeme」となっていますので、これを「auto」に修正します。autoに設定すると、ゾーンがブートするたびに使用するVNICを作成します。
root@s11-0:~# vi /pool1/sharefs1/s10-config
create -b
set zonepath=/zones/t5120-ldom1
set brand=solaris10
add attr
set name="zonep2vchk-info"
set type=string
set value="p2v of host t5120-ldom1"
end
set ip-type=exclusive
# Uncomment the following to retain original host hostid:
# set hostid=84fb9dc3
# Max procs and lwps based on max_uproc/v_proc
set max-processes=20000
set max-lwps=40000
add attr
set name=num-cpus
set type=string
set value="original system had 8 cpus"
end
# Only one of dedicated or capped cpu can be used.
# Uncomment the following to use cpu caps:
# add capped-cpu
# set ncpus=8.0
# end
# Uncomment the following to use dedicated cpu:
# add dedicated-cpu
# set ncpus=8
# end
# Uncomment the following to use memory caps.
# Values based on physical memory plus swap devices:
# add capped-memory
# set physical=2048M
# set swap=4095M
# end
# Original vnet0 interface configuration:
# Statically defined 192.168.10.193 (t5120-ldom1)
# Factory assigned MAC address 0:14:4f:f8:4e:3
add anet
set linkname=vnet0
set lower-link= change-me ← 「auto」に修正
# Uncomment the following to retain original link configuration:
# set mac-address=0:14:4f:f8:4e:3
end
exit
では、この定義ファイルを使ってゾーンを作成します。
root@s11-0:~# zonecfg -z s10zone -f /pool1/sharefs1/s10-config
root@s11-0:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- s10zone configured /zones/t5120-ldom1 solaris10 excl
-z オプションはゾーン名の指定、-f オプションは定義ファイルの指定です。
次に、アーカイブを使ってゾーンのインストールを行います。
root@s11-0:~# zoneadm -z s10zone install -a /pool1/sharefs1/s10-system.flar -u
A ZFS file system has been created for this zone.
Progress being logged to /var/log/zones/zoneadm.20120423T072220Z.s10zone.install
Installing: This may take several minutes...
Postprocessing: This may take a while...
Postprocess: Updating the image to run within a zone
Result: Installation completed successfully.
Log saved in non-global zone as /zones/t5120-ldom1/root/var/log/zones/zoneadm.20120423T072220Z.s10zone.install
インストールが終わったら、確認をしてみましょう。s10zoneのSTATUSがinstalled、BRANDがsolaris10になっていることを確認してください。
root@s11-0:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- s10zone installed /zones/t5120-ldom1 solaris10 excl
ゾーンのインストールが終わりましたので、あとは起動して初期設定をする必要があります。これは通常のゾーンでも必要となる操作です。
ゾーンを起動して、zlogin ?C コマンドでゾーンのコンソールに接続します。
root@s11-0:~# zoneadm -z s10zone boot
root@s11-0:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
2 s10zone running /zones/t5120-ldom1 solaris10 excl
root@s11-0:~# zlogin -C s10zone
[Connected to zone 's10zone' console]
コンソール接続後は、対話形式で初期設定を行います。
Select a Language
0. English
1. Japanese
Please make a choice (0 - 1), or press h or ? for help: 1
・・・・省略・・・・
初期設定が終わったら、ログインして確認しましょう。ゾーン上でSolaris 10が動作していることがわかると思います。
Sol10# zonename
s10zone
Sol10# cat /etc/release
Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC
Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
いかがでしたでしょうか。思ったより簡単にできましたね。
実際の業務で使っているサーバを移行する場合には、このほかにもミドルウェアや業務アプリの対応など考慮する必要がありますが、Solaris 10からSolaris 11への移行方法の一つとして検討してみてはいかがでしょうか。
※Oracle Solaris ゾーンは、Oracle Solaris コンテナとも表記されます。
応援メッセージはtwitterにて、ハッシュタグ #fjsparc までお願いします。