事象
コピーペアの登録が実施されてないボリュームは、rcx_srosp_restore volumeコマンドによってリストアされません。 そのため、該当ボリュームを使用するインスタンスをリストアする際にエラーが発生します。
メッセージ
FJSVrcxsr:ERROR:61161:Failed to restore instance: volumes for instance not exist.
対処
以下の手順に従い、ボリュームのバックアップを使用してインスタンスをリストアしてください。
本手順は、以下の条件で実施してください。
手順実施サイト : 災対サイト
手順実施サーバ : メイン作業用コントロールノード
手順実施ユーザー : インフラ管理者
OpenStackコマンド実行するためのクレデンシャルファイルについては「付録F OpenStackコマンドの実行について」を参照してください。
以下のコマンドを実行し、インスタンスが使用していたボリュームのIDを取得してください。
ls /var/opt/FJSVrcxsr/mnt/backup/*/instance-<instance_id> | grep ^volume | sed -e 's/^volume-//'
<instance_id>にはリストア対象インスタンスのIDを指定してください。
例
以下のように、インスタンスにアタッチされていたボリュームのIDは1行ずつ出力されます。
8650406a-1da2-40f7-acaf-e10fe0b8fd72 9f40dc6b-4934-49ff-8cc5-02cb19e3de00
以下のコマンドを実行し、バックアップされたボリュームの管理情報(ストレージ上の名前と16進数のボリュームNo)を取得してください。本手順は、手順1で出力されたすべてのボリュームに対して1回ずつ実施してください。
jq -r '.[] | .id+" "+.metadata.FJ_Volume_Name+" "+.metadata.FJ_Volume_No' /var/opt/FJSVrcxsr/mnt/backup/*/volume_list.json | awk '$1=="<volume-id>"{print $2,$3}'
<volume-id>には手順1で出力されたボリュームのIDを指定してください。
例
以下のように、バックアップされたボリュームの管理情報が出力されます。 空白区切りで1つ目はストレージ上の名前であり、2つ目は16進数のボリュームNoとなります。
Ken_SROSP_032 0x00E8
以下のコマンドを実行し、コピーペアファイル名を取得してください。
find /var/opt/FJSVrcxsr/mnt/backup/* -type f -name recinfo_copy_pair*| head -n 1
例
以下のように、コピーペアファイルのフルパスが出力されます。
/var/opt/FJSVrcxsr/mnt/backup/backup_saitai/recinfo_copy_pair_RCXSR_VOL_01
以下のコマンドを実行し、コピーペアに登録されていないボリュームが存在するかを確認してください。本手順は、手順2で出力されたすべての管理番号に対して1回ずつ実施してください。
grep "<management_id>" <copy_pair_file_path>
<management_id>には手順2で取得された16進数のボリュームNoを指定してください。<copy_pair_file_path>は手順3で取得されたコピーペアファイルのフルパスを指定してください。
例
コピーペアに登録されている場合、以下のように、コピーペアのレコードが出力されます。
>DX200S3#4/0x01AE:DX200S3#3/0x0105
コピーペアに登録されていない場合、何も出力されません。 手順1で取得されたボリュームのうち、コピーペアに登録されていないボリュームが1つ以上存在する場合、次の手順に進めてください。 コピーペアに登録されていないボリュームが存在しない場合、コピーペアの登録漏れに該当しないため、手順の実施を終了してください。
以下のコマンドを実行し、インスタンスにアタッチしていたボリュームのサイズを取得してください。本手順は、手順1で出力されたすべてのボリュームに対して1回ずつ実施してください。
jq -r '.[] | .id+" "+(.size|tostring)' /var/opt/FJSVrcxsr/mnt/backup/*/volume_list.json | awk '$1=="<volume-id>"{print $2}'
<volume-id>には手順1で出力されたボリュームのIDを指定してください。
例
以下のように、指定されたボリュームのサイズはGB単位で出力されます。
40
手順2で出力された名前と手順5で出力されたサイズを使用し、災対サイトのETERNUSでボリュームを作成してください。 ETERNUSにおける操作方法についてETERNUS製品のマニュアルを参照してください。ETERNUSでボリュームを作成する際に、手順2で出力された名前以外の文字列でも使用可能です。ETERNUS製品のマニュアルを参照したうえで設定してください。
切戻しを実施する場合、 本番サイトのETERNUSでボリュームを作成してください。
作成したボリュームのボリュームNo(10進数)は以下の規則に従い、16進数形式に変換してください。
「0x」で始まる16進数であること
桁数が4未満の場合は、左から0を足して4桁にすること
英文字は全部大文字であること
ボリュームNoの指定例:
正しい例:0x0009、 0x001A
間違った例:10(十進数)、 0x009(桁数が足りない) 、 0x000a(英小文字が存在)
以下のコマンドを実行し、コピーペアファイルにレコードを追加してください。
tail -n 1 <copy_pair_file_path> | sed -e 's/\/0x[0-9A-F]\+:/\/<management_id1>:/' | sed 's/0x[0-9A-F]\+$/<management_id2>/' >> <copy_pair_file_path>
<management_id1>には手順6で取得された16進数のボリュームNoを指定してください。<management_id2>には手順2で取得された16進数のボリュームNoを指定してください。<copy_pair_file_path>は手順3で取得されたコピーペアファイルのフルパスを指定してください。
以下のコマンドを実行し、コピーペアファイルにレコードが追加されてことを確認してください。
tail -n 1 <copy_pair_file_path>
<copy_pair_file_path>は手順3で取得されたコピーペアファイルのフルパスを指定してください。
例
以下のように、コピーペアファイルの最後1行のレコードが出力されます。
DX200S3#4/<management_id1>:DX200S3#3/<management_id2>
<management_id1>には手順6で取得された16進数のボリュームNoであることを確認してください。<management_id2>には手順2で取得された管理番号であることを確認してください。
以下の手順を参照し、rcx_srosp_restore volumeコマンドを実行してください。