Solaris 10 10/09 インストールガイド (Solaris Live Upgrade とアップグレードの計画)

Procedure非大域ゾーンのあるシステムで UFS ファイルシステムを ZFS ルートプールに移行する方法

lucreate コマンドは、UFS ルート (/) ファイルシステムから ZFS ルートプールのブート環境を作成します。ZFS ルートプールは lucreate を使用する前に作成します。また、アップグレード可能かつブート可能にするために、ディスク全体ではなくスライス上に作成します。次に示す手順では、UFS ルート (/) ファイルシステムに関連する既存の非大域ゾーンが、ZFS ルートプール内の新しいブート環境にコピーされます。

次の例では、既存の非大域ゾーン myzone の非大域ゾーンルートが、UFS ルート (/) ファイルシステムにあります。ゾーン zzone のゾーンルートは、既存の ZFS ストレージプール pool 内の ZFS ファイルシステムにあります。Solaris Live Upgrade は、UFS ブート環境 c2t2d0s0 を ZFS ブート環境 zfs2BE に移行するために使用します。UFS ベースの myzone ゾーンが、Solaris Live Upgrade の操作前に作成された新しい ZFS ストレージプール mpool に移行されます。ZFS ベースの非大域ゾーン zzone はクローンが ZFS プール pool 内に保持され、新しい zfs2BE ブート環境に移行されます。

  1. 初めて Solaris Live Upgrade を実行するときには、次の手順を実行します。


    注 –

    Solaris Live Upgrade を使って新規 ZFS ブート環境を作成するためには、少なくとも Solaris 10 10/08 リリースがインストールされている必要があります。それより前のリリースの ZFS および Solaris Live Upgrade ソフトウェアでは、この作業を実行することはできません。


    1. 必要に応じて、システム上の既存の Solaris Live Upgrade パッケージを削除します。新しいリリースにアップグレードする場合は、そのリリースのパッケージをインストールしてください。

      3 つの Solaris Live Upgrade パッケージ SUNWluuSUNWlur、および SUNWlucfg は、Solaris Live Upgrade を使ってアップグレードするのに必要なソフトウェアを構成します。これらのパッケージには、既存のソフトウェア、新しい機能、およびバグ修正が含まれています。Solaris Live Upgrade を使用する前に、既存パッケージを削除しないで新しいパッケージをシステムにインストールすると、ターゲットリリースへのアップグレードは失敗します。


      # pkgrm SUNWlucfg SUNWluu SUNWlur
      
    2. アップグレードのターゲットリリースから、新しい Solaris Live Upgrade パッケージをインストールします。詳細については、「Solaris Live Upgrade のインストール」を参照してください。

    3. Solaris Live Upgrade をインストールまたは実行する前に、次のパッチをインストールします。これらのパッチにより、リリースに最新のバグ修正と新機能がすべて含まれるようになります。

      SunSolve で最新のパッチリストを確認してください。SunSolve の Web サイトで、Infodoc 206844 (以前の 72099) を検索してください。

      • スーパーユーザーになるか、同等の役割を引き受けます。

      • パッチをローカルディスクに保存する場合は、/var/tmp/lupatches のようなディレクトリを作成し、パッチをそのディレクトリにダウンロードします。

      • SunSolve の Web サイトから、パッチリストを取得します。

      • パッチのディレクトリに移動します。


        # cd /var/tmp/lupatches
        
      • patchadd コマンドを使用してパッチをインストールします。


        # patchadd patch_id
        

        patch_id はパッチの番号です。複数のパッチ名を指定する場合は、スペースで区切ります。


        注 –

        パッチは、Infodoc 206844 で指定された順序で適用する必要があります。


      • 必要に応じてシステムをリブートします。いくつかのパッチは、有効にするためにリブートする必要があります。

        x86 のみ: システムをリブートする必要があります。そうしないと、Solaris Live Upgrade は失敗します。


        # init 6
        
  2. ZFS ルートプールを作成します。

    ZFS ルートプールは、ブート可能かつアップグレード可能にするため単一のスライス上に作成します。


    # zpool create rpool c3t0d0s0
    

    この例で作成する新しい ZFS の名前は rpool です。このプールが、ブート可能なスライス c3t0d0s0 に作成されます。

    新規ルートプールの作成の詳細については、『Solaris ZFS 管理ガイド』を参照してください。

  3. UFS ルート (/) ファイルシステムを新しい ZFS ルートプールに移行します。


    # lucreate [-c ufsBE] -n new-zfsBE -p rpool
    
    -c ufsBE

    現在の UFS ブート環境に ufsBE という名前を割り当てます。このオプションは必須ではなく、また、最初のブート環境の作成時にのみ使用します。lucreate コマンドを初めて実行する場合に -c オプションを省略すると、デフォルトの名前が自動的に作成されます。

    -n new-zfsBE

    作成するブート環境に new-zfsBE という名前を割り当てます。名前は、システム上で一意となるように指定する必要があります。

    -p rpool

    新しく作成した ZFS ルート (/) ファイルシステムを、rpool で定義した ZFS ルートプールに配置します。

    すべての非共有非大域ゾーンは、クリティカルファイルシステムと共に、新しいブート環境にコピーされます。新しい ZFS ブート環境の作成には、しばらく時間がかかることがあります。UFS ファイルシステムのデータが ZFS ルートプールにコピーされます。非アクティブなブート環境が作成された場合は、luupgrade コマンドまたは luactivate コマンドを使用して、新しい ZFS ブート環境をアップグレードまたはアクティブにすることができます。

  4. (省略可能) ブート環境が完成したことを確認します。

    lustatus コマンドは、ブート環境の作成が完了してブート可能であるかどうかを報告します。


    # lustatus
    boot environment   Is         Active   Active     Can	    Copy 
    Name               Complete   Now	  OnReboot   Delete	 Status 
    ------------------------------------------------------------------------ 
    ufsBE               yes       yes      yes        no         - 
    new-zfsBE           yes       no       no        yes         -
  5. (省略可能) システム上の基本データセット情報を確認します。

    list コマンドで、システム上のすべてのデータセットの名前を表示できます。この例では、rpool が ZFS プールの名前、new-zfsBE が新しく作成した ZFS ブート環境の名前です。


    # zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT 
    rpool                      9.29G  57.6G    20K  /rpool
    rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
    rpool/ROOT/new-zfsBE       5.38G  57.6G   551M  /tmp/.alt.luupdall.110034
    rpool/dump                 1.95G      -  1.95G  - 
    rpool/swap                 1.95G      -  1.95G  - 

    表示される新しいブート環境のマウントポイントは、luactivate コマンドが実行されるまでの一時的なものです。/dump ボリュームと /swap ボリュームは、元の UFS ブート環境と共有されませんが、ZFS ルートプール内およびルートプール内のブート環境内で共有されます。


例 14–1 非大域ゾーンがインストールされている UFS ルート (/) ファイルシステムから ZFS ルートプールへの移行

次の例では、既存の非大域ゾーン myzone の非大域ゾーンルートが、UFS ルート (/) ファイルシステムにあります。ゾーン zzone のゾーンルートは、既存の ZFS ストレージプール pool 内の ZFS ファイルシステムにあります。Solaris Live Upgrade は、UFS ブート環境 c2t2d0s0 を ZFS ブート環境 zfs2BE に移行するために使用します。UFS ベースの myzone ゾーンが、Solaris Live Upgrade の操作前に作成された新しい ZFS ストレージプール mpool に移行されます。ZFS ベースの非大域ゾーン zzone はクローンが ZFS プール pool 内に保持され、新しい zfs2BE ブート環境に移行されます。


# zoneadm list -iv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - myzone           installed  /zones/myzone                  native   shared
   - zzone            installed  /pool/zones                    native   shared

# zpool create mpool mirror c3t0d0s0 c4td0s0
# lucreate -c c1t2d0s0 -n zfs2BE -p mpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <c1t2d0s0>.
Creating initial configuration for primary boot environment <c1t2d0s0>.
The device </dev/dsk/c1t2d0s0> is not a root device for any 
boot environment; cannot get BE ID.
PBE configuration successful: PBE name <c1t2d0s0> PBE Boot Device 
</dev/dsk/c1t2d0s0>.
Comparing source boot environment <c1t2d0s0> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot
environment; cannot get BE ID.
Creating configuration for boot environment <zfsBE>.
Source boot environment is <c1t2d0s0>.
Creating boot environment <zfsBE>.
Creating file systems on boot environment <zfsBE>.
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>.
Populating file systems on boot environment <zfsBE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfsBE>.
Creating compare database for file system </>.
Making boot environment <zfsBE> bootable.
Creating boot_archive for /.alt.tmp.b-cBc.mnt
updating /.alt.tmp.b-cBc.mnt/platform/sun4u/boot_archive
Population of boot environment <zfsBE> successful.
Creation of boot environment <zfsBE> successful.

lucreate の操作が完了したら、この例で示すように lustatus コマンドを使ってブート環境の状態を表示します。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
c1t2d0s0                   yes      yes    yes       no     -         
zfsBE                      yes      no     no        yes    -         

# zoneadm list -iv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - myzone           installed  /zones/myzone                  native   shared
   - zzone            installed  /pool/zones                    native   shared

次に、luactivate コマンドで新しい ZFS ブート環境をアクティブにします。次に例を示します。


# luactivate zfsBE
**********************************************************************

The target boot environment has been activated. It will be used when you 
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You 
MUST USE either the init or the shutdown command when you reboot. If you 
do not use either init or shutdown, the system will not boot using the 
target BE.

**********************************************************************
In case of a failure while booting to the target BE, the following process 
needs to be followed to fallback to the currently working boot environment:

1. Enter the PROM monitor (ok prompt).

2. Change the boot device back to the original boot environment by typing:

     setenv boot-device /pci@1f,0/pci@1/scsi@4,1/disk@2,0:a

3. Boot to the original boot environment by typing:

     boot

**********************************************************************

Modifying boot archive service
Activation of boot environment <ZFSbe> successful.

システムをリブートして ZFS ブート環境にします。


# init 6
# svc.startd: The system is coming down.  Please wait.
svc.startd: 79 system services are now being stopped.
.
.
.

この例のように、新しいブート環境および移行されたゾーンの状態を確認します。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
c1t2d0s0                   yes      yes    yes       no     -         
zfsBE                      yes      no     no        yes    -         

UFS ブート環境に戻す場合は、ZFS ブート環境で作成したすべての ZFS ストレージプールをもう一度インポートしてください。これらは、UFS ブート環境で自動的に使用可能にはならないからです。元の UFS ブート環境に切り替えると、次のようなメッセージが表示されます。


# luactivate c1t2d0s0
WARNING: The following files have changed on both the current boot 
environment <ZFSbe> zone <global> and the boot environment to be activated <c1t2d0s0>:
 /etc/zfs/zpool.cache
INFORMATION: The files listed above are in conflict between the current 
boot environment <ZFSbe> zone <global> and the boot environment to be 
activated <c1t2d0s0>. These files will not be automatically synchronized 
from the current boot environment <ZFSbe> when boot environment <c1t2d0s0>