[Amazon FSx for NetApp ONTAP] SnapMirrorの転送元ボリュームでベースラインSnapshotよりも古いSnapshotでSnapRestoreした後は再同期が必要
SnapMirrorの転送元ボリュームでSnapRestoreしたい
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)で、SnapMirrorの転送元ボリュームでSnapRestoreをしたいなと思ったことはありますか? 私はあります。
SnapRestoreを行うことでエクスプローラー上で以前のバージョンの復元
を用いるよりも高速にリストアすることが可能です。詳細や実際の検証の様子は以下記事をご覧ください。
そのため、ボリューム全体をリストアしたい場合はSnapRestoreを使いたいところです。
ただし、安易にボリューム全体をSnapRestoreすると、SnapMirrorに影響があります。
実際に確認してみました。
いきなりまとめ
- SnapMirrorの転送元ボリュームでベースラインSnapshotよりも古いSnapshotでSnapRestoreした後は再同期が必要
- 差分同期を試みるタイミングでunhealthyになる
- SnapRestoreを実施すると、使用したSnapshotよりも新しいSnapshotは削除される
- 転送先ボリュームで保持している最新の共通Snapshot = ベースラインSnapshot が転送元ボリュームから削除されることになり、差分の起点が分からなくなるため
- 差分同期を試みるタイミングでunhealthyになる
- ファイル単位のSnapRestoreはSnapMirrorのhealthyに影響を与えない
- 転送元ボリュームでSnapRestoreをしたい場合は
snapmirror resync
で、転送先ボリューム上のSnapshotを用いてSnapRestoreを使用
やってみた
検証環境
検証環境は以下のとおりです。
以下記事で使用した環境をそのまま利用します。
検証で使用するSnapMirror relationshipの情報は以下のとおりです。
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst
Source Path: svm:vol_sm_se_test_pattern1
Source Cluster: -
Source Vserver: svm
Source Volume: vol_sm_se_test_pattern1
Destination Path: svm2:vol_sm_se_test_pattern1_dst
Destination Cluster: -
Destination Vserver: svm2
Destination Volume: vol_sm_se_test_pattern1_dst
Relationship Type: XDP
Relationship Group Type: none
Managing Vserver: svm2
SnapMirror Schedule: -
SnapMirror Policy Type: async-mirror
SnapMirror Policy: MirrorAllSnapshots
Tries Limit: -
Throttle (KB/sec): unlimited
Consistency Group Item Mappings: -
Current Transfer Throttle (KB/sec): -
Mirror State: Snapmirrored
Relationship Status: Idle
File Restore File Count: -
File Restore File List: -
Transfer Snapshot: -
Snapshot Progress: -
Total Progress: -
Network Compression Ratio: -
Snapshot Checkpoint: -
Newest Snapshot: snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
Newest Snapshot Timestamp: 01/21 08:58:10
Exported Snapshot: snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
Exported Snapshot Timestamp: 01/21 08:58:10
Healthy: true
Relationship ID: 9f073b5d-d70c-11ef-bfde-81bf4d033648
Source Vserver UUID: 3ba0f5ee-6064-11ef-a92a-512f30fadf39
Destination Vserver UUID: 2bb6c4fc-a554-11ef-accd-b31c82a68aa5
Current Operation ID: -
Transfer Type: -
Transfer Error: -
Last Transfer Type: resync
Last Transfer Error: -
Last Transfer Error Codes: -
Last Transfer Size: 3.48KB
Last Transfer Network Compression Ratio: 1:1
Last Transfer Duration: 0:0:2
Last Transfer From: svm:vol_sm_se_test_pattern1
Last Transfer End Timestamp: 01/21 08:58:12
Unhealthy Reason: -
Progress Last Updated: -
Relationship Capability: 8.2 and above
Lag Time: 0:0:9
Current Transfer Priority: -
SMTape Operation: -
Destination Volume Node Name: FsxId0e64a4f5386f74c87-01
Identity Preserve Vserver DR: -
Number of Successful Updates: 2
Number of Failed Updates: 0
Number of Successful Resyncs: 3
Number of Failed Resyncs: 0
Number of Successful Breaks: 1
Number of Failed Breaks: 0
Total Transfer Bytes: 6941911192
Total Transfer Time in Seconds: 193
Source Volume MSIDs Preserved: -
OpMask: ffffffffffffffff
Is Auto Expand Enabled: -
Percent Complete for Current Status: -
SM Backoff Level due to Client Ops: high
Snapshotを取得
現在のファイル一覧は以下のとおりです。
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 10527100
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
-rw-r--r--. 1 root root 2147483648 Jan 20 09:25 1KB_random_pattern_text_block_2GiB_copy4
この状態でSnapshotを取得します。
::*> snapshot create -vserver svm -volume vol_sm_se_test_pattern1 -snapshot sr-test.2025-01-21_0903
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
168KB 0% 0%
sr-test.2025-01-21_0903 140KB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085154
232KB 0% 0%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
140KB 0% 0%
4 entries were displayed.
ファイルを削除後、最新のSnapshotを使ってSnapRestoreを実施
ファイルを削除後、最新のSnapshotを使ってSnapRestoreを実施します。
1KB_random_pattern_text_block_2GiB_copy4
というファイルを削除します。
$ sudo rm /mnt/fsxn/vol_sm_se_test_pattern1/1KB_random_pattern_text_block_2GiB_copy4
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 8421680
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
最新のSnapshotであるsr-test.2025-01-21_0903
でSnapRestoreします。
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
168KB 0% 0%
sr-test.2025-01-21_0903 1.89GB 6% 29%
svm2 vol_sm_se_test_pattern1_dst
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085154
232KB 0% 0%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
140KB 0% 0%
4 entries were displayed.
::*> snapshot restore -vserver svm -volume vol_sm_se_test_pattern1 -snapshot sr-test.2025-01-21_0903
Warning: Quota rules currently enforced on volume "vol_sm_se_test_pattern1" might change during this operation. If the currently enforced quota rules are different from those in Snapshot copy "sr-test.2025-01-21_0903", you might have to resize or reinitialize quotas on this volume after this operation.
Do you want to continue? {y|n}: y
Warning: Export policies currently enforced on the qtrees of volume "vol_sm_se_test_pattern1" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy "sr-test.2025-01-21_0903", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
168KB 0% 0%
sr-test.2025-01-21_0903 384KB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085154
232KB 0% 0%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
140KB 0% 0%
4 entries were displayed.
SnapRestoreが完了しました。
NFSクライアントで覗いてみると、確かに削除したファイルがリストアされていました。
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 10527100
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
-rw-r--r--. 1 root root 2147483648 Jan 20 09:25 1KB_random_pattern_text_block_2GiB_copy4
SnapMirrorの差分同期
SnapMirrorの差分同期をしてみます。
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot
source-path destination-path state status newest-snapshot exported-snapshot healthy
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- -------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810 true
::*> snapmirror update -destination-path svm2:vol_sm_se_test_pattern1_dst
Operation is queued: snapmirror update of destination "svm2:vol_sm_se_test_pattern1_dst".
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot
source-path destination-path state status newest-snapshot exported-snapshot healthy
--------------------------- -------------------------------- ------------ ---------- ----------------------- ---------------------------------------------------------------------------- -------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Finalizing sr-test.2025-01-21_0903 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810 true
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot
source-path destination-path state status newest-snapshot exported-snapshot healthy
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- -------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 true
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 94.41MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
30.50MB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
244KB 0% 0%
sr-test.2025-01-21_0903 95.21MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
152KB 0% 0%
5 entries were displayed.
特にエラーにはなりませんでした。そのため、最新のSnapshotでボリューム全体をSnapRestoreをする分には影響がありません。
最新ではないSnapshotを用いてSnapRestoreを実施
最新ではないSnapshotを用いてSnapRestoreを実施します。
先ほどのSnapMirrorの差分同期によってsnapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
が作成されました。sr-test.2025-01-21_0903
は最新のSnapshotではなくなっています。
先ほど同様に1KB_random_pattern_text_block_2GiB_copy4
というファイルを削除します。
$ sudo rm /mnt/fsxn/vol_sm_se_test_pattern1/1KB_random_pattern_text_block_2GiB_copy4
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 8421680
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
sr-test.2025-01-21_0903
を使ってSnapRestoreします。
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 94.41MB 0% 2%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
2.14GB 7% 34%
svm2 vol_sm_se_test_pattern1_dst
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
244KB 0% 0%
sr-test.2025-01-21_0903 95.21MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
152KB 0% 0%
5 entries were displayed.
::*> snapshot restore -vserver svm -volume vol_sm_se_test_pattern1 -snapshot sr-test.2025-01-21_0903
Error: command failed: Failed to promote Snapshot copy "sr-test.2025-01-21_0903" because one or more newer Snapshot copies are currently used as a reference Snapshot copy for data protection operations: snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937.
はい、エラーになりました。SnapRestoreで使用するSnapshotよりも新しいSnapshotが転送先ボリュームに転送されているためのようです。
強制的にSnapRestoreをします。
::*> snapshot restore -vserver svm -volume vol_sm_se_test_pattern1 -snapshot sr-test.2025-01-21_0903 ?
[[-force] [true]] Force Restore
[ -instance-uuid <UUID> ] *Instance UUID
[ -preserve-lun-ids {true|false} ] Preserve LUN Identifiers
[ -override-metrocluster-degraded-state {true|false} ] *Allow Restore When MetroCluster Is in a Degraded State
::*> snapshot restore -vserver svm -volume vol_sm_se_test_pattern1 -snapshot sr-test.2025-01-21_0903 -force true
Warning: Snapshot copy "sr-test.2025-01-21_0903" is not the most recent copy. Promoting this Snapshot copy will delete all copies made after it.
Do you want to continue? {y|n}: y
Warning: Quota rules currently enforced on volume "vol_sm_se_test_pattern1" might change during this operation. If the currently enforced quota rules are different from those in Snapshot copy "sr-test.2025-01-21_0903", you might have to resize or reinitialize quotas on this volume after this operation.
Do you want to continue? {y|n}: y
Warning: Export policies currently enforced on the qtrees of volume "vol_sm_se_test_pattern1" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy "sr-test.2025-01-21_0903", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 416KB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_085810
244KB 0% 0%
sr-test.2025-01-21_0903 95.21MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
152KB 0% 0%
4 entries were displayed.
SnapRestoreできました。転送先ボリュームからはsr-test.2025-01-21_0903
よりも新しいSnapshotが削除されました。ボリューム全体をSnapRestoreする際の注意点ですね。
NFSクライアントで覗いてみると、確かに削除したファイルがリストアされていました。
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 10527100
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
-rw-r--r--. 1 root root 2147483648 Jan 20 09:25 1KB_random_pattern_text_block_2GiB_copy4
SnapMirrorの差分同期 (2回目)
この状態でSnapMirrorの差分同期を再度行います。
::*> snapmirror update -destination-path svm2:vol_sm_se_test_pattern1_dst
Operation is queued: snapmirror update of destination "svm2:vol_sm_se_test_pattern1_dst".
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot
source-path destination-path state status newest-snapshot exported-snapshot healthy
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- -------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 false
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 false The latest Snapshot copy "snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937" on the destination is not the base Snapshot copy. Use the "snapmirror resync" command to correct the issue. Transfer failed.
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 37.69MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_091418
58.81MB 0% 1%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 95.21MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
160KB 0% 0%
4 entries were displayed.
はい、healthがfalse
になり、転送先ボリューム内の最新のSnapshotであるsnapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
と同じSnapshotが転送元にないためとエラーになっています。
もう一度差分同期してみましょう。
::*> snapmirror update -destination-path svm2:vol_sm_se_test_pattern1_dst
Operation is queued: snapmirror update of destination "svm2:vol_sm_se_test_pattern1_dst".
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937 false The latest Snapshot copy "snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937" on the destination is not the base Snapshot copy. Use the "snapmirror resync" command to correct the issue. Transfer failed.
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 37.69MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_091418
89.50MB 0% 1%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 95.21MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
160KB 0% 0%
4 entries were displayed.
はい、結果は変わりません。
ということで、SnapMirrorの転送元ボリュームでボリューム全体をSnapRestoreをすることは避けた方が良いでしょう。何も対応しなければSnapRestore実施以降はSnapMirrorの転送を行うことができません。
SnapMirrorの再同期
では、何も打つ手がないかと言うと、そう言うわけではありません。
unhealthy-reasonで紹介されているようにsnapmirror resync
を実施することで復旧することが可能です。
実際にやってみましょう。
::*> snapmirror resync -destination-path svm2:vol_sm_se_test_pattern1_dst
Warning: All data newer than Snapshot copy sr-test.2025-01-21_0903 on volume svm2:vol_sm_se_test_pattern1_dst will be deleted.
Do you want to continue? {y|n}: y
Operation is queued: initiate snapmirror resync to destination "svm2:vol_sm_se_test_pattern1_dst".
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 37.69MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_091418
291.4MB 1% 4%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
1.23MB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 172KB 0% 0%
4 entries were displayed.
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ---------- ---------------------------------------------------------------------------- ----------------------- ------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Finalizing snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_091418 sr-test.2025-01-21_0903 false The latest Snapshot copy "snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937" on the destination is not the base Snapshot copy. Use the "snapmirror resync" command to correct the issue. Transfer failed.
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412 true - -
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 328.9MB 1% 5%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
34.12MB 0% 1%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 38.12MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_091418
293.5MB 1% 5%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
156KB 0% 0%
5 entries were displayed.
お互いが共通で保持しているSnapshotsr-test.2025-01-21_0903
よりも新しいSnapshotsnapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_090937
が転送先から削除されたことが分かります。
また、その後、snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
と言うSnapshotを取得し、転送していることが分かります。
そのため、SnapVaultのようにSnapshotの保持世代数が 転送元ボリューム < 転送先ボリューム となるように設定している場合は、snapmirror resync
によってベースラインSnapshotよりも新しいSnapshotが転送先ボリュームから削除されてしまいます。
場合によってはバックアップ要件として許容できない場合もあるでしょう。
ちなみにベースラインSnapshot = snapmirror show
のExported Snapshot
です。
You can review the baseline snapshot by the following command over the destination, the desired field is Exported Snapshot:
Destination::> snapmirror show svm:vol Source Path: svm:vol Destination Path: svm_dest:vol_dest ................ Exported Snapshot: snapmirror.<name>
How to define SnapMirror baseline Snapshot - NetApp Knowledge Base
ファイル単位のSnapRestoreを実施
ボリューム全体をSnapRestoreをする場合はSnapMirrorの差分同期をしたタイミングで、不都合が生じることを紹介しました。
では、ファイル単位のSnapRestoreの場合はどうでしょう。
ファイルを削除します。
$ sudo rm /mnt/fsxn/vol_sm_se_test_pattern1/1KB_random_pattern_text_block_2GiB_copy4
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 8421680
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
削除したファイルをSnapRestoreします。
::*> snapshot restore-file -vserver svm -volume vol_sm_se_test_pattern1 -snapshot sr-test.2025-01-21_0903 -path /1KB_random_pattern_text_block_2GiB_copy4
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 328.9MB 1% 7%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
2.16GB 7% 35%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 38.12MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_091418
293.5MB 1% 5%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
156KB 0% 0%
5 entries were displayed.
リストアされたことを確認します。
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 10527100
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
-rw-r--r--. 1 root root 2147483648 Jan 20 09:25 1KB_random_pattern_text_block_2GiB_copy4
それではSnapMirrorの差分同期を行います。
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412 true - -
::*> snapmirror update -destination-path svm2:vol_sm_se_test_pattern1_dst
Operation is queued: snapmirror update of destination "svm2:vol_sm_se_test_pattern1_dst".
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ---------- ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Finalizing snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412 true - -
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803 true - -
はい、問題なく差分同期が行えました。
と言うことでファイル単位のSnapRestoreをしても、SnapMirrorのhealthyには影響を与えません。
転送先ボリュームのSnapshotを用いてSnapRestoreを実施
転送元ボリュームでボリューム全体をSnapRestoreする場合は、都度snapmirror resync
を行う必要があるのでしょうか。
そんなことはありません。以下記事で紹介しているとおり、snapmirror restore
で転送先ボリュームのSnapshotを用いてSnapRestoreを行うことが可能です。
snapmirror restore
は以下NetApp公式ドキュメントも参考になります。
実際にやってみます。
検証用にファイルを一つ削除しておきます。
$ sudo rm /mnt/fsxn/vol_sm_se_test_pattern1/1KB_random_pattern_text_block_2GiB_copy4
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 8421680
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
snapmirror resync
で転送先ボリュームのSnapshotを使ってSnapRestoreします。
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 510.6MB 2% 8%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803
6.43MB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 330.7MB 1% 5%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
125.0MB 0% 2%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803
156KB 0% 0%
5 entries were displayed.
::*> snapmirror restore -source-path svm2:vol_sm_se_test_pattern1_dst -destination-path svm:vol_sm_se_test_pattern1 -source-snapshot sr-test.2025-01-21_0903
Warning: All data newer than Snapshot copy snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803 on volume svm:vol_sm_se_test_pattern1 will be deleted.
Export policies currently enforced on the qtrees of volume "svm:vol_sm_se_test_pattern1" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy "snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
[Job 2166] Job is queued: snapmirror restore from source "svm2:vol_sm_se_test_pattern1_dst" for the snapshot sr-test.2025-01-21_0903.
::*> job show 2166
Owning
Job ID Name Vserver Node State
------ -------------------- ---------- -------------- ----------
2166 SnapMirror restore svm FsxId0e64a4f5386f74c87-01
Running
Description: snapmirror restore from source "svm2:vol_sm_se_test_pattern1_dst" for the snapshot sr-test.2025-01-21_0903
::*> job show 2166
Owning
Job ID Name Vserver Node State
------ -------------------- ---------- -------------- ----------
2166 SnapMirror restore svm FsxId0e64a4f5386f74c87-01
Success
Description: snapmirror restore from source "svm2:vol_sm_se_test_pattern1_dst" for the snapshot sr-test.2025-01-21_0903
::*> job show 2166 -instance
Job ID: 2166
Owning Vserver: svm
Name: SnapMirror restore
Description: snapmirror restore from source "svm2:vol_sm_se_test_pattern1_dst" for the snapshot sr-test.2025-01-21_0903
Priority: Exclusive
Node: FsxId0e64a4f5386f74c87-01
Affinity: Cluster
Schedule: @now
Queue Time: 01/21 09:35:01
Start Time: 01/21 09:35:01
End Time: 01/21 09:35:26
Drop-dead Time: -
Restarted?: false
State: Success
Status Code: 0
Completion String: SnapMirror Restore Succeeded
Job Type: RestoreV2
Job Category: SnapMirror
UUID: fc7f0922-d7da-11ef-bfde-81bf4d033648
Execution Progress: Complete: SnapMirror Restore Succeeded [0]
User Name: fsxadmin
Process: mgwd
Restart Is or Was Delayed?: false
Restart Is Delayed by Module: -
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 70.16MB 0% 1%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803
10.80MB 0% 0%
restored.3ba0f5ee-6064-11ef-a92a-512f30fadf39_2149324115.sr-test.2025-01-21_0903.2025-01-21_093506
0B 0% 0%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 330.7MB 1% 5%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092412
125.0MB 0% 2%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803
156KB 0% 0%
6 entries were displayed.
転送先ボリュームからSnapshotを転送してもらう必要があるので時間はかかりましたが、無事処理が完了しました。
リストアも問題なく完了していることを確認できました。
$ ls -l /mnt/fsxn/vol_sm_se_test_pattern1
total 10527100
-rw-r--r--. 1 root root 2147483648 Jan 20 09:20 1KB_random_pattern_text_block_2GiB
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy1
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy2
-rw-r--r--. 1 root root 2147483648 Jan 20 09:24 1KB_random_pattern_text_block_2GiB_copy3
-rw-r--r--. 1 root root 2147483648 Jan 20 09:25 1KB_random_pattern_text_block_2GiB_copy4
差分同期もしてみます。
::*> snapmirror update -destination-path svm2:vol_sm_se_test_pattern1_dst
Operation is queued: snapmirror update of destination "svm2:vol_sm_se_test_pattern1_dst".
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ---------- ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Finalizing snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803 true - -
::*> snapmirror show -destination-path svm2:vol_sm_se_test_pattern1_dst -fields state, status, healthy, newest-snapshot, exported-snapshot, unhealthy-reason, last-transfer-error
source-path destination-path state status newest-snapshot exported-snapshot healthy last-transfer-error unhealthy-reason
--------------------------- -------------------------------- ------------ ------ ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------- ------------------- ----------------
svm:vol_sm_se_test_pattern1 svm2:vol_sm_se_test_pattern1_dst Snapmirrored Idle snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_093807 snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_093807 true - -
::*> snapshot show -volume vol_sm_se_test_pattern1*
---Blocks---
Vserver Volume Snapshot Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm vol_sm_se_test_pattern1
sr-test.2025-01-21_0903 70.34MB 0% 1%
restored.3ba0f5ee-6064-11ef-a92a-512f30fadf39_2149324115.sr-test.2025-01-21_0903.2025-01-21_093506
188KB 0% 0%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_093807
148KB 0% 0%
svm2 vol_sm_se_test_pattern1_dst
sr-test.2025-01-21_0903 14.40MB 0% 0%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_092803
14.51MB 0% 0%
snapmirror.2bb6c4fc-a554-11ef-accd-b31c82a68aa5_2149324119.2025-01-21_093807
0B 0% 0%
6 entries were displayed.
はい、問題なく差分同期ができました。
SnapRestoreで使用したSnapshotrestored.3ba0f5ee-6064-11ef-a92a-512f30fadf39_2149324115.sr-test.2025-01-21_0903.2025-01-21_093506
は転送されないようですね。
ということで、snapmirror resync
の手間や、SnapRestore時よりも新しいデータが削除された場合の懸念点を加味して、SnapMirrorの転送元ボリュームでボリューム全体をSnapRestoreをする場合はsnapmirror resync
を使うのが良いでしょう。
また、リストアにしたSnapshotは不要であれば、削除しておきましょう。
ボリューム全体をSnapRestoreする場合は要注意
Amazon FSx for NetApp ONTAPにてSnapMirrorの転送元ボリュームでベースラインSnapshotよりも古いSnapshotでSnapRestoreした後は再同期が必要であることを紹介しました。
SnapRestoreをしたい場合はsnapmirror resync
が正道かと思います。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!