[Amazon FSx for NetApp ONTAP] SnapVaultを使ってSnapshotのバックアップをしてみた

SnapMirrorとSnapVaultを適宜使い分けよう
2023.04.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

セカンダリ側でプライマリ側よりも多くのSnapshotを保持したいな

こんにちは、のんピ(@non____97)です。

皆さんはAmazon FSx for NetApp ONTAP (以降FSx for ONTAP) において、セカンダリ側でプライマリ側よりも多くのSnapshotを保持したいなと思ったことはありますか? 私はあります。

プライマリは容量節約のためにSnapshotの保持世代数を少なくし、ストレージの料金を抑えめにしたセカンダリではSnapshotの保持世代数を多めに設定したいという場面があります。

SnapMirrorでは基本的に転送先/転送元で保持するSnapshotの世代数が同じです。

そこで使うのがSnapVaultです。

SnapVaultはSnapMirrorと異なり世代数の管理が可能です。

  • SnapMirror Stores _Only - プライマリストレージにある Snapshot コピー。災害が発生した場合に備えて、適切な状態の最新バージョンのプライマリデータをフェイルオーバーできる必要があります。たとえば、組織では、 10 日間にわたって本番データのコピーを 1 時間ごとにミラーリングしなければならない場合があります。フェイルオーバーの事例で示すように、ミラーリングされたストレージからデータを効率的に提供するには、セカンダリシステム上の機器がプライマリシステム上の機器と同じであるか、ほぼ同じである必要があります。
  • 一方、 SnapVault は、 Snapshot コピーが現在プライマリストレージにあるかどうかに関係なく、 Snapshot コピーを格納します。これは、監査の際、履歴データへのアクセスが現在のデータへのアクセスと同様に重要になる可能性があるためです。場合によっては、月間のデータの Snapshot コピーを 20 年間にわたって保持しなければならないことがあります(たとえば、ビジネスに関する政府会計規則に準拠するためなど)。セカンダリストレージからデータを提供するための要件は存在しないため、 SnapVault システムでは低速かつ低コストのディスクを使用できます。

SnapMirror と SnapVault の違いを理解する

SnapVault 9.3 以降では、 ONTAP テクノロジの代わりに SnapMirror バックアップポリシーが使用されます。標準への準拠およびその他のガバナンス関連の目的で、ディスクツーディスクの Snapshot コピーレプリケーションに SnapMirror バックアップポリシーを使用します。SnapMirror 関係では、通常、ソースボリューム内の Snapshot コピーだけがデスティネーションに含まれますが、 SnapVault デスティネーションはより長期間にわたって作成されたポイントインタイムの Snapshot コピーを保持します。

SnapMirror テクノロジを使用したバックアップのアーカイブ

とはいえ、SnapMirrorとSnapVaultの仕組みや設定方法はほとんど同じです。

実際に動作確認をしてみたので紹介します。

いきなりまとめ

  • SnapVaultはSnapMirrorと異なり転送先でSnapshotの世代数の管理が可能
    • SnapMirrorは転送元ボリュームと転送先ボリューム間で保持するSnapshotが一致する
  • SnapVaultは全てのSnapshotを転送することはしない
  • 保持世代数及び転送対象はSnapMirror Labelで判断
  • SnapVaultを使用する場合はSnapMirror policy Typeがmirror-vaultもしくはmirror-vaultのSnapMirror policyを選択する
  • SnapMirrorはSnapshotのミラーリング、SnapVaultはSnapshotの保管庫(バックアップ)
  • snapmirror restoreでSnapVaultの転送先ボリュームのSnapshotを使ってボリュームの内容全て or ファイル/LUN単位でリストアが可能

SnapMirror

SnapMirror relationshipの作成と初回転送

SnapVaultとの比較のため、SnapMirrorのSnapShotの挙動を確認します。

具体的にはSnapMirror実行後、転送元のSnapshotを削除して再度SnapMirrorを実行した際に転送先のSnapshotの世代数を確認します。

SnapMirrorの説明や各コマンドの詳細については以下記事をご覧ください。

今回はSVM内でSnapMirrorを設定します。

SnapMirrorでSnapshotを転送するボリュームはvol_testです。以下のようにSnapshotを10個ほど保持しています。

::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.16MB     0%    0%
                  hourly.2023-04-23_1205                   156KB     0%    0%
                  hourly.2023-04-23_1305                   164KB     0%    0%
                  hourly.2023-04-23_1405                   156KB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   148KB     0%    0%
10 entries were displayed.

それではSnapMirror relationshipを作成と初回転送を行います。SnapMirror(SnapMirror Asynchronous)を使用する場合はSnapMirror policy Typeがasync-mirrorもしくはmirror-vaultを選択します。今回はMirrorAllSnapshotsを選択します。

# 転送先ボリュームの作成
# SnapMirror relationshipの作成
# SnapMirrorのベースライン転送の開始
::> snapmirror protect -path-list SVM:vol_test -destination-vserver SVM -policy MirrorAllSnapshots -schedule 5min -auto-initialize true -support-tiering true -tiering-policy auto
[Job 1730] Job is queued: snapmirror protect for list of source endpoints beginning with "SVM:vol_test".

# SnapMirror relationshipが作成されたことを確認
::> snapmirror show
                                                                       Progress
Source            Destination Mirror  Relationship   Total             Last
Path        Type  Path        State   Status         Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
SVM:vol_test
            XDP  SVM:vol_test_dst
                              Uninitialized
                                      Transferring   4.25GB    true    04/23 17:07:14

# SnapMirror relationshipの詳細を確認
::> snapmirror show -instance

                            Source Path: SVM:vol_test
                       Destination Path: SVM:vol_test_dst
                      Relationship Type: XDP
                Relationship Group Type: none
                    SnapMirror Schedule: 5min
                 SnapMirror Policy Type: async-mirror
                      SnapMirror Policy: MirrorAllSnapshots
                            Tries Limit: -
                      Throttle (KB/sec): unlimited
                           Mirror State: Uninitialized
                    Relationship Status: Transferring
                File Restore File Count: -
                 File Restore File List: -
                      Transfer Snapshot: weekly.2023-04-16_0015
                      Snapshot Progress: 7.37GB
                         Total Progress: 7.37GB
    Percent Complete for Current Status: -
              Network Compression Ratio: 1:1
                    Snapshot Checkpoint: 262.4KB
                        Newest Snapshot: -
              Newest Snapshot Timestamp: -
                      Exported Snapshot: -
            Exported Snapshot Timestamp: -
                                Healthy: true
                       Unhealthy Reason: -
                Destination Volume Node: FsxId05f72eb8f8d03c709-01
                        Relationship ID: d06da471-e1ad-11ed-8ae3-ad4807b2c637
                   Current Operation ID: cd202b20-5514-4c8e-9102-7ad02ceeb784
                          Transfer Type: initialize
                         Transfer Error: -
                       Current Throttle: unlimited
              Current Transfer Priority: normal
                     Last Transfer Type: -
                    Last Transfer Error: -
                     Last Transfer Size: -
Last Transfer Network Compression Ratio: -
                 Last Transfer Duration: -
                     Last Transfer From: -
            Last Transfer End Timestamp: -
                  Progress Last Updated: 04/23 17:07:29
                Relationship Capability: 8.2 and above
                               Lag Time: -
           Identity Preserve Vserver DR: -
                 Volume MSIDs Preserved: -
                 Is Auto Expand Enabled: -
           Number of Successful Updates: 0
               Number of Failed Updates: 0
           Number of Successful Resyncs: 0
               Number of Failed Resyncs: 0
            Number of Successful Breaks: 0
                Number of Failed Breaks: 0
                   Total Transfer Bytes: 0
         Total Transfer Time in Seconds: 0
                 FabricLink Source Role: -
               FabricLink Source Bucket: -
                   FabricLink Peer Role: -
                 FabricLink Peer Bucket: -
                    FabricLink Topology: -
             FabricLink Pull Byte Count: -
             FabricLink Push Byte Count: -
          FabricLink Pending Work Count: -
                      FabricLink Status: -

# 初回転送が完了したことを確認
::> snapmirror show -instance

                            Source Path: SVM:vol_test
                       Destination Path: SVM:vol_test_dst
                      Relationship Type: XDP
                Relationship Group Type: none
                    SnapMirror Schedule: 5min
                 SnapMirror Policy Type: async-mirror
                      SnapMirror Policy: MirrorAllSnapshots
                            Tries Limit: -
                      Throttle (KB/sec): unlimited
                           Mirror State: Snapmirrored
                    Relationship Status: Idle
                File Restore File Count: -
                 File Restore File List: -
                      Transfer Snapshot: -
                      Snapshot Progress: -
                         Total Progress: -
    Percent Complete for Current Status: -
              Network Compression Ratio: -
                    Snapshot Checkpoint: -
                        Newest Snapshot: snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_170656
              Newest Snapshot Timestamp: 04/23 17:06:56
                      Exported Snapshot: snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_170656
            Exported Snapshot Timestamp: 04/23 17:06:56
                                Healthy: true
                       Unhealthy Reason: -
                Destination Volume Node: FsxId05f72eb8f8d03c709-01
                        Relationship ID: d06da471-e1ad-11ed-8ae3-ad4807b2c637
                   Current Operation ID: -
                          Transfer Type: -
                         Transfer Error: -
                       Current Throttle: -
              Current Transfer Priority: -
                     Last Transfer Type: update
                    Last Transfer Error: -
                     Last Transfer Size: 32.03KB
Last Transfer Network Compression Ratio: 1:1
                 Last Transfer Duration: 0:0:19
                     Last Transfer From: SVM:vol_test
            Last Transfer End Timestamp: 04/23 17:08:21
                  Progress Last Updated: -
                Relationship Capability: 8.2 and above
                               Lag Time: 0:1:32
           Identity Preserve Vserver DR: -
                 Volume MSIDs Preserved: -
                 Is Auto Expand Enabled: -
           Number of Successful Updates: 1
               Number of Failed Updates: 0
           Number of Successful Resyncs: 0
               Number of Failed Resyncs: 0
            Number of Successful Breaks: 0
                Number of Failed Breaks: 0
                   Total Transfer Bytes: 11021271072
         Total Transfer Time in Seconds: 85
                 FabricLink Source Role: -
               FabricLink Source Bucket: -
                   FabricLink Peer Role: -
                 FabricLink Peer Bucket: -
                    FabricLink Topology: -
             FabricLink Pull Byte Count: -
             FabricLink Push Byte Count: -
          FabricLink Pending Work Count: -
                      FabricLink Status: -

初回転送完了後、転送元/転送先のボリュームでSnapshotを確認します。

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.16MB     0%    0%
                  hourly.2023-04-23_1205                   156KB     0%    0%
                  hourly.2023-04-23_1305                   164KB     0%    0%
                  hourly.2023-04-23_1405                   156KB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_170656
                                                           136KB     0%    0%
11 entries were displayed.

# 転送先ボリュームのSnapshot一覧
::> snapshot show -volume vol_test_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_dst
                  weekly.2023-04-16_0015                 29.70MB     0%    0%
                  daily.2023-04-22_0010                    368KB     0%    0%
                  daily.2023-04-23_0010                    300KB     0%    0%
                  weekly.2023-04-23_0015                   236KB     0%    0%
                  hourly.2023-04-23_1205                   236KB     0%    0%
                  hourly.2023-04-23_1305                   236KB     0%    0%
                  hourly.2023-04-23_1405                   236KB     0%    0%
                  hourly.2023-04-23_1505                   232KB     0%    0%
                  hourly.2023-04-23_1605                   232KB     0%    0%
                  hourly.2023-04-23_1705                   232KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_170656
                                                           156KB     0%    0%
11 entries were displayed.

転送元ボリュームの全てのSnapshotが転送先ボリュームに転送されていますね。

転送元ボリュームからSnapshotを削除した状態でSnapMirror

それでは転送元ボリュームからSnapshotを削除した状態でSnapMirrorをしたときの転送先ボリュームのSnapshotを確認します。

転送元ボリュームからhourly.2023-04-23_1205というSnapshotを削除します。

# Snapshotの削除
::> snapshot delete -vserver SVM -volume vol_test -snapshot hourly.2023-04-23_1205

Warning: Deleting a Snapshot copy permanently removes data that is stored only in that Snapshot copy. Are you sure you want to delete Snapshot copy "hourly.2023-04-23_1205" for
         volume "vol_test" in Vserver "SVM" ? {y|n}: y

# Snapshotが削除されたことを確認
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.17MB     0%    0%
                  hourly.2023-04-23_1305                   164KB     0%    0%
                  hourly.2023-04-23_1405                   156KB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171000
                                                           144KB     0%    0%
10 entries were displayed.

SnapShotが削除されましたね。

Snapshotsnapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_170656が削除されて、snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171000となっているのは作業中に5分間隔で設定しているSnapMirrorが動作したためです。

# SnapMirrorの履歴
::> snapmirror show-history

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
SVM:vol_test_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 17:10:00
                                              4/23/2023 17:10:05
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        initialize
                                  1/1/1970 09:00:00
                                              4/23/2023 17:08:02
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        create    4/23/2023 17:06:56
                                              4/23/2023 17:06:56
                                                          success
3 entries were displayed.

# SnapMirrorの履歴の詳細
::> snapmirror show-history -instance

           Destination Path: SVM:vol_test_dst
                Source Path: SVM:vol_test
            Relationship ID: d06da471-e1ad-11ed-8ae3-ad4807b2c637
    Relationship Group Type: none
                  Operation: scheduled-update
               Operation ID: 6f92c8f7-5ae6-464d-908b-658ce4ec1f69
                 Start Time: 4/23/2023 17:10:00
                   End Time: 4/23/2023 17:10:05
                     Result: success
              Transfer Size: 3.20KB
     Additional Information: -

           Destination Path: SVM:vol_test_dst
                Source Path: SVM:vol_test
            Relationship ID: d06da471-e1ad-11ed-8ae3-ad4807b2c637
    Relationship Group Type: none
                  Operation: initialize
               Operation ID: cd202b20-5514-4c8e-9102-7ad02ceeb784
                 Start Time: 1/1/1970 09:00:00
                   End Time: 4/23/2023 17:08:02
                     Result: success
              Transfer Size: 10.26GB
     Additional Information: -

           Destination Path: SVM:vol_test_dst
                Source Path: SVM:vol_test
            Relationship ID: d06da471-e1ad-11ed-8ae3-ad4807b2c637
    Relationship Group Type: none
                  Operation: create
               Operation ID: d06da3fe-e1ad-11ed-8ae3-ad4807b2c637
                 Start Time: 4/23/2023 17:06:56
                   End Time: 4/23/2023 17:06:56
                     Result: success
              Transfer Size: -
     Additional Information: -

3 entries were displayed.

この状態のままSnapMirrorが動作するのを待ちます。

SnapMirror実行後、転送先ボリュームのSnapShotを確認すると、確かに転送元ボリュームからhourly.2023-04-23_1205というSnapshotがなくなっていることを確認できました。

# SnapMirrorが実行されたことを確認
::> snapmirror show-history

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
SVM:vol_test_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 17:15:00
                                              4/23/2023 17:15:05
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 17:10:00
                                              4/23/2023 17:10:05
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        initialize
                                  1/1/1970 09:00:00
                                              4/23/2023 17:08:02
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        create    4/23/2023 17:06:56
                                              4/23/2023 17:06:56
                                                          success
4 entries were displayed.

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.17MB     0%    0%
                  hourly.2023-04-23_1305                   164KB     0%    0%
                  hourly.2023-04-23_1405                   156KB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171500
                                                           144KB     0%    0%
10 entries were displayed.

# 転送先ボリュームのSnapshot一覧
::> snapshot show -volume vol_test_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_dst
                  weekly.2023-04-16_0015                 29.70MB     0%    0%
                  daily.2023-04-22_0010                    368KB     0%    0%
                  daily.2023-04-23_0010                    300KB     0%    0%
                  weekly.2023-04-23_0015                   236KB     0%    0%
                  hourly.2023-04-23_1305                   236KB     0%    0%
                  hourly.2023-04-23_1405                   236KB     0%    0%
                  hourly.2023-04-23_1505                   232KB     0%    0%
                  hourly.2023-04-23_1605                   232KB     0%    0%
                  hourly.2023-04-23_1705                   232KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171000
                                                           244KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171500
                                                           156KB     0%    0%
11 entries were displayed.

なお、転送先ボリュームのSnapshotにsnapmirrorから始まるものが2つありますが、これは2世代でローテーションされるため個数が増えていくことはありません。

実際にSnapMirrorの次回転送が完了すると、snapmirrorから始まる最も古いSnapshotsnapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171000が削除されたことが分かります。

# SnapMirrorが実行されたことを確認
::> snapmirror show-history

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
SVM:vol_test_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 17:20:00
                                              4/23/2023 17:20:05
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 17:15:00
                                              4/23/2023 17:15:05
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 17:10:00
                                              4/23/2023 17:10:05
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        initialize
                                  1/1/1970 09:00:00
                                              4/23/2023 17:08:02
                                                          success
SVM:vol_test_dst
            SVM:vol_test
                        create    4/23/2023 17:06:56
                                              4/23/2023 17:06:56
                                                          success
5 entries were displayed.

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.17MB     0%    0%
                  hourly.2023-04-23_1305                   164KB     0%    0%
                  hourly.2023-04-23_1405                   156KB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           144KB     0%    0%
10 entries were displayed.

# 転送先ボリュームのSnapshot一覧
::> snapshot show -volume vol_test_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_dst
                  weekly.2023-04-16_0015                 29.70MB     0%    0%
                  daily.2023-04-22_0010                    368KB     0%    0%
                  daily.2023-04-23_0010                    300KB     0%    0%
                  weekly.2023-04-23_0015                   236KB     0%    0%
                  hourly.2023-04-23_1305                   236KB     0%    0%
                  hourly.2023-04-23_1405                   236KB     0%    0%
                  hourly.2023-04-23_1505                   232KB     0%    0%
                  hourly.2023-04-23_1605                   232KB     0%    0%
                  hourly.2023-04-23_1705                   244KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_171500
                                                           240KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           156KB     0%    0%
11 entries were displayed.

放っておくとSnapMirrorの履歴を確認するのが大変なので、snapmirror quiesceで次回以降の転送を停止しておきます。

# 次回以降の転送を中止
::> snapmirror quiesce -destination-path SVM:vol_test_dst -source-path SVM:vol_test
Operation succeeded: snapmirror quiesce for destination "SVM:vol_test_dst".

# Relationship Status が Quiesced になったことを確認
::> snapmirror show
                                                                       Progress
Source            Destination Mirror  Relationship   Total             Last
Path        Type  Path        State   Status         Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
SVM:vol_test
            XDP  SVM:vol_test_dst
                              Snapmirrored
                                      Quiesced       -         true    -

転送を再開したい場合はsnapmirror resumeを実行します。

SnapVault

SnapMirror relationshipの作成と初回転送

次にSnapVaultの検証を行います。

まず、SnapVault用のSnapMirror relationshipの作成と初回転送を行います。

SnapVaultを使用する場合はSnapMirror policy Typeがvaultもしくはmirror-vaultを選択します。今回はXDPDefaultを選択します。

# SnapMirror policyの確認
::> snapmirror policy show -fields policy, type
vserver                policy       type
---------------------- ------------ ------------
FsxId05f72eb8f8d03c709 Asynchronous mirror-vault
FsxId05f72eb8f8d03c709 AutomatedFailOver
                                    automated-failover
FsxId05f72eb8f8d03c709 CloudBackupDefault
                                    vault
FsxId05f72eb8f8d03c709 Continuous   continuous
FsxId05f72eb8f8d03c709 DPDefault    async-mirror
FsxId05f72eb8f8d03c709 DailyBackup  vault
FsxId05f72eb8f8d03c709 MirrorAllSnapshots
                                    async-mirror
FsxId05f72eb8f8d03c709 MirrorAllSnapshotsDiscardNetwork
                                    async-mirror
FsxId05f72eb8f8d03c709 MirrorAndVault
                                    mirror-vault
FsxId05f72eb8f8d03c709 MirrorAndVaultDiscardNetwork
                                    mirror-vault
FsxId05f72eb8f8d03c709 MirrorLatest async-mirror
FsxId05f72eb8f8d03c709 SnapCenterAutomatedFailOver
                                    automated-failover
FsxId05f72eb8f8d03c709 SnapCenterSync
                                    sync-mirror
FsxId05f72eb8f8d03c709 StrictSync   strict-sync-mirror
FsxId05f72eb8f8d03c709 Sync         sync-mirror
FsxId05f72eb8f8d03c709 Unified7year mirror-vault
FsxId05f72eb8f8d03c709 XDPDefault   vault
17 entries were displayed.

# XDPDefault の確認
::> snapmirror policy show -policy XDPDefault -instance

                      Vserver: FsxId05f72eb8f8d03c709
       SnapMirror Policy Name: XDPDefault
       SnapMirror Policy Type: vault
                 Policy Owner: cluster-admin
                  Tries Limit: 8
            Transfer Priority: normal
    Ignore accesstime Enabled: false
      Transfer Restartability: always
  Network Compression Enabled: false
              Create Snapshot: false
                      Comment: Vault policy with daily and weekly rules.
        Total Number of Rules: 2
                   Total Keep: 59
       Transfer Schedule Name: -
                     Throttle: unlimited
 Rules:
 SnapMirror Label              Keep Preserve Warn Schedule Prefix
 ----------------------------- ---- -------- ---- -------- ----------
 daily                            7 false       0 -        -
 weekly                          52 false       0 -        -

SnapVault用のSnapMirror relationshipの作成と初回転送を行います。

# 転送先ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.18MB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   148KB     0%    0%
11 entries were displayed.

# 転送先ボリュームの作成
# SnapMirror relationshipの作成
# SnapMirrorのベースライン転送の開始
::> snapmirror protect -path-list SVM:vol_test -destination-vserver SVM -policy XDPDefault -schedule 5min -auto-initialize true -support-tiering true -tiering-policy auto
[Job 1736] Job is queued: snapmirror protect for list of source endpoints beginning with "SVM:vol_test".

# SnapMirror relationshipが作成されたことを確認
::> snapmirror show
                                                                       Progress
Source            Destination Mirror  Relationship   Total             Last
Path        Type  Path        State   Status         Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
SVM:vol_test
            XDP  SVM:vol_test_dst
                              Snapmirrored
                                      Quiesced       -         false   -
                 SVM:vol_test_1_dst
                              Uninitialized
                                      Transferring   0B        true    04/23 20:53:28
2 entries were displayed.

# SnapMirror relationshipの詳細を確認
::> snapmirror show
                                                                       Progress
Source            Destination Mirror  Relationship   Total             Last
Path        Type  Path        State   Status         Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
SVM:vol_test
            XDP  SVM:vol_test_dst
                              Snapmirrored
                                      Quiesced       -         false   -
                 SVM:vol_test_1_dst
                              Snapmirrored
                                      Idle           -         true    -
2 entries were displayed.

# SnapVaultの転送が完了したことを確認
::> snapmirror show -destination-path SVM:vol_test_1_dst -instance

                            Source Path: SVM:vol_test
                       Destination Path: SVM:vol_test_1_dst
                      Relationship Type: XDP
                Relationship Group Type: none
                    SnapMirror Schedule: 5min
                 SnapMirror Policy Type: vault
                      SnapMirror Policy: XDPDefault
                            Tries Limit: -
                      Throttle (KB/sec): unlimited
                           Mirror State: Snapmirrored
                    Relationship Status: Idle
                File Restore File Count: -
                 File Restore File List: -
                      Transfer Snapshot: -
                      Snapshot Progress: -
                         Total Progress: -
    Percent Complete for Current Status: -
              Network Compression Ratio: -
                    Snapshot Checkpoint: -
                        Newest Snapshot: snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
              Newest Snapshot Timestamp: 04/23 20:53:28
                      Exported Snapshot: snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
            Exported Snapshot Timestamp: 04/23 20:53:28
                                Healthy: true
                       Unhealthy Reason: -
                Destination Volume Node: FsxId05f72eb8f8d03c709-01
                        Relationship ID: 7605aa41-e1cd-11ed-8ae3-ad4807b2c637
                   Current Operation ID: -
                          Transfer Type: -
                         Transfer Error: -
                       Current Throttle: -
              Current Transfer Priority: -
                     Last Transfer Type: update
                    Last Transfer Error: -
                     Last Transfer Size: 0B
Last Transfer Network Compression Ratio: 1:1
                 Last Transfer Duration: 0:0:0
                     Last Transfer From: SVM:vol_test
            Last Transfer End Timestamp: 04/23 20:55:02
                  Progress Last Updated: -
                Relationship Capability: 8.2 and above
                               Lag Time: 0:2:55
           Identity Preserve Vserver DR: -
                 Volume MSIDs Preserved: -
                 Is Auto Expand Enabled: -
           Number of Successful Updates: 1
               Number of Failed Updates: 0
           Number of Successful Resyncs: 0
               Number of Failed Resyncs: 0
            Number of Successful Breaks: 0
                Number of Failed Breaks: 0
                   Total Transfer Bytes: 11021238272
         Total Transfer Time in Seconds: 71
                 FabricLink Source Role: -
               FabricLink Source Bucket: -
                   FabricLink Peer Role: -
                 FabricLink Peer Bucket: -
                    FabricLink Topology: -
             FabricLink Pull Byte Count: -
             FabricLink Push Byte Count: -
          FabricLink Pending Work Count: -
                      FabricLink Status: -

Mirror StateSnapmirroredになりましたね。

SnapVaultの転送先Snapshot一覧を確認します。

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.18MB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   156KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
                                                           136KB     0%    0%
12 entries were displayed.

# 転送先ボリュームのSnapshot一覧
::> snapshot show -volume vol_test_1_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_1_dst
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
                                                           176KB     0%    0%

転送先ボリュームが作成され、ベースラインとなるSnapshotsnapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328が転送されました。

SnapMirrorと異なり、以前に取得されたSnapshotは転送されません。

# SnapVaultの実行履歴の確認
::> snapmirror show-history -destination-path SVM:vol_test_1_dst

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
SVM:vol_test_1_dst
            SVM:vol_test
                        scheduled-update
                                  4/23/2023 21:00:00
                                              4/23/2023 21:00:03
                                                          success
SVM:vol_test_1_dst
            SVM:vol_test
                        initialize
                                  1/1/1970 09:00:00
                                              4/23/2023 20:54:39
                                                          success
SVM:vol_test_1_dst
            SVM:vol_test
                        create    4/23/2023 20:53:28
                                              4/23/2023 20:53:28
                                                          success
3 entries were displayed.

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.18MB     0%    0%
                  hourly.2023-04-23_1505                   156KB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   156KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
                                                           136KB     0%    0%
12 entries were displayed.

# 転送先ボリュームのSnapshot一覧
::> snapshot show -volume vol_test_1_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_1_dst
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
                                                           180KB     0%    0%

これはSnapMirrorの時に使用したSnapMirror policyMirrorAllSnapshotsと異なり、all_source_snapshotsというSnapMirror Labelが指定されていないためです。

MirrorAllSnapshots. This also is an asynchronous policy for mirroring all Snapshot copies and the latest active file system from the primary to the secondary. This policy is similar to DPDefault (Figure 14).

This policy consists of the following settings:

SnapLabelを指定したSnapshotを取得してSnapVault

では、どのSnapshotが転送されるのかというと、ベースラインSnapshot以降に作成されたSnapMirror policyに設定されているSnapMirror Labelが付与されているSnapshotが転送されます。

今回選択したSnapMirror policyXDPDefaultではSnapMirror Labelにdailyweeklyを指定しています。

ということで、SnapMirror Labelにdailyを指定したSnapshotを作成して転送されるかを確認します。

# SnapMirror Labelを付与したSnapshotを作成
::> snapshot create -vserver SVM -volume vol_test -snapshot daily.2023-04-23_2107 -snapmirror-label daily

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.19MB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   156KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
                                                           144KB     0%    0%
                  hourly.2023-04-23_2105                   152KB     0%    0%
                  daily.2023-04-23_2107                    136KB     0%    0%
13 entries were displayed.

# 転送元ボリュームのSnapshotのSnapMirror Labelの確認
::> snapshot show -volume vol_test -fields snapmirror-label
vserver volume   snapshot               snapmirror-label
------- -------- ---------------------- ----------------
SVM     vol_test weekly.2023-04-16_0015 weekly
SVM     vol_test daily.2023-04-22_0010  daily
SVM     vol_test daily.2023-04-23_0010  daily
SVM     vol_test weekly.2023-04-23_0015 weekly
SVM     vol_test hourly.2023-04-23_1605 -
SVM     vol_test hourly.2023-04-23_1705 -
SVM     vol_test snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                        -
SVM     vol_test hourly.2023-04-23_1805 -
SVM     vol_test hourly.2023-04-23_1905 -
SVM     vol_test hourly.2023-04-23_2005 -
SVM     vol_test snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877971.2023-04-23_205328
                                        -
SVM     vol_test hourly.2023-04-23_2105 -
SVM     vol_test daily.2023-04-23_2107  daily
13 entries were displayed.

この状態でSnapVaultによりSnapshotが転送されることを待ちます。

転送完了後、転送先ボリュームのSnapshot一覧を確認すると、SnapMirro Labeldailyを付与したSnapshotが転送されたことが分かります。

::> snapshot show -volume vol_test_1_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_1_dst
                  daily.2023-04-23_2107                    160KB     0%    0%

転送元ボリュームからSnapshotを削除した状態でSnapVault

それでは転送元ボリュームからSnapshotを削除した状態でSnapVaultによるSnapshotの転送をした際の挙動を確認します。

まず、先ほど作成したdaily.2023-04-23_2107を削除します。

::> snapshot delete -vserver SVM -volume vol_test -snapshot daily.2023-04-23_2107

Warning: Deleting a Snapshot copy permanently removes data that is stored only in that Snapshot copy. Are you sure you want to delete Snapshot copy "daily.2023-04-23_2107" for
         volume "vol_test" in Vserver "SVM" ? {y|n}: y

ついでに、SnapMirror policyに設定されているSnapMirror Labelが付与されているSnapshotを複数指定した場合の挙動も確認したかったので、SnapMirror Labelを付与したSnapshotを複数作成します。

# SnapMirror Labelを付与したSnapshotを作成
::> snapshot create -vserver SVM -volume vol_test -snapshot daily.2023-04-23_2122 -snapmirror-label daily

::> snapshot create -vserver SVM -volume vol_test -snapshot daily.2023-04-23_2123 -snapmirror-label daily

::> snapshot create -vserver SVM -volume vol_test -snapshot weekly.2023-04-23_2123 -snapmirror-label weekly

::> snapshot create -vserver SVM -volume vol_test -snapshot weekly.2023-04-23_2124 -snapmirror-label weekly

# 転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.19MB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   156KB     0%    0%
                  hourly.2023-04-23_2105                   152KB     0%    0%
                  daily.2023-04-23_2122                    140KB     0%    0%
                  daily.2023-04-23_2123                    140KB     0%    0%
                  weekly.2023-04-23_2123                   140KB     0%    0%
                  weekly.2023-04-23_2124                   144KB     0%    0%
15 entries were displayed.

この状態でSnapVaultによりSnapshotが転送されることを待ちます。

転送完了後、転送先ボリュームを確認すると、転送元ボリュームで削除したSnapshotdaily.2023-04-23_2107は転送先ボリュームでは削除されていません。また、複数作成したSnapMirror Labelを付与したSnapshotも転送されています。

::> snapshot show -volume vol_test_1_dst
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test_1_dst
                  daily.2023-04-23_2107                    484KB     0%    0%
                  daily.2023-04-23_2122                    268KB     0%    0%
                  daily.2023-04-23_2123                    232KB     0%    0%
                  weekly.2023-04-23_2123                   232KB     0%    0%
                  weekly.2023-04-23_2124                   156KB     0%    0%
5 entries were displayed.

SnapMirrorがSnapshotのミラーリングで、SnapVaultがSnapshotの保管庫(バックアップ)であることがよく分かりますね。

なお、Snapshotの保持世代数はSnapMirror policyのSnapshot Label毎のkeepを確認すれば分かります。XDPDefaultの場合はdailyは7世代、weeklyは52世代です。

SnapMirror restore

SnapVaultはSnapshotのバックアップとして使用します。

そのため、SnapMirrorと異なり、障害発生時にSnapVaultの転送先をプライマリとして昇格させるということは行いません。

では、障害発生時にどのようにリストアするかというと、SnapMirrorの機能で転送先ボリューム内のSnapshotからボリューム全体の内容をリストアすることで対応します。

実際に試してみましょう。

まず、転送元ボリュームにジャンクションパスを設定します。

::> volume mount -vserver SVM -volume vol_test -junction-path /vol_test

NFSクライアントから転送元ボリュームをNFSでマウントします。

# マウント
$ sudo mount -t nfs svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol_test /mnt/fsxn/vol_test

# マウントできていることを確認
$ df -hT -t nfs4
Filesystem                                                                       Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol_test nfs4   16G   11G  5.2G  67% /mnt/fsxn/vol_test

ボリューム内にファイルがあることを確認して、ファイルを一部削除します。

# ファイルがあることを確認
$ ls -l /mnt/fsxn/vol_test/
total 15546744
-rw-r--r-- 1 root root 10737418240 Mar 31 07:20 test-file
-rw-r--r-- 1 root root  5120000000 Mar 31 07:22 zero_block_file

# ファイルを削除
$ sudo rm -rf /mnt/fsxn/vol_test/zero_block_file

# ファイルが削除されたことを確認
$ ls -l /mnt/fsxn/vol_test/
total 10527052
-rw-r--r-- 1 root root 10737418240 Mar 31 07:20 test-file

この状態でsnapmirror restoreで、SnapVaultの転送先ボリュームのSnapshotdaily.2023-04-23_2107を使用して転送元ボリュームをリストアします。

# ボリュームのリストア
::> snapmirror restore -source-path SVM:vol_test_1_dst -destination-path SVM:vol_test -source-snapshot daily.2023-04-23_2107

Warning: All data newer than Snapshot copy weekly.2023-04-23_2124 on volume SVM:vol_test will be deleted.
         Export policies currently enforced on the qtrees of volume "SVM:vol_test" will not change during this operation. If the currently enforced export policies are different
         from those in Snapshot copy "weekly.2023-04-23_2124", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
[Job 1741] Job is queued: snapmirror restore from source "SVM:vol_test_1_dst" for the snapshot daily.2023-04-23_2107.

# リストア後の転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    0%
                  daily.2023-04-22_0010                   2.87MB     0%    0%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.19MB     0%    0%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   156KB     0%    0%
                  hourly.2023-04-23_2105                   144KB     0%    0%
                  daily.2023-04-23_2122                    140KB     0%    0%
                  daily.2023-04-23_2123                    140KB     0%    0%
                  weekly.2023-04-23_2123                   140KB     0%    0%
                  weekly.2023-04-23_2124                  3.10MB     0%    0%
                  restored.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877945.daily.2023-04-23_2107.2023-04-23_215333
                                                           148KB     0%    0%
16 entries were displayed.

restored.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877945.daily.2023-04-23_2107.2023-04-23_215333というSnapshotが転送元ボリュームに作成されましたね。

NFSクライアントからボリューム内のファイルを確認すると、確かに削除したファイルがリストアされていることが分かります。

$ ls -l /mnt/fsxn/vol_test/
total 15546744
-rw-r--r-- 1 root root 10737418240 Mar 31 07:20 test-file
-rw-r--r-- 1 root root  5120000000 Mar 31 07:22 zero_block_file

SnapMirror restore (ファイル単位のリストア)

先ほどはボリューム丸ごとリストアをしました。

しかし、ファイル単位でリストアしたい場面もあると思います。

snapmirror restoreはファイル及びLUN毎にリストアすることも可能です。

snapmirror restore コマンドは、 Snapshot コピーの内容全体、または Snapshot コピーの 1 つ以上のファイルまたは LUN を、ボリューム間でリストアします。

「 snapmirror restore 」コマンドの使用方法 - NetApp

試してみましょう。

まず、転送元ボリュームでボリューム内の全てのファイルを削除します。

# 全てのファイルを削除
$ sudo rm -rf /mnt/fsxn/vol_test/*

# ファイルが削除されたことを確認
$ ls -l /mnt/fsxn/vol_test/
total 0

その後、snapmirror restoreで削除した1部ファイルをリストアします。

# zero_block_file のリストア
::> snapmirror restore -source-path SVM:vol_test_1_dst -destination-path SVM:vol_test -source-snapshot daily.2023-04-23_2107 -file-list /zero_block_file

Warning: This command will overwrite any file on destination "SVM:vol_test" that has the same path as any of the files to be restored.
Do you want to continue? {y|n}: y
[Job 1742] Job is queued: snapmirror restore from source "SVM:vol_test_1_dst" for the snapshot daily.2023-04-23_2107.

# リストア後の転送元ボリュームのSnapshot一覧
::> snapshot show -volume vol_test
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
SVM      vol_test
                  weekly.2023-04-16_0015                  1.58MB     0%    3%
                  daily.2023-04-22_0010                   2.87MB     0%    6%
                  daily.2023-04-23_0010                    152KB     0%    0%
                  weekly.2023-04-23_0015                  3.19MB     0%    6%
                  hourly.2023-04-23_1605                   156KB     0%    0%
                  hourly.2023-04-23_1705                   152KB     0%    0%
                  snapmirror.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877970.2023-04-23_172000
                                                           148KB     0%    0%
                  hourly.2023-04-23_1805                   148KB     0%    0%
                  hourly.2023-04-23_1905                   156KB     0%    0%
                  hourly.2023-04-23_2005                   156KB     0%    0%
                  hourly.2023-04-23_2105                   144KB     0%    0%
                  daily.2023-04-23_2122                    140KB     0%    0%
                  daily.2023-04-23_2123                    140KB     0%    0%
                  weekly.2023-04-23_2123                   140KB     0%    0%
                  weekly.2023-04-23_2124                  3.10MB     0%    6%
                  restored.49892dec-8ccc-11ed-946a-5191ab1a5297_2156877945.daily.2023-04-23_2107.2023-04-23_215333
                                                         10.07GB    63%  100%
16 entries were displayed.

すでにリストアに使用したSnapshotを保持しているからかリストア後の転送元ボリュームのSnapshot一覧の変化はありませんでした。

NFSクライアントでリストアしたファイルがあるか確認します。

$ ls -l /mnt/fsxn/vol_test/
total 5019692
-rw-r--r-- 1 root root 5120000000 Apr 23 12:57 zero_block_file

指定したファイルのみリストアされていますね。

SnapMirrorとSnapVaultを適宜使い分けよう

Amazon FSx for NetApp ONTAPにてSnapVaultを使ってSnapshotのバックアップをしてみました。

障害発生時にSnapshotからプライマリファイルシステム上でボリュームをリストアするのであればSnapVault、DRとしてセカンダリファイルシステムでカットオーバーするのであればSnapMirrorと、SnapMirrorとSnapVaultの用途を理解して適宜使い分けましょう。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!