ZFS ブート環境のシステムディスクのリストアは、以下の手順で行います。
注意
バックアップを行ったサーバと異なるサーバにリストアすることはできません。
1) 任意のファイルを追加します。
システムが起動できる場合、リストアが正しく行われていることを確認するため、リストア前に任意のファイルを追加します。
例)hosts_new ファイルを追加する場合
# cd /etc/inet # cp hosts hosts_new # ls host* |
2) システムを停止します。
# /usr/sbin/shutdown -i0 -g0 -y |
3) ディスク交換が必要な場合、ディスクを交換します。
交換作業は、各装置で定められた手順に従って実施してください。
注意
物理ディスクを交換せずに過去に GDS で使用していたディスクへリストアする場合には、CD-ROM 装置(またはネットワーク)からシステムを起動し、ルートクラスに登録されていた物理ディスクをすべて初期状態に戻します。CD-ROM 装置(またはネットワーク)からシステムを起動する方法については、手順4)を参照してください。
# format c0t0d0 |
4) ok プロンプトが表示されたら、対象サーバをシングルユーザモードで起動します。
4a) 内蔵 DAT 装置、オンボードの SAS インタフェース、または富士通製 SAS カードで外付けテープドライブを使用する場合
対象サーバに Solaris のインストール DVD-ROM をセットし、 DVD-ROM からシステムを起動します。
起動方法については、Solaris のマニュアルを参照してください。
4b) 富士通製 SCSI カードで外付けテープドライブを使用する場合
4b-1) OBP 変数の local-mac-address? 値を確認し、 true の場合、 false に変更します。
ok printenv local-mac-address? |
4b-2) 対象サーバと同一セグメント上にブートサーバを用意し、ネットワーク経由でシステムを起動します。
起動方法については、Solaris のマニュアルを参照してください。
5) 対象のシステムディスクにスライスを作成します。
バックアップ時に記録したパーティション情報を元に format(1M) コマンドを実行して、リストアの対象とする方のシステムディスクにスライスを作成します。
バックアップ時に記録したパーティション情報において、Tag欄に "-" (ハイフン)が表示されているパーティションは、GDSの占有スライスです。このパーティションは、作成しないでください。また、占有スライスが存在する場合は、削除してください。
6) ZFSファイルシステムをリストアします。
手順の概要は以下のとおりです。詳細は、SolarisおよびZFSのマニュアルを参照してください。
6-1) zfs createコマンドを使用して、リストア先のスライスにZFSストレージプールを作成します。
6-2) zfs receiveコマンドを使用して、テープ媒体からZFSスナップショットを復元します。
6-3) installbootコマンドなどを使用して、リストア先のスライスにブートブロックを作成します。
この段階では、手順6-1)で作成したZFSストレージプールのエクスポート(zpool exportコマンド)、および、システムの再起動は、実行しないでください。
7) リストアしたルートファイルシステムがマウントされていない場合はマウントします。
Solaris 11の場合、手順6)で有効にしたBE (Boot Environment)をマウントします。
マウント方法については、SolarisおよびZFSのマニュアルを参照してください。
以下の手順では、マウントポイントが/tmp/mntの場合の例を示します。
8) 共用クラスまたはローカルクラスを使用していて、かつ、「6.2.1 バックアップ手順」においてGDSの構成パラメタ
SDX_DB_FAIL_NUM=0の設定を行わなかった場合、GDSの構成パラメタの設定を行います。
構成ファイル /tmp/mnt/etc/opt/FJSVsdx/sdx.cf の最後に SDX_DB_FAIL_NUM=0 の設定を追加します。
# vi /tmp/mnt/etc/opt/FJSVsdx/sdx.cf
...
SDX_DB_FAIL_NUM=0 ←追加 |
9) GDS のシステムディスクの設定を削除します。
/tmp/mnt/kernel/drv/sfdsk.conf から sysvol-db と記述された行をすべて削除します。
# vi /tmp/mnt/kernel/drv/sfdsk.conf # # Copyright (c) 1998, by Fujitsu, Ltd. # All rights reserved. # name="sfdsk" parent="pseudo"; sysvol-db0="sd","2"; ←この行を削除する。 sysvol-db1="sd","18"; ←この行を削除する。 |
10) boot-archive ファイルを更新します。
10-1) /tmp/mnt/platform 配下に boot-archive ファイルがあるか確認します。
# ls /tmp/mnt/platform/`uname -m`/boot_archive |
10-2) boot-archive ファイルがある場合は、ファイル名が表示されますので、bootadm コマンドを実行して boot-archive ファイルを更新します。
その他の場合は、このコマンドは実行しないでください。
# /sbin/bootadm update-archive -R /tmp/mnt |
11) Solaris 11の場合、手順7)でマウントしたBEをアンマウントします。
アンマウント方法については、SolarisおよびZFSのマニュアルを参照してください。
12) ZFS ストレージプールをエクスポートします。
# zpool export rpool |
13) OpenBoot の boot-device プロパティを設定します。
手順は以下の3つの場合で異なります。
「上記以外の場合」
参照
SAN ブート環境の場合の手順は、以下のドキュメントを参照してください。
MPxIO を使用する場合
SPARC Enterprise SAN Boot環境構築ガイド (Leadvilleドライバ編)
https://updatesite.jp.fujitsu.com/unix/jp/download/driver/pfca-8info/
ETERNUS マルチパスドライバを使用する場合
SPARC Enterprise SAN Boot環境構築ガイド
https://updatesite.jp.fujitsu.com/unix/jp/download/driver/pfca-4/
13a-1) リストア先のスライスのデバイスパスを確認します。
以下のコマンドを実行して、リストア先のスライスのデバイスパスを調べて記録します。
# ls -l /dev/dsk | grep リストア先のスライス名 |
例)リストア先のスライスが c0t600000E00D0000000001060300040000d0s0 の場合
# ls -l /dev/dsk | grep c0t600000E00D0000000001060300040000d0s0 |
13a-2) リストア先のディスクの情報を確認します。
以下のコマンドを実行して、リストア先のスライスのデバイスパスを調べて記録します。
# prtconf -v リストア先のスライス名 |
例)リストア先のスライスが c0t600000E00D0000000001060300040000d0s0 の場合
# prtconf -v /dev/rdsk/c0t600000E00D0000000001060300040000d0s0 |
(*1) diskノード名( この例では disk@w500000e0d0460306,0 )
(*2) SAS Address ( この例では 500000e0d0460306 )
注意
MPxIO が無効になっている場合、"Paths from multipath bus adapters:" という行は表示されません。
13a-3) OpenBoot 環境に移行します。
# shutdown -y -g0 -i0 |
13a-4) リストア先のディスクが接続されているSAS HBAのデバイスパスを確認します。
以下のコマンドを実行して、リストア先のSAS HBAのデバイスパスを確認します。
ok probe-scsi-all |
例)リストア先のSAS HBAが 500000e0d0460306 の場合
ok probe-scsi-all |
(*1) デバイスパス
(*2) SAS Address ( 手順13a-2) の *2 で確認した SAS Address )
13a-5) boot-deviceプロパティを設定します。
手順13a-4) で確認したデバイスパスと、手順13a-2)diskノード名と、手順13a-1) で確認したスライス名を連結した値を、OBP の boot-deviceプロパティに設定します。
ok setenv boot-device /pci@8100/pci@4/pci@0/pci@0/LSI,sas@0/disk@w500000e0d0460306,0:a |
13a-6) multipath-boot?プロパティに false を設定します。
ok setenv multipath-boot? false |
13b-1) リストア先のスライスのデバイスパスを確認します。
以下のコマンドを実行して、リストア先のスライスのデバイスパスを調べて記録します。
# ls -l /dev/dsk | grep リストア先のスライス名 |
[Solaris 11.3 以前の例]
リストア先のスライスが c0t5000CCA0150FEA10d0s0 の場合
# ls -l /dev/dsk | grep c0t5000CCA0150FEA10d0s0 |
[Solaris 11.4 以降の例]
リストア先のスライスが c1t50000397683346AAd0s0 の場合
# ls -l /dev/dsk | grep c1t50000397683346AAd0s0 |
13b-2) リストア先のスライスの情報を確認します。
# prtconf -v /dev/rdsk/リストア先のスライス |
情報の確認方法は、OS のバージョンと、現在 MPxIO が有効になっているかどうかによって異なります。
MPxIO が有効になっているかどうかは、format(1M) コマンドの current サブコマンドで確認できます。リストア先のディスクの論理パス内に /scsi_vhci ディレクトリがある場合、MPxIO は有効です。
例:リストア先のディスクが c0t50000394882261A0d0 である場合
# format c0t50000394882261A0d0
format> current
Current Disk = c0t50000394882261A0d0: 00000000
<TOSHIBA-MBF2600RC-3706 cyl 64986 alt 2 hd 27 sec 668>
/scsi_vhci/disk@g50000394882261a0
/dev/chassis/SYS/HDD0/disk |
[Solaris 11.3 以前の場合]
現在 MPxIO が無効である場合
Hardware properties の obp-path パラメタを調べて記録します。
# prtconf -v /dev/rdsk/c0t5000CCA0150FEA10d0s0 disk, instance #0 Driver properties: ~ Hardware properties: ~ name='obp-path' type=string items=1 value='/pci@400/pci@2/pci@0/pci@e/scsi@0/disk@w5000cca0150fea11,0' ~ Device Minor Nodes: ~ |
現在 MPxIO が有効である場合
Paths from multipath bus adapters の obp-path パラメタを調べて記録します。
# prtconf -v /dev/rdsk/c0t5000CCA0150FEA10d0s0 |
[Solaris 11.4 以降の場合]
現在 MPxIO が無効である場合
Hardware properties の ddi-boot-path パラメタを調べて記録します。
# prtconf -v /dev/rdsk/c1t50000397683346AAd0s0 disk, instance ~ Driver properties: ~ Hardware properties: ~ name='ddi-boot-path' type=string items=1 value='/pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w50000397683346aa,0' ~ Device Minor Nodes: ~ |
現在 MPxIO が有効である場合
Paths from multipath bus adapters の ddi-boot-path パラメタを調べて記録します。
# prtconf -v /dev/rdsk/c1t50000397683346AAd0s0 disk, instance ~ Driver properties: ~ Hardware properties: ~ Paths from multipath bus adapters: ~ name='ddi-boot-path' type=string items=1 value='/pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w50000397683346aa,0' ~ Device Minor Nodes: ~ |
13b-3) OpenBoot 環境に移行します。
# halt |
注意
復元用緊急起動ディスクから起動している場合は、shutdown(1M)コマンドを使用してOpenBoot環境に移行してください。
13b-4) boot-device プロパティを設定します。
[Solaris 11.3 以前の例]
手順13b-2) で確認した obp-path パラメタと、手順13b-1) で確認したリストア先デバイスのスライス名を連結した値を、OBP の boot-device プロパティに設定します。
ok setenv boot-device /pci@400/pci@2/pci@0/pci@e/scsi@0/disk@w5000cca0150fea11,0:a |
[Solaris 11.4 以降の例]
手順13b-2) で確認した ddi-boot-path パラメタと、手順13b-1) で確認したリストア先デバイスのスライス名を連結した値を、OBP の boot-device プロパティに設定します。
ok setenv boot-device /pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w50000397683346aa,0:a |
13c-1) リストア先のスライスのデバイスパスを確認します。
以下のコマンドを実行して、リストア先のスライスのデバイスパスを調べて記録します。
# ls -l /dev/dsk | grep リストア先のスライス名 |
例)リストア先のスライスが c0t1d0s0 の場合
# ls -l /dev/dsk | grep c0t1d0s0 |
13c-2) OpenBoot 環境に移行します。
# halt |
注意
復元用緊急起動ディスクから起動している場合は、shutdown(1M)コマンドを使用してOpenBoot環境に移行してください。
13c-3) OpenBoot 環境でのデバイス名を確認します。
ok show-devs /pci@83,4000/FJSV,ulsa@2,1 |
ここで指定しているパス「 /pci@83,4000/FJSV,ulsa@2,1 」は、手順 13c-1) で表示されたパスから最終要素(この例では /sd@1,0:a )を除いたものです。
13c-4) boot-device プロパティを設定します。
手順 13c-3) での確認結果に応じて以下のコマンドを実行し、システムを起動します。
show-devs で表示されたパスの最終要素に "disk" というデバイス名が出力された場合
ok setenv boot-device /pci@83,4000/FJSV,ulsa@2,1/disk@1,0:a |
ここで指定しているパス「 /pci@83,4000/FJSV,ulsa@2,1/disk@1,0:a 」は、手順 13c-1) で表示されたパスの最終要素の @ より前の部分(この例では sd )を disk に置き換えたものです。
show-devs で表示されたパスの最終要素に "sd" というデバイス名が出力された場合
ok setenv boot-device /pci@83,4000/FJSV,ulsa@2,1/sd@1,0:a |
ここで指定しているパス「 /pci@83,4000/FJSV,ulsa@2,1/sd@1,0:a 」は、手順 13c-1) で表示されたパスです。
14) boot-device-index プロパティを設定します。
OpenBoot に boot-device-index プロパティがあるかどうか確認し、ある場合は boot-device-index プロパティを 0 に設定します。
ok printenv boot-device-index |
boot-device-index プロパティがある場合は、 "boot-device-index = 数値" と表示されます。この場合は、以下のコマンドを実行します。その他の場合は、以下のコマンドは実行しないでください。
ok setenv boot-device-index 0 |
15) local-mac-address? プロパティを設定します。
手順 4) で OBP 変数の local-mac-address? 値を false に変更した場合、 true に戻します。
ok printenv local-mac-address? |
16) システムを起動します。
ok boot |
17) 共用クラスおよびローカルクラスの構成や状態に異常がないことを確認します。
# sdxinfo |
18) 共用クラスまたはローカルクラスを使用している場合、GDSの構成パラメタの設定を元に戻します。
構成ファイル /etc/opt/FJSVsdx/sdx.cf の SDX_DB_FAIL_NUM=0 の行をコメントアウトします。
# vi /etc/opt/FJSVsdx/sdx.cf |
19) クラスタシステムの場合は、ルートクラスのクラスタリソースを削除します。
ここでの対象はルートクラスのみであり、ローカルクラスおよび共用クラスのクラスタリソースは削除しないでください。
以降では、以下のクラスが存在している場合の実行例を示します。
ルートクラス :System
ローカルクラス:class0001
共用クラス :class0002
ルートクラスのクラスリソースが存在することを確認します。
# /etc/opt/FJSVsdx/bin/sdxdcrsc -I |
ルートクラスのクラスリソースが表示されない場合は、次の手順 20) に進みます。
ルートクラスのクラスリソースが表示された場合は、ルートクラスのクラスリソースを削除します。
# /etc/opt/FJSVsdx/bin/sdxdcrsc -R -c System |
ルートクラスのクラスリソースが削除されたことを確認します。
以下のコマンドを実行し、対象のクラス名が表示されないことを確認してください。
# /etc/opt/FJSVsdx/bin/sdxdcrsc -I |
20) システムディスクのミラーリングを再設定します。
詳細は、「7.1.1 ZFS ブート環境のシステムディスクミラーリングの設定 (GDS ミラー方式)」または「7.2.1 ZFS ブート環境のシステムディスクミラーリングの設定 (ZFS ミラー方式)」を参照してください。
注意
ミラー先ディスクの初期化
システムディスクミラーリングの設定手順において、ミラー先ディスクにスライスを作成した後、以下のコマンドを実行し、ミラー先ディスクのスライスを初期化してください。ddコマンドの詳細については、ddコマンドのマニュアルを参照してください。使用方法やオプションの意味を確認し、適切なオプションを指定してください。
例) ミラー先ディスクが c1t0d0 の場合
# dd if=/dev/zero of=/dev/rdsk/c1t0d0s0 bs=1024k |
21) バックアップデータをリストアしたことにより、手順 1) で追加したファイルが消えていることを確認します。
# cd /etc/inet |