ここでは、プロキシボリュームによるスナップショットを使用して、運用ドメインの論理ボリュームのデータを、運用ドメインとは異なるドメインに属しているバックアップサーバからバックアップ/リストアする方法について説明します。
業務運用中に、マスタボリュームから分離したプロキシボリュームのデータをテープにバックアップします。
分離するプロキシボリュームのデータの整合性を確保するため、プロキシボリュームを分離するときに一時的に業務を停止します。
参考
スナップショットデータの整合性
業務を停止せずにプロキシボリュームを分離する場合は、ボリュームのデータを管理しているファイルシステムやデータベースシステムといったソフトウェア固有の方法で、データの整合性を確保する必要があります。詳細については、「3.17 スナップショットデータの整合性」を参照してください。
業務で使用しているマスタボリュームからプロキシボリュームが分離されている状態でマスタボリュームのデータが破損した場合は、マスタボリュームのデータをプロキシボリュームからリストアすることができます。
リストアを行う際には、一時的に、ボリュームへのアクセスを停止する必要があります。
業務で使用しているマスタボリュームとプロキシボリュームが結合されている状態でマスタボリュームのデータが破損した場合は、プロキシボリュームのデータも破損するため、マスタボリュームのデータをテープからリストアします。
リストアは、業務を停止し、マスタボリュームが使用されていない状態で行います。
参考
ここでは、バックアップサーバ Node3 からマスタボリューム Volume1 を構成するすべてのディスクにアクセスできる場合の例を示しています。
参考
バックアップサーバ Node3 からマスタボリューム Volume1 を構成するすべてのディスクにアクセスでき、かつ、マスタとプロキシの間の等価性維持においてディスク装置のコピー機能を使用している場合は、テープからのリストアの際に、プロキシボリューム Volume2 を分離する必要はありません。
参考
バックアップサーバからマスタボリュームを構成するディスクにアクセスできない場合は、プロキシボリューム Volume2 を分離した状態で、テープからプロキシボリュームにデータをコピーした後、プロキシボリュームを用いてマスタボリュームのデータを復元します。
注意
リソース登録
バックアップサーバがクラスタドメイン (バックアップドメインと呼ぶ) に属している場合、運用ドメインでリソース登録したディスクや、バックアップドメインでシャドウクラスに登録するディスクは、バックアップドメインではリソース登録しないでください。リソース登録の詳細については、「6.3 共用ディスク装置のリソース登録」を参照してください。
1) マスタボリュームの作成
運用ドメインにおいて、業務で使用するマスタボリュームを作成します。
ここでは、ノード Node1 および Node2 から共用される共用クラス Class1 に、ディスク sda および sdb で構成されるミラーグループ Group1 を作成し、ミラーボリューム Volume1 を作成する手順を示します。
# sdxdisk -M -c Class1 -a type=shared,scope=Node1:Node2 -d sda=Disk1,sdb=Disk2 # sdxdisk -C -c Class1 -g Group1 -d Disk1,Disk2 |
2) プロキシボリュームの作成と結合
運用ドメインにおいて、マスタボリュームのコピー先となるプロキシボリュームを作成し、マスタボリュームと結合します。以下の設定を運用ドメインのノード Node1 または Node2 で実施します。
2-1) プロキシボリュームの作成
マスタボリューム Volume1 が属している共用クラス Class1 に、Volume1 と同じサイズのプロキシボリュームを作成します。
ここでは、ディスク sdc のみで構成されるミラーグループ Group2 を作成し、ミラーボリューム Volume2 を作成する手順を示します。
# sdxdisk -M -c Class1 -d sdc=Disk3 # sdxdisk -C -c Class1 -g Group2 -d Disk3 # sdxvolume -M -c Class1 -g Group2 -v Volume2 -s 1048576 |
2-2) プロキシボリュームの停止
プロキシボリューム Volume2 を全ノードで停止します。
# sdxvolume -F -c Class1 -v Volume2 -e allnodes |
2-3) プロキシボリュームの結合
プロキシボリューム Volume2 をマスタボリューム Volume1 に関連付けて結合します。
# sdxproxy Join -c Class1 -m Volume1 -p Volume2 |
コマンド復帰後に Volume1 から Volume2 への等価性コピーが実行され、コピーが完了すると、Volume1 と Volume2 は等価性維持状態になります。
3) プロキシボリュームの分離
プロキシボリュームをマスタボリュームから分離します。以下の作業を運用ドメインのノード Node1 または Node2 で実施します。
参考
ここでは、プロキシボリュームを分離する際に、業務を停止することによってデータの整合性を確保します。ボリュームのデータを管理しているファイルシステムやデータベースシステムといったソフトウェアが、分離されたプロキシボリュームのデータの整合性を保証する機能や整合性を修復する機能を備えている場合は、手順 3-2) および 3-4) を実施する必要はありません。その代わりに、それらのソフトウェア固有の方法で、整合性を確保する操作を行います。「3.17 スナップショットデータの整合性」を参照してください。
3-1) プロキシボリュームの状態の確認
マスタボリューム Volume1 とプロキシボリューム Volume2 が等価性維持状態になっていることを確認します。
プロキシボリューム Volume2 が結合状態であることを確認します。PROXY フィールドに Join と表示されていれば結合状態です。
# sdxinfo -V -c Class1 -o Volume2 -e long
OBJ NAME TYPE CLASS GROUP DISK MASTER PROXY ...
------ ------- ------ ------- ------- ------ ------ ----- ...
volume * mirror Class1 Group2 * * * ...
volume Volume2 mirror Class1 Group2 * Volume1 Join ...
volume * mirror Class1 Group2 * * * ... |
プロキシボリューム Volume2 の、すべてのスライスのデータが正当な状態 (STOP) であることを確認します。
# sdxinfo -S -c Class1 -o Volume2
OBJ CLASS GROUP DISK VOLUME STATUS
------ ------- ------- ------- ------- --------
slice Class1 Group2 Disk3 Volume2 STOP |
データが正当な状態 (STOP) ではない場合は、「D.1.1 スライス状態に関する異常」を参照してスライスの状態を復旧してください。
3-2) 業務の停止
分離するプロキシボリューム Volume2 のデータの整合性を確保するため、ノード Node1 および Node2 において、マスタボリューム Volume1 を使用しているアプリケーションを停止します。
Volume1 をファイルシステムとして使用している場合は、アンマウントします。
3-3) プロキシボリュームの分離
プロキシボリューム Volume2 をマスタボリューム Volume1 から分離します。
# sdxproxy Part -c Class1 -p Volume2 -a pjrm=off |
注意
プロキシ用の高速等価性モード
バックアップサーバ Node3 において、プロキシボリューム Volume2 のデータをテープにバックアップする際に、Node3 から Volume2 への書込みが行われる場合があります。運用ドメインの GDS は Node3 からの書込みを認識できないため、分離するプロキシボリュームのプロキシ用の高速等価性回復モードをオンに設定した場合、Node3 から更新された部分が再結合や復元の際に等価性回復コピーの対象とならないことがあります。この場合、マスタボリューム Volume1 とプロキシボリューム Volume2 の等価性が保証できなくなります。このため、分離するプロキシボリュームの高速等価性回復モードをオフに設定しておく必要があります。
マスタとプロキシの間の等価性コピーにおいてディスク装置のコピー機能を使用している場合は、ディスク装置のコピー機能が Node3 からの書込みを認識します。プロキシボリュームの高速等価性回復モードの設定値に関わらず、再結合の際の等価性回復コピーではディスク装置のコピー機能によってマスタとプロキシの差分のみがコピーされます。しかし、復元の際の等価性回復コピーはソフトコピー機能によって行われます。したがって、分離するプロキシボリュームの高速等価性回復モードはオフに設定しておく必要があります。
3-4) 業務の再開
手順 3-2) でファイルシステムをアンマウントした場合は、再度マウントします。
手順 3-2) で停止したアプリケーションを再開します。
3-5) プロキシボリュームの停止
プロキシボリューム Volume2 への不当なアクセスを防止するため、Volume2 を停止します。
# sdxvolume -F -c Class1 -v Volume2 -e allnodes |
4) プロキシボリュームの構成の確認
運用ドメインのノード Node1 または Node2 において、バックアップの対象となるプロキシボリューム Volume2 の構成を確認します。
# sdxinfo -c Class1 -o Volume2 # sdxinfo -c Class1 -o Volume2 -e long |
5) バックアップ用シャドウボリュームの作成
バックアップサーバ Node3 において、バックアップ用のボリューム (シャドウボリューム) を作成します。
# sdxshadowdisk -M -c Class2 -d sdc=Disk3 # sdxshadowdisk -C -c Class2 -g Group2 -d Disk3 # sdxshadowvolume -M -c Class2 -g Group2 -v Volume2 -s 1048576 |
注意
不適切な構成のシャドウボリュームに書込みを行うと、マスタボリュームのデータが破損することがあります。sdxinfo コマンドを使用して、シャドウボリュームの構成が適切であることを必ず確認してください。
ポイント
手順 2) で作成したプロキシボリュームと同じ構成にする必要があります。
シャドウディスクのディスク名は、運用ドメインで割り当てられているディスク名と同じにする必要があります。運用ドメインで割り当てたディスク名は、手順 4) の sdxinfo コマンドで表示されたディスク情報の NAME フィールドで確認できます。
クラス名、グループ名、ボリューム名は自由に割り当てることができます。
シャドウグループにシャドウディスクを接続する順序は、運用ドメインでグループにディスクを接続した順序と同じにする必要があります。運用ドメインのディスクの接続順序は、手順 4) の sdxinfo コマンドで表示されたグループ情報の DISKS フィールドで確認できます。
ストライプタイプのシャドウグループのストライプ幅は、運用ドメインのストライプグループのストライプ幅と同じにする必要があります。運用ドメインで設定したストライプ幅は、手順 4) の sdxinfo -e long コマンドで表示されたグループ情報の WIDTH フィールドで確認できます。
シャドウボリュームは、プロキシボリュームと同じサイズで作成する必要があります。プロキシボリュームのサイズは、手順 4) の sdxinfo コマンドで表示されたボリューム情報の BLOCKS フィールドで確認できます。
ボリュームが複数ある場合、手順 4) の sdxinfo コマンドで表示されたボリューム情報の 1STBLK フィールドの値 (先頭ブロック番号) が小さい順に、対応するシャドウボリュームを作成する必要があります。
6) テープへのバックアップ
バックアップサーバ Node3 において、シャドウボリュームのデータをテープにバックアップします。シャドウボリューム Volume2 のデータをテープ装置 /dev/st0 のテープ媒体にバックアップする例を示します。
参照
バックアップ方法の詳細については、バックアップするファイルシステムや使用する各コマンドのマニュアルを参照してください。
6a) dd(1) コマンドを使用してデータをバックアップする場合
# dd if=/dev/sfdsk/Class2/dsk/Volume2 of=/dev/st0 bs=32768 |
6b) tar(1) コマンドを使用して ext4 ファイルシステムをバックアップする場合
6b-1) シャドウボリューム Volume2 を読書き用のアクセスモード (rw) で起動します。
# sdxshadowvolume -F -c Class2 -v Volume2 # sdxshadowvolume -N -c Class2 -v Volume2 -e mode=rw |
6b-2) シャドウボリューム Volume2 上の、ext4 ファイルシステムの整合性のチェックと修復を行います。
手順 3) においてプロキシボリュームを分離する際にファイルシステムをアンマウントした場合は、本手順を実施する必要はありません。
# fsck -t ext4 -y /dev/sfdsk/Class2/dsk/Volume2 |
6b-3) シャドウボリューム Volume2 上の ext4 ファイルシステムを、一時的なマウントポイント /mnt1 に読取り専用モードでマウントします。
# mkdir /mnt1 # mount -t ext4 -o ro /dev/sfdsk/Class2/dsk/Volume2 /mnt1 |
6b-4) ファイルシステムのデータをテープにバックアップします。
# cd /mnt1 # tar cvf /dev/st0 . |
6b-5) 手順 6b-3) でマウントしたファイルシステムをアンマウントします。
# cd / # umount /mnt1 |
7) シャドウボリュームの削除
バックアップが完了したら、シャドウボリュームへの不当なアクセスを防ぐため、シャドウボリュームを削除します。バックアップサーバ Node3 で以下の作業を実施します。
# sdxshadowvolume -F -c Class2 -v Volume2 # sdxshadowvolume -R -c Class2 -v Volume2 # sdxshadowgroup -R -c Class2 -g Group2 # sdxshadowdisk -R -c Class2 -d Disk3 |
8) プロキシボリュームの再結合
プロキシボリュームをマスタボリュームに再結合します。以下の作業を運用ドメインのノード Node1 または Node2 で実施します。
8-1) プロキシボリュームの再結合
プロキシボリューム Volume2 をマスタボリューム Volume1 に再結合します。
# sdxproxy Rejoin -c Class1 -p Volume2 |
コマンドが復帰した後、Volume1 から Volume2 への等価性コピー処理が実行されます。
8-2) コピー状況の確認
等価性コピー処理の状況は、sdxinfo -S コマンドで確認することができます。コピー先のプロキシボリューム Volume2 のスライスは、コピー処理中は COPY 状態であり、コピー処理が正常に完了すると STOP 状態になります。
# sdxinfo -S -c Class1 -o Volume2
OBJ CLASS GROUP DISK VOLUME STATUS
------ ------- ------- ------- ------- --------
slice Class1 Group2 Disk3 Volume2 STOP |
9) 業務の停止
運用ドメインのノード Node1 および Node2 において、マスタボリューム Volume1 を使用しているアプリケーションを停止します。
Volume1 をファイルシステムとして使用している場合は、アンマウントします。
10) マスタボリュームの停止
運用ドメインのノード Node1 および Node2 において、マスタボリューム Volume1 を停止します。以下のコマンドを Node1 または Node2 で実行します。
# sdxvolume -F -c Class1 -v Volume1 -e allnodes |
11) プロキシボリュームからのリストア
運用ドメインにおいて、マスタボリューム Volume1 のデータをプロキシボリューム Volume2 からリストアします。以下のコマンドを運用ドメインのノード Node1 または Node2 で実行します。
# sdxproxy RejoinRestore -c Class1 -p Volume2 |
コマンドが復帰した後、Volume2 から Volume1 への等価性コピー処理が実行されます。
12) 業務の再開
手順 11) でプロキシボリューム Volume2 からマスタボリューム Volume1 への等価性コピーを開始した後、コピーの完了を待たずに、業務を再開することができます。
業務を実行するノードで以下の作業を実施します。
12-1) マスタボリュームの起動
マスタボリューム Volume1 を起動します。
# sdxvolume -N -c Class1 -v Volume1 |
12-2) 業務の再開
手順 9) でマスタボリューム Volume1 上のファイルシステムをアンマウントした場合は、再度マウントします。
Volume1 を使用するアプリケーションを起動します。
12-3) コピー状況の確認
手順 11) で実行したプロキシボリューム Volume2 からマスタボリューム Volume1 への等価性コピー処理の状況は、sdxinfo -S コマンドで確認することができます。コピー先のマスタボリューム Volume1 のスライスは、コピー処理中は COPY 状態であり、コピー処理が正常に完了すると ACTIVE 状態になります。
# sdxinfo -S -c Class1 -o Volume1
OBJ CLASS GROUP DISK VOLUME STATUS
------ ------- ------- ------- ------- --------
slice Class1 Group1 Disk1 Volume1 ACTIVE
slice Class1 Group1 Disk2 Volume1 ACTIVE |
参考
手順 11) により、マスタボリューム Volume1 とプロキシボリューム Volume2 は結合状態になります。結合状態のときに Volume1 のデータが破損した場合は、Volume2 のデータも破損するため、Volume1 のデータを Volume2 からリストアすることはできません。Volume2 から Volume1 への等価性コピー処理が完了したら、Volume2 を Volume1 から分離しておくことを推奨します。プロキシボリュームを分離する手順については、「7.12.3.7 バックアップ手順」の手順 3) を参照してください。
ここでは、バックアップサーバ Node3 からマスタボリューム Volume1 を構成するすべてのディスクにアクセスできる場合の例を示します。
参考
ディスク装置のコピー機能を使用している場合
バックアップサーバ Node3 からマスタボリューム Volume1 を構成するすべてのディスクにアクセスでき、かつ、マスタとプロキシの間の等価性維持においてディスク装置のコピー機能を使用している場合は、手順 15) でプロキシボリュームを分離する必要はありません。
参考
バックアップサーバからマスタボリュームを構成するディスクにアクセスできない場合
プロキシボリューム Volume2 を分離した状態で、テープからプロキシボリュームにデータをコピーした後、プロキシボリュームを用いてマスタボリュームのデータを復元します。
13) 業務の停止
運用ドメインのノード Node1 および Node2 において、マスタボリューム Volume1 を使用しているアプリケーションを停止します。
Volume1 をファイルシステムとして使用している場合は、アンマウントします。
14) マスタボリュームの停止
運用ドメインのノード Node1 および Node2 において、マスタボリューム Volume1 への不当な書込みを防止するため、Volume1 を停止します。以下のコマンドを Node1 または Node2 で実行します。
# sdxvolume -F -c Class1 -v Volume1 -e allnodes |
15) プロキシボリュームの分離
運用ドメインにおいて、プロキシボリューム Volume2 をマスタボリューム Volume1 から分離します。以下のコマンドを運用ドメインのノード Node1 または Node2 で実行します。
# sdxproxy Part -c Class1 -p Volume2 -a pjrm=off |
注意
プロキシ用の高速等価性回復モード
バックアップサーバ Node3 において、マスタボリューム Volume1 のデータをテープからリストアした後、運用ドメインにおいて、プロキシボリューム Volume2 をマスタボリューム Volume1 に再結合します。このとき、Volume1 全体のデータを Volume2 にコピーする必要があります。このため、分離するプロキシボリュームの高速等価性回復モードをオフに設定しておく必要があります。
参考
ディスク装置のコピー機能を使用している場合
マスタとプロキシの間の等価性維持においてディスク装置のコピー機能を使用している場合は、本手順 (プロキシボリュームの分離) を実施する必要はありません。
参考
バックアップサーバからマスタボリュームを構成するディスクにアクセスできない場合
プロキシボリューム Volume2 を分離した後、Volume2 への不当な書込みを防止するため、Node1 および Node2 において Volume2 を停止してください。
16) マスタボリュームの構成と状態の確認
運用ドメインのノード Node1 および Node2 において、リストアの対象となるマスタボリューム Volume1 の構成と状態を確認します。Volume1 を構成するすべてのスライスが STOP 状態であることを確認します。スライスの状態が不当な場合は、「D.1.1 スライス状態に関する異常」を参照して状態を復旧してください。
# sdxinfo -S -c Class1 -o Volume1
OBJ CLASS GROUP DISK VOLUME STATUS
------ ------- ------- ------- ------- --------
slice Class1 Group1 Disk1 Volume1 STOP
slice Class1 Group1 Disk2 Volume1 STOP |
参考
ディスク装置のコピー機能を使用している場合
マスタとプロキシの間の等価性維持においてディスク装置のコピー機能を使用していて手順 15) でプロキシボリュームを分離しなかった場合は、プロキシボリューム Volume2 を構成するすべてのスライスも STOP 状態であることを確認します。
参考
バックアップサーバからマスタボリュームを構成するディスクにアクセスできない場合
リストアの対象となるプロキシボリューム Volume2 の構成と状態を確認します。
17) リストア用シャドウボリュームの作成
バックアップサーバ Node3 において、リストア用のボリューム (シャドウボリューム) を作成します。
17-1) シャドウボリュームの作成
# sdxshadowdisk -M -c Class2 -d sda=Disk1,sdb=Disk2 # sdxshadowdisk -C -c Class2 -g Group1 -d Disk1,Disk2 # sdxshadowvolume -M -c Class2 -g Group1 -v Volume1 -s 1048576 |
注意
不適切な構成のシャドウボリュームに書込みを行うと、マスタボリュームのデータが破損することあります。sdxinfo コマンドを使用して、シャドウボリュームの構成が適切であることを必ず確認してください。
ポイント
手順 1) で作成したマスタボリュームと同じ構成にする必要があります。
シャドウディスクのディスク名は、運用ドメインで割り当てられているディスク名と同じにする必要があります。運用ドメインで割り当てたディスク名は、手順 16) の sdxinfo コマンドで表示されたディスク情報の NAME フィールドで確認できます。
クラス名、グループ名、ボリューム名は自由に割り当てることができます。
シャドウグループにシャドウディスクを接続する順序は、運用ドメインでグループにディスクを接続した順序と同じにする必要があります。運用ドメインのディスクの接続順序は、手順 16) の sdxinfo コマンドで表示されたグループ情報の DISKS フィールドで確認できます。
ストライプタイプのシャドウグループのストライプ幅は、運用ドメインのストライプグループのストライプ幅と同じにする必要があります。運用ドメインで設定したストライプ幅は、手順 16) の sdxinfo -e long コマンドで表示されたグループ情報の WIDTH フィールドで確認できます。
シャドウボリュームは、マスタボリュームと同じサイズで作成する必要があります。マスタボリュームのサイズは、手順 16) の sdxinfo コマンドで表示されたボリューム情報の BLOCKS フィールドで確認できます。
ボリュームが複数ある場合、手順 16) の sdxinfo コマンドで表示されたボリューム情報の 1STBLK フィールドの値 (先頭ブロック番号) が小さい順に、対応するシャドウボリュームを作成する必要があります。
参考
バックアップサーバからマスタボリュームを構成するディスクにアクセスできない場合
リストア用シャドウボリュームは、手順 2) で作成したプロキシボリュームと同じ構成で作成します。
17-2) シャドウボリュームのアクセスモードの変更
シャドウボリューム Volume1 を読書き用のアクセスモード (rw) で起動します。
# sdxshadowvolume -F -c Class2 -v Volume1 # sdxshadowvolume -N -c Class2 -v Volume1 -e mode=rw |
17-3) シャドウボリュームの構成の確認
sdxinfo コマンドを実行し、グループ情報の DISKS フィールド、ボリューム情報の 1STBLK フィールドおよび BLOCKS フィールドなどから、グループ構成やボリューム構成が適切であることを確認します。
# sdxinfo -c Class2 |
18) テープからのリストア
バックアップサーバ Node3 において、シャドウボリュームのデータを手順 6) でバックアップしたテープからリストアします。シャドウボリューム Volume1 のデータをテープ装置 /dev/st0 のテープ媒体からリストアする例を示します。
参照
リストア方法の詳細については、リストアするファイルシステムや使用するコマンドのマニュアルを参照してください。
18a) dd(1) コマンドを使用してデータをリストアする場合
# dd if=/dev/st0 of=/dev/sfdsk/Class2/dsk/Volume1 bs=32768 |
18b) tar(1) コマンドを使用して ext4 ファイルシステムをリストアする場合
18b-1) シャドウボリューム Volume1 に ext4 ファイルシステムを作成します。
# mkfs -t ext4 /dev/sfdsk/Class2/dsk/Volume1 |
18b-2) シャドウボリューム Volume1 上の ext4 ファイルシステムを、一時的なマウントポイント /mnt1 にマウントします。
# mkdir /mnt1 # mount -t ext4 /dev/sfdsk/Class2/dsk/Volume1 /mnt1 |
18b-3) ファイルシステムのデータをテープからリストアします。
# cd /mnt1 # tar xvf /dev/st0 |
18b-4) 手順 18b-3) でマウントしたファイルシステムをアンマウントします。
# cd / |
19) シャドウボリュームの削除
リストアが完了したら、シャドウボリュームへの不当なアクセスを防ぐため、シャドウボリュームを削除します。バックアップサーバ Node3 で以下の作業を実施します。
# sdxshadowvolume -F -c Class2 -v Volume1 # sdxshadowvolume -R -c Class2 -v Volume1 # sdxshadowgroup -R -c Class2 -g Group1 # sdxshadowdisk -R -c Class2 -d Disk1 # sdxshadowdisk -R -c Class2 -d Disk2 |
20) 業務の再開
運用ドメインで業務を再開します。業務を実行するノードで以下の作業を実施します。
参考
バックアップサーバからマスタボリュームを構成するディスクにアクセスできない場合
業務を再開する前に、マスタボリューム Volume1 のデータをプロキシボリューム Volume2 からリストアします。手順については、「7.12.3.8 プロキシボリュームからのリストア手順」を参考にしてください。
20-1) マスタボリュームの起動
マスタボリューム Volume1 を起動します。
# sdxvolume -N -c Class1 -v Volume1 |
20-2) 業務の再開
手順 13) でマスタボリューム Volume1 上のファイルシステムをアンマウントした場合は、再度マウントします。
Volume1 を使用するアプリケーションを起動します。