Skip to main content

Fujitsu

Japan

まっちーの仮想化講座
第13回:Oracle Solaris 10 ゾーンで物理から仮想に簡単移行

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コマンドを使ってゾーンを作成することも可能です。

Solaris 10 ゾーンの作成

移行元での作業が終わりましたので、これからは移行先での作業になります。
まずは、アーカイブと定義ファイルを確認しましょう。

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にて、ハッシュタグ #fjsparcOpen a new window までお願いします。