この章では、非大域ゾーンがインストールされているシステムで UFS ルート (/) ファイルシステムから ZFS ルートプールに移行するための、詳細な手順について説明します。非大域ゾーンは、UFS ファイルシステムの共有ファイルシステム上にあります。
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 ブート環境に移行されます。
初めて Solaris Live Upgrade を実行するときには、次の手順を実行します。
Solaris Live Upgrade を使って新規 ZFS ブート環境を作成するためには、少なくとも Solaris 10 10/08 リリースがインストールされている必要があります。それより前のリリースの ZFS および Solaris Live Upgrade ソフトウェアでは、この作業を実行することはできません。
必要に応じて、システム上の既存の Solaris Live Upgrade パッケージを削除します。新しいリリースにアップグレードする場合は、そのリリースのパッケージをインストールしてください。
3 つの Solaris Live Upgrade パッケージ SUNWluu、SUNWlur、および SUNWlucfg は、Solaris Live Upgrade を使ってアップグレードするのに必要なソフトウェアを構成します。これらのパッケージには、既存のソフトウェア、新しい機能、およびバグ修正が含まれています。Solaris Live Upgrade を使用する前に、既存パッケージを削除しないで新しいパッケージをシステムにインストールすると、ターゲットリリースへのアップグレードは失敗します。
# pkgrm SUNWlucfg SUNWluu SUNWlur |
アップグレードのターゲットリリースから、新しい Solaris Live Upgrade パッケージをインストールします。詳細については、「Solaris Live Upgrade のインストール」を参照してください。
Solaris Live Upgrade をインストールまたは実行する前に、次のパッチをインストールします。これらのパッチにより、リリースに最新のバグ修正と新機能がすべて含まれるようになります。
SunSolve で最新のパッチリストを確認してください。SunSolve の Web サイトで、infodoc 206844 (以前の 72099) を検索してください。
スーパーユーザーになるか、同等の役割を引き受けます。
パッチをローカルディスクに保存する場合は、/var/tmp/lupatches のようなディレクトリを作成し、パッチをそのディレクトリにダウンロードします。
SunSolve の Web サイトから、パッチリストを取得します。
パッチのディレクトリに移動します。
# cd /var/tmp/lupatches |
patchadd コマンドを使用してパッチをインストールします。
# patchadd patch_id |
patch_id はパッチの番号です。複数のパッチ名を指定する場合は、スペースで区切ります。
パッチは、info doc 206844 で指定されている順序で適用してください。
必要に応じてシステムをリブートします。いくつかのパッチは、有効にするためにリブートする必要があります。
x86 のみ: システムをリブートする必要があります。そうしないと、Solaris Live Upgrade は失敗します。
# init 6 |
ZFS ルートプールを作成します。
ZFS ルートプールは、ブート可能かつアップグレード可能にするため単一のスライス上に作成します。
# zpool create rpool c3t0d0s0 |
この例で作成する新しい ZFS の名前は rpool です。このプールが、ブート可能なスライス c3t0d0s0 に作成されます。
新規ルートプールの作成の詳細については、『Solaris ZFS 管理ガイド』を参照してください。
UFS ルート (/) ファイルシステムを新しい ZFS ルートプールに移行します。
# lucreate [-c ufsBE] -n new-zfsBE -p rpool |
現在の UFS ブート環境に ufsBE という名前を割り当てます。このオプションは必須ではなく、また、最初のブート環境の作成時にのみ使用します。lucreate コマンドを初めて実行する場合に -c オプションを省略すると、デフォルトの名前が自動的に作成されます。
作成するブート環境に new-zfsBE という名前を割り当てます。名前は、システム上で一意となるように指定する必要があります。
新しく作成した ZFS ルート (/) ファイルシステムを、rpool で定義した ZFS ルートプールに配置します。
すべての非共有非大域ゾーンは、クリティカルファイルシステムと共に、新しいブート環境にコピーされます。新しい ZFS ブート環境の作成には、しばらく時間がかかることがあります。UFS ファイルシステムのデータが ZFS ルートプールにコピーされます。非アクティブなブート環境が作成された場合は、luupgrade コマンドまたは luactivate コマンドを使用して、新しい ZFS ブート環境をアップグレードまたはアクティブにすることができます。
(省略可能) ブート環境が完成したことを確認します。
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 - |
(省略可能) システム上の基本データセット情報を確認します。
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 ルートプール内およびルートプール内のブート環境内で共有されます。
次の例では、既存の非大域ゾーン 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> |