[Amazon FSx for NetApp ONTAP] Tamperproof SnapshotによってSnapshotの保護をしてみた
Snapshotを削除できないようにしたい
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)のSnapshotを削除できないようしたいなと思ったことはありますか? 私はあります。
間違ってSnapshotを削除してしまったり、悪意のある攻撃者によってSnapshotが削除されてしまうと、リストアできたデータもリストアできません。
そんな時に役立つのがTamperproof Snapshotです。
Tamperproof SnapshotはAWS Blogsでもイミュータブルバックアップソリューションとして紹介されています。
Tamperproof Snapshotについて、より詳細に説明します。
いきなりまとめ
- Tamperproof Snapshotとはロック期限が切れるまでSnapshotを保護する機能
- 誤ってSnapshotが削除されたり、悪意を持って削除されたりすることを防ぐ
- SnapLockボリュームである必要はない
- ボリュームでSnapshotのロックを有効にして、Snapshot取得時にロック期限を指定するだけ
- ロック期限の変更は可能
- 現在のロック期限よりも短くすることは可能
- 通常のSnapshotにロック期限を設定することも可能
- ロック期限が切れていない最新のSnapshotからしかSnapRestoreできない
- SnapRestoreを活用したい場合は、ロック期限に要注意
- ロック期間中はボリュームの削除はできない
Tamperproof Snapshotとは
概要
Tamperproof Snapshotとはロック期限が切れるまでSnapshotを保護する機能です。上手に活用することで誤ってSnapshotが削除されたり、悪意を持って削除されたりすることを防ぐことが可能です。Tamperproof SnapshotはONTAP 9.12.1からサポートされました。
NetApp ONTAPにはSnapLockというWORM機能があります。SnapLockを使用することで、コミットされたデータはロック期間が経過するまで基本的に削除はできません。
SnapLockを使用する場合はボリュームをSnapLockボリュームにすることが求められます。一方、Tamperproof SnapshotではSnapLockボリュームでなくとも、Snapshotも保護することが可能です。
AWS BackupのWORM機能であるボールトロックは無料で使用できます。
SnapLockのようにAFS(アクティブファイルシステム)の保護までは求めておらず、Snapshotさえ無事であれば問題ないという場合にTamperproof Snapshotは役立ちそうです。
Tamperproof SnapshotによってSnapshotが無事であれば、SnapRestoreによってSnapshot取得時点にボリュームの状態を瞬時に戻すことが可能です。ランサムウェア対策にも効果を発揮しそうですね。
Tamperproof Snapshotでサポートされている機能は以下のとおりです。
- FlexVolume
- FlexGroup
- SnapshotのロックはルートコンスティチュエントSnapshotでのみ発生行われる
- FlexGroupを削除できるのは、ルートコンスティチュエントの有効期限を過ぎた場合のみ
- FlexVolume からFlexGroup への変換
- 変換後もSnapshotコピーはロックされたまま
- ボリュームクローンとファイルクローン
- ロックされたSnapshotからボリュームのクローンとファイルのクローンを作成できます。
注意点
注意点は以下のとおりです。
- ONTAP CLIを使用する場合、クラスタ内のすべてのノードでONTAP 9.12.1以降が必要
- System Managerを使用する場合、すべてのノードでONTAP 9.13.1以降が必要
- クラスタにSnapLockライセンスが必要
- クラスタのコンプライアンスクロックを初期化する必要がある
- Snapshotロックが有効なボリュームがある場合、ONTAP 9.12.1以降へのアップグレードは可能だが、ロックされたSnapshotが全て期限切れになるまで以前のバージョンへのリバートはできまない
- ロックされたSnapshotがある場合、ボリュームの有効期限は最も長いSnapshotの有効期限に設定される
- ロックされたSnapshotのロック期間は、保持数の制限よりも優先される
- SnapMirror relastionshipでは、デスティネーションでSnapshotロックが有効な場合、レプリケートされるSnapshotにロック期間が適用される
- SnapLock以外のボリュームでは、Snapshotの名前変更が可能
- SnapMirror relastionshipのプライマリボリュームでのSnapshotの名前変更は、MirrorAllSnapshotsポリシーの場合のみセカンダリに反映される
- ONTAP CLIでは、ロックされたSnapshotのリストアは、それが最新の場合のみ可能
- リストア対象のSnapshotより新しい期限切れ前のSnapshotがある場合、リストア処理は失敗する
2024/7/29時点でデプロイされるFSxNファイルシステムはONTAP 9.14.1なので、ONTAPのバージョンはあまり注意しなくとも良いでしょう。
FSxNではクラスタにSnapLockライセンスはデフォルトで導入済みで、クラスタのコンプライアンスクロックも初期化されています。こちらも心配する必要はありません。
もっとも注意すべきなのは「Tamperproof Snapshotがあるボリュームは削除できない」と「SnapRestoreする際に、期限切れ前のTamperproof Snapshotがある場合はリストアが失敗する」というものでしょうか。
前者についてはそのままです。Snapshotのロック期間を100年にすると、そのボリュームは100年間削除することができません。FSxNファイルシステムはルートボリューム以外を削除しなければ削除できないため、必然的に100年間FSxNファイルシステムの削除をすることができません。そのような場合はAWSアカウントを閉鎖することになると推測します。
後者については全てのSnapshotをTamperproof Snapshotにすると、有効期限切れ前の最新のSnapshotからしかSnapRestoreできません。Snapshotのロック有無ごとのSnapRestore可否を図に表すと以下のとおりです。
もし、7/4の状態に戻したいのであれば、Snapshotディレクトリからcp
などで手動でデータを移動させる必要があります。利用する際はSnapRestoreで戻す範囲を考慮すると良いでしょう。
おおよそボリューム全体を特定時点にリストアする際は、最後に取得されたSnapshotを使いたいことがほとんどでしょう。hourly
でロック期間1時間にしておけば多くの運用パターンで対応できそうな気がしています。
Tamperproof Snapshotがサポートしていない機能は以下のとおりです。
- Cloud Volumes ONTAP
- 整合グループ
- FabricPool
- FlexCache
- SMtape
- SnapMirror active sync
-schedule
を使用したSnapMirrorポリシールール- SnapMirror synchronous
- SVMのデータの移動
FabricPoolはサポートされないのは気になりますね。後ほど検証します。
「-schedule
を使用したSnapMirrorポリシールール」については、ほとんどの場合においてスケジュール設定をするのはSnapMirror relastionship単位であり、普段は気にする必要はないです。
料金
2024//7/29時点ではTamperproof Snapshotについて追加料金はかかりません。
ただし、今後SnapLockライセンスの料金体系が適用される可能性もあるので注意しましょう。
やってみた
検証環境
検証環境は以下のとおりです。
以下記事の検証で使用したものを再利用します。東京リージョンとバージニア北部リージョンにFSxNファイルシステムを用意しています。
Snapshotロックボリュームの作成
Snapshotロックボリュームの作成から試します。
バージニア北部リージョンのFSxNファイルシステムで作業します。
$ ssh fsxadmin@management.fs-09b61052262da98b8.fsx.us-east-1.amazonaws.com
(fsxadmin@management.fs-09b61052262da98b8.fsx.us-east-1.amazonaws.com) Password:
Last login time: 7/19/2024 04:48:28
Your privilege has changed since last login.
::> version
NetApp Release 9.14.1P5: Sat May 18 19:42:16 UTC 2024
::> set diag
Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y
ONTAPのバージョンはONTAP 9.14.1ですね。
SnapLockのコンプライアンスクロックが初期化済みであることを確認します。
8::*> snaplock compliance-clock
initialize ntp show
::*> snaplock compliance-clock show
Node ComplianceClock Time Node ID ID
----------- ----------------------------------- ---------- -------------
FsxId09b61052262da98b8-01
Mon Jul 29 06:09:33 UTC 2024 +00:00 3323135574 1719462892418
FsxId09b61052262da98b8-02
Mon Jul 29 06:09:31 UTC 2024 +00:00 3323135653 1719462891641
2 entries were displayed.
それでは、Snapshotロックボリュームを作成します。
まず、ボリューム作成時に併せてSnapshotのロックを有効化します。
::*> volume create -vserver svm_use1 -volume vol_ss_lock_1 -aggregate aggr1 -size 16GB -state online -policy default -tiering-policy none -junction-path /vol_ss_lock_1 -snapshot-locking-enabled true
Warning: Snapshot copy locking is being enabled on volume "vol_ss_lock_1" in Vserver "svm_use1". It cannot be disabled until all locked Snapshot copies are past their expiry time. A volume with unexpired locked
Snapshot copies cannot be deleted.
Do you want to continue? {y|n}: y
[Job 469] Job succeeded: Successful
::*> volume show -volume vol_ss_lock_1 -fields snapshot-locking-enabled
vserver volume snapshot-locking-enabled
-------- ------------- ------------------------
svm_use1 vol_ss_lock_1 true
作成時にSnapshotロックの場合の注意書きが表示されましたね。snapshot-locking-enabled
が trueになっています。
次に既存ボリュームをSnapshotロックボリュームに変更する場合です。
::*> volume create -vserver svm_use1 -volume vol_ss_lock_2 -aggregate aggr1 -size 16GB -state online -policy default -tiering-policy none -junction-path /vol_ss_lock_2 -snapshot-locking-enabled false
[Job 471] Job succeeded: Successful
::*> volume show -volume vol_ss_lock_2 -fields snapshot-locking-enabledvserver volume snapshot-locking-enabled
-------- ------------- ------------------------
svm_use1 vol_ss_lock_2 false
::*> volume modify -vserver svm_use1 -volume vol_ss_lock_2 -snapshot-locking-enabled true
Warning: Snapshot copy locking is being enabled on volume "vol_ss_lock_2" in Vserver "svm_use1". It cannot be disabled until all locked Snapshot copies are past their expiry time. A volume with unexpired locked
Snapshot copies cannot be deleted.
Do you want to continue? {y|n}: y
Volume modify successful on volume vol_ss_lock_2 of Vserver svm_use1.
::*> volume show -volume vol_ss_lock_2 -fields snapshot-locking-enabled
vserver volume snapshot-locking-enabled
-------- ------------- ------------------------
svm_use1 vol_ss_lock_2 true
問題なく変更できました。
Snapshotロックの無効ができることを確認します。
::*> volume modify -vserver svm_use1 -volume vol_ss_lock_2 -snapshot-locking-enabled false
Volume modify successful on volume vol_ss_lock_2 of Vserver svm_use1.
::*> volume show -volume vol_ss_lock_2 -fields snapshot-locking-enabled
vserver volume snapshot-locking-enabled
-------- ------------- ------------------------
svm_use1 vol_ss_lock_2 false
::*> volume modify -vserver svm_use1 -volume vol_ss_lock_2 -snapshot-locking-enabled true
Warning: Snapshot copy locking is being enabled on volume "vol_ss_lock_2" in Vserver "svm_use1". It cannot be disabled until all locked Snapshot copies are past their expiry time. A volume with unexpired locked
Snapshot copies cannot be deleted.
Do you want to continue? {y|n}: y
Volume modify successful on volume vol_ss_lock_2 of Vserver svm_use1.
問題なくできますね。
Tamperproof Snapshotの手動取得
それではTamperproof Snapshotを取得します。
まずは手動で取得する場合です。
事前準備としてNFSクライアントからボリュームをマウントして、適当なファイルを用意しておきます。
$ sudo mkdir -p /mnt/fsxn/vol_ss_lock_1
$ sudo mkdir -p /mnt/fsxn/vol_ss_lock_2
$ sudo mount -t nfs svm-0bed7a19e83f8e6c5.fs-09b61052262da98b8.fsx.us-east-1.amazonaws.com:/vol_ss_lock_1 /mnt/fsxn/vol_ss_lock_1
$ sudo mount -t nfs svm-0bed7a19e83f8e6c5.fs-09b61052262da98b8.fsx.us-east-1.amazonaws.com:/vol_ss_lock_2 /mnt/fsxn/vol_ss_lock_2
$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
svm-0bed7a19e83f8e6c5.fs-09b61052262da98b8.fsx.us-east-1.amazonaws.com:/vol_ss_lock_1 nfs4 16G 320K 16G 1% /mnt/fsxn/vol_ss_lock_1
svm-0bed7a19e83f8e6c5.fs-09b61052262da98b8.fsx.us-east-1.amazonaws.com:/vol_ss_lock_2 nfs4 16G 320K 16G 1% /mnt/fsxn/vol_ss_lock_2
$ sudo touch /mnt/fsxn/vol_ss_lock_1/test_1.txt
$ ls -l /mnt/fsxn/vol_ss_lock_1/
total 0
-rw-r--r--. 1 root root 0 Jul 29 06:23 test_1.txt
Tamperproof Snapshotを取得します。取得する際はvolume snapshot createの-snaplock-expiry-time
オプションで有効期限を指定します。
::*> snapshot create -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_063400 -snapmirror-label ss_lock -snaplock-expiry-time 7/29/2024 06:36:00
::*> snapshot show -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time
vserver volume snapshot expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_063400 - 7/29/2024 06:36:00 +00:00
ロック期限が7/29/2024 06:36:00
のSnapshotが取得されました。
ロック期限前にSnapshotを削除しようとして、怒られることを確認します。
::*> snapshot delete -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_063400
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 "ss_lock.2024-07-29_063400" for volume "vol_ss_lock_1" in
Vserver "svm_use1" ? {y|n}: y
Error: command failed: Failed to delete snapshot "ss_lock.2024-07-29_063400" of volume "vol_ss_lock_1" on Vserver "svm_use1". Reason: Illegal operation on Snapshot locked by SnapLock.
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 06:35:58 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 06:35:58 +00:00 Etc/UTC
2 entries were displayed.
NFSクライアントからファイルを削除し、Snapshotのロックがかかっていたとしてもファイルの削除はできることを確認します。
$ sudo rm -rf /mnt/fsxn/vol_ss_lock_1/test_1.txt
$ ls -l /mnt/fsxn/vol_ss_lock_1/
total 0
$ ls -l /mnt/fsxn/vol_ss_lock_1/.snapshot
total 4
drwxr-xr-x. 2 root root 4096 Jul 29 06:23 ss_lock.2024-07-29_063400
$ ls -l /mnt/fsxn/vol_ss_lock_1/.snapshot/ss_lock.2024-07-29_063400/
total 0
-rw-r--r--. 1 root root 0 Jul 29 06:23 test_1.txt
$ date
Mon Jul 29 06:35:45 UTC 2024
ロック期限切れ後にSnapshotが削除できるようになったことを確認します。
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 06:36:11 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 06:36:11 +00:00 Etc/UTC
2 entries were displayed.
::*> snapshot delete -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_063400
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 "ss_lock.2024-07-29_063400" for volume "vol_ss_lock_1" in
Vserver "svm_use1" ? {y|n}: y
::*> snapshot show -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time
There are no entries matching your query.
再度Tamperproof Snapshotを取得し、有効期限切れ前は削除できないことを確認します。
::*> snapshot create -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_064200 -snapmirror-label ss_lock -snaplock-expiry-time 7/29/2024 06:45:00
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_064200 Mon Jul 29 06:42:01 2024 140KB ss_lock - 424KB - 7/29/2024 06:45:00 +00:00
::*> volume offline -vserver svm_use1 -volume vol_ss_lock_1
Warning: Volume "vol_ss_lock_1" on Vserver "svm_use1" must be unmounted before being taken offline or restricted. Clients will not be able to access the affected volume and related junction paths after that. Do
you still want to unmount the volume and continue? {y|n}: y
Volume "svm_use1:vol_ss_lock_1" is now offline.
::*> volume delete -volume vol_ss_lock_1
Error: command failed: Failed to delete volume "vol_ss_lock_1" in Vserver "svm_use1". The volume has one or more unexpired locked Snapshot copies.
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 06:43:00 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 06:43:00 +00:00 Etc/UTC
2 entries were displayed.
有効期限切れ後にボリュームが削除できるようになったことを確認します。
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 06:45:04 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 06:45:04 +00:00 Etc/UTC
2 entries were displayed.
::*> volume delete -volume vol_ss_lock_1
Error: command failed: Failed to delete volume "vol_ss_lock_1" in Vserver "svm_use1". The volume has one or more unexpired locked Snapshot copies.
削除できませんでした。もしかすると、有効期限切れ前にボリュームをオフラインにしてしまったがために削除できないのかもしれません。
一度ボリュームをオンラインにしてから再度ボリュームを削除します。
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
There are no entries matching your query.
Info: Unable to get information for Snapshot copies of volume "vol_ss_lock_1" on Vserver "svm_use1". Reason: Volume not online.
::*> volume online -vserver svm_use1 -volume vol_ss_lock_1
Volume "svm_use1:vol_ss_lock_1" is now online.
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_064200 Mon Jul 29 06:42:01 2024 140KB ss_lock - 424KB - 7/29/2024 06:45:00 +00:00
::*> volume offline -vserver svm_use1 -volume vol_ss_lock_1
Volume "svm_use1:vol_ss_lock_1" is now offline.
::*> volume delete -volume vol_ss_lock_1
Warning: Unable to list entries for kernel on node "FsxId09b61052262da98b8-01": Volume is offline.
Info: Volume "vol_ss_lock_1" in Vserver "svm_use1" will be marked as deleted and placed in the volume recovery queue. The space used by the volume will be recovered only after the retention period of 12 hours has
completed. To recover the space immediately, get the volume name using (privilege:advanced) "volume recovery-queue show vol_ss_lock_1_*" and then "volume recovery-queue purge -vserver svm_use1 -volume
<volume_name>" command. To recover the volume use the (privilege:advanced) "volume recovery-queue recover -vserver svm_use1 -volume <volume_name>" command.
Warning: Are you sure you want to delete volume "vol_ss_lock_1" in Vserver "svm_use1" ? {y|n}: y
[Job 474] Job succeeded: Successful
::*> volume show -vserver svm_use1 -volume vol_ss_lock_1
There are no entries matching your query.
今度はボリュームを削除できました。有効期限切れ前にボリュームをオフラインにしてしまった場合は一度オンラインにしてあげましょう。
削除したボリュームは再度作り直しておきます。
::*> volume create -vserver svm_use1 -volume vol_ss_lock_1 -aggregate aggr1 -size 16GB -state online -policy default -tiering-policy none -junction-path /vol_ss_lock_1 -snapshot-locking-enabled true
Warning: Snapshot copy locking is being enabled on volume "vol_ss_lock_1" in Vserver "svm_use1". It cannot be disabled until all locked Snapshot copies are past their expiry time. A volume with unexpired locked
Snapshot copies cannot be deleted.
Do you want to continue? {y|n}: y
[Job 476] Job succeeded: Successful
::*> volume show -volume vol_ss_lock_1 -fields snapshot-locking-enabled
vserver volume snapshot-locking-enabled
-------- ------------- ------------------------
svm_use1 vol_ss_lock_1 true
通常のSnapshotをTamperproof Snapshotに変更
通常のSnapshotをTamperproof Snapshotに変更してみます。
volume snapshot modify-snaplock-expiry-timeの-expiry-time
で有効期限を指定することでTamperproof Snapshotとすることが可能です。
::*> snapshot create -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_065040 -snapmirror-label ss_lock
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 172KB ss_lock - 320KB - -
::*> snapshot modify-snaplock-expiry-time -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_065040 -expiry-time 7/29/2024 06:54:00
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 172KB ss_lock - 320KB - 7/29/2024 06:54:00 +00:00
確かにsnaplock-expiry-time
が設定されています。
Tamperproof Snapshotのロック期限の変更
Tamperproof Snapshotのロック期限の変更してみます。
まずは、現在のロック期限よりも短くしようとしてみます。
::*> snapshot modify-snaplock-expiry-time -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_065040 -expiry-time 7/29/2024 06:53:00
Error: command failed: SnapLock expiry time cannot be before the current expiry time.
はい、怒られました。現在のロック期限よりも短くすることはできないとエラーになっていますね。
次に現在の期限よりも先の時間を設定します。
::*> snapshot modify-snaplock-expiry-time -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_065040 -expiry-time 7/29/2024 06:54:10
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 188KB ss_lock - 320KB - 7/29/2024 06:54:10 +00:00
こちらは問題なく受け付けられました。フォレンジックなどでデフォルトのロック期限よりも長くロックさせたい場合に役立ちそうですね。
ちなみに、ロック期限を現時刻よりも前の時刻に設定するのは問題なくできました。
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 06:54:15 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 06:54:15 +00:00 Etc/UTC
2 entries were displayed.
::*> snapshot modify-snaplock-expiry-time -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_065040 -expiry-time 7/29/2024 06:54:15
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 188KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
Tamperproof Snapshotを取得するSnapshot Policyの作成
Tamperproof Snapshotを取得するSnapshot Policyを作成して、定期的にTamperproof Snapshotを取得してみましょう。
5分間隔でロック期間30分のSnapshotを取得するSnapshot Policyを作成します。
::*> snapshot policy create -vserver svm_use1 -policy ss_lock_policy -enabled true -schedule1 5min -count1 3 -retention-period1 "30 minutes" -snapmirror-label1 ss_lock
::*> snapshot policy show -policy ss_lock_policy -instance
Vserver: svm_use1
Snapshot Policy Name: ss_lock_policy
Snapshot Policy Enabled: true
Policy Owner: vserver-admin
Comment: -
Total Number of Schedules: 1
Schedule Count Prefix SnapMirror Label Retention Period
-------------- ----- ------------- ------------------ ------------------
5min 3 5min ss_lock 30 minutes
作成したSnapshot Policyをボリュームに適用します。
::*> volume modify -volume vol_ss_lock_1 -snapshot-policy ss_lock_policy
Warning: You are changing the Snapshot policy on volume "vol_ss_lock_1" to "ss_lock_policy". Snapshot copies on this volume that do not match any of the prefixes of the new Snapshot policy will not be deleted.
However, when the new Snapshot policy takes effect, depending on the new retention count, any existing Snapshot copies that continue to use the same prefixes might be deleted. See the 'volume modify' man
page for more information.
Do you want to continue? {y|n}: y
Volume modify successful on volume vol_ss_lock_1 of Vserver svm_use1.
::*> volume show -volume vol_ss_lock_1 -fields snapshot-policy
vserver volume snapshot-policy
-------- ------------- ---------------
svm_use1 vol_ss_lock_1 ss_lock_policy
しばらくするとSnapshotが取得されていました。ロック期間は取得してから30分後になっていますね。
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0700 Mon Jul 29 07:00:00 2024 236KB ss_lock - 428KB - 7/29/2024 07:29:49 +00:00
2 entries were displayed.
そのまま25分ほど待ちました。
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0700 Mon Jul 29 07:00:00 2024 276KB ss_lock - 428KB - 7/29/2024 07:29:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0705 Mon Jul 29 07:05:00 2024 240KB ss_lock - 392KB - 7/29/2024 07:34:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0710 Mon Jul 29 07:10:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:39:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0715 Mon Jul 29 07:15:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:44:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 384KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
7 entries were displayed.
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 07:29:18 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 07:29:18 +00:00 Etc/UTC
2 entries were displayed.
Snapshot Policyで指定した世代数は3世代ですが、ロック期限の方が長いため、削除されていないことが分かります。
ロック期間以上経過して、次(タイミングによって次の次)のSnapshot取得で古いSnapshotは削除されます。
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 07:30:04 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 07:30:04 +00:00 Etc/UTC
2 entries were displayed.
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0700 Mon Jul 29 07:00:00 2024 276KB ss_lock - 428KB - 7/29/2024 07:29:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0705 Mon Jul 29 07:05:00 2024 240KB ss_lock - 392KB - 7/29/2024 07:34:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0710 Mon Jul 29 07:10:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:39:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0715 Mon Jul 29 07:15:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:44:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 136KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
8 entries were displayed.
---
::*> date show
(cluster date show)
Node Date Time zone
--------- ------------------------- -------------------------
FsxId09b61052262da98b8-01
7/29/2024 07:35:25 +00:00 Etc/UTC
FsxId09b61052262da98b8-02
7/29/2024 07:35:25 +00:00 Etc/UTC
2 entries were displayed.
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0705 Mon Jul 29 07:05:00 2024 240KB ss_lock - 392KB - 7/29/2024 07:34:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0710 Mon Jul 29 07:10:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:39:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0715 Mon Jul 29 07:15:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:44:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 140KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
8 entries were displayed.
最新ではないTamperproof Snapshotからのリストア
最新ではないTamperproof Snapshotからリストアしようとした時の挙動を確認します。
::*> snapshot restore -vserver svm_use1 -volume vol_ss_lock_1 -snapshot 5min.2024-07-29_0705
Warning: Snapshot copy "5min.2024-07-29_0705" 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_ss_lock_1" might change during this operation. If the currently enforced quota rules are different from those in Snapshot copy "5min.2024-07-29_0705", 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_ss_lock_1" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy
"5min.2024-07-29_0705", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
Error: command failed: Failed to restore Snapshot copy "5min.2024-07-29_0705". Reason: This operation can destroy worm snapshots.
はい、怒られました。-force true
を付与しても結果は全く同じでした。
ロック期限内の最新のSnapshotであればSnapRestoreできることを確認します。分かりやすいように事前に通常のSnapshotを取得します。
::*> snapshot create -vserver svm_use1 -volume vol_ss_lock_1 -snapshot ss_lock.2024-07-29_073950 -snapmirror-label ss_lock
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0705 Mon Jul 29 07:05:00 2024 240KB ss_lock - 392KB - 7/29/2024 07:34:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0710 Mon Jul 29 07:10:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:39:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0715 Mon Jul 29 07:15:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:44:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 456KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_073950 Mon Jul 29 07:39:00 2024 140KB ss_lock - 400KB - -
9 entries were displayed.
::*> snapshot restore -vserver svm_use1 -volume vol_ss_lock_1 -snapshot 5min.2024-07-29_0735
Warning: Snapshot copy "5min.2024-07-29_0735" 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_ss_lock_1" might change during this operation. If the currently enforced quota rules are different from those in Snapshot copy "5min.2024-07-29_0735", 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_ss_lock_1" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy
"5min.2024-07-29_0735", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0705 Mon Jul 29 07:05:00 2024 240KB ss_lock - 392KB - 7/29/2024 07:34:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0710 Mon Jul 29 07:10:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:39:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0715 Mon Jul 29 07:15:00 2024 284KB ss_lock - 436KB - 7/29/2024 07:44:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 156KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
8 entries were displayed.
直前に取得したss_lock.2024-07-29_073950
が削除されたことから、問題なくSnapRestoreできました。
Tiering PolicyをAllに設定した状態でTamperproof Snapshot
Tiering PolicyをAllに設定した状態でTamperproof Snapshotを取得してみます。
分かりやすいように適当にファイルを作成します。
$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol_ss_lock_1/test_256MiB_1 bs=1M count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 1.08799 s, 247 MB/s
現在のTiering PolicyはNoneです。
::*> volume show -volume vol_ss_lock_1 -fields tiering-policy
vserver volume tiering-policy
-------- ------------- --------------
svm_use1 vol_ss_lock_1 none
::*> volume show-footprint -volume vol_ss_lock_1
Vserver : svm_use1
Volume : vol_ss_lock_1
Feature Used Used%
-------------------------------- ---------- -----
Volume Data Footprint 262.2MB 0%
Footprint in Performance Tier 297.3MB 100%
Footprint in FSxFabricpoolObjectStore 0B 0%
Volume Guarantee 0B 0%
Flexible Volume Metadata 92.66MB 0%
Delayed Frees 35.12MB 0%
File Operation Metadata 4KB 0%
Total Footprint 390.0MB 0%
Effective Total Footprint 390.0MB 0%
Tiering PolicyをAllに変更し、データがキャパシティプールストレージに流れていったことを確認します。
::*> volume modify -volume vol_ss_lock_1 -tiering-policy all
Volume modify successful on volume vol_ss_lock_1 of Vserver svm_use1.
::*> volume show -volume vol_ss_lock_1 -fields tiering-policy
vserver volume tiering-policy
-------- ------------- --------------
svm_use1 vol_ss_lock_1 all
::*> volume show-footprint -volume vol_ss_lock_1
Vserver : svm_use1
Volume : vol_ss_lock_1
Feature Used Used%
-------------------------------- ---------- -----
Volume Data Footprint 263.3MB 0%
Footprint in Performance Tier 45.38MB 15%
Footprint in FSxFabricpoolObjectStore
256MB 85%
Volume Guarantee 0B 0%
Flexible Volume Metadata 92.66MB 0%
Delayed Frees 38.06MB 0%
File Operation Metadata 4KB 0%
Total Footprint 394.0MB 0%
Effective Total Footprint 394.0MB 0%
しばらく放置しましたが、問題なくTamperproof Snapshotは取得されていそうです。
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 160KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0740 Mon Jul 29 07:40:00 2024 564KB ss_lock - 704KB - 7/29/2024 08:09:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0745 Mon Jul 29 07:45:00 2024 1.21MB
ss_lock - 257.7MB - 7/29/2024 08:14:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0750 Mon Jul 29 07:50:00 2024 164KB ss_lock - 260.4MB - 7/29/2024 08:19:49 +00:00
8 entries were displayed.
より、分かりやすくするためにさらにファイルを追加します。
$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol_ss_lock_1/test_2GiB_1 bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 14.06 s, 153 MB/s
キャパシティプールストレージにデータが流れていったことを確認します。
::*> volume show-footprint -volume vol_ss_lock_1
Vserver : svm_use1
Volume : vol_ss_lock_1
Feature Used Used%
-------------------------------- ---------- -----
Volume Data Footprint 2.30GB 0%
Footprint in Performance Tier 97.75MB 4%
Footprint in FSxFabricpoolObjectStore
2.25GB 96%
Volume Guarantee 0B 0%
Flexible Volume Metadata 92.66MB 0%
Deduplication Metadata 11.65MB 0%
Deduplication 11.65MB 0%
Delayed Frees 49.73MB 0%
File Operation Metadata 4KB 0%
Total Footprint 2.45GB 0%
Effective Total Footprint 2.45GB 0%
手動でTamperproof Snapshotを取得します。特にエラーはなっていません。
::*> snapshot create -vserver svm_use1 -volume vol_ss_lock_1 -snapshot 5min.2024-07-29_075410 -snapmirror-label 5min -snaplock-expiry-time 7/29/2024 07:57:00
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0720 Mon Jul 29 07:20:00 2024 148KB ss_lock - 380KB - 7/29/2024 07:49:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 160KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0740 Mon Jul 29 07:40:00 2024 564KB ss_lock - 704KB - 7/29/2024 08:09:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0745 Mon Jul 29 07:45:00 2024 1.21MB
ss_lock - 257.7MB - 7/29/2024 08:14:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0750 Mon Jul 29 07:50:00 2024 244KB ss_lock - 260.4MB - 7/29/2024 08:19:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_075410 Mon Jul 29 07:54:11 2024 148KB 5min - 2.29GB - 7/29/2024 07:57:00 +00:00
9 entries were displayed.
さらに放置して様子を見ましたが、Snapshot Policyによって取得されるSnapshotについても問題ありません。
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 160KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0740 Mon Jul 29 07:40:00 2024 564KB ss_lock - 704KB - 7/29/2024 08:09:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0745 Mon Jul 29 07:45:00 2024 1.21MB
ss_lock - 257.7MB - 7/29/2024 08:14:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0750 Mon Jul 29 07:50:00 2024 244KB ss_lock - 260.4MB - 7/29/2024 08:19:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_075410 Mon Jul 29 07:54:11 2024 164KB 5min - 2.29GB - 7/29/2024 07:57:00 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0755 Mon Jul 29 07:55:00 2024 152KB ss_lock - 2.29GB - 7/29/2024 08:24:49 +00:00
9 entries were displayed.
SnapRestoreできるか確認しましょう。
ボリューム上からファイルを削除します。
$ sudo rm -rf /mnt/fsxn/vol_ss_lock_1/*
$ ls -l /mnt/fsxn/vol_ss_lock_1/
total 0
最新のSnapshotを使用してSnapRestoreを行います。
::*> snapshot restore -vserver svm_use1 -volume vol_ss_lock_1 -snapshot 5min.2024-07-29_0755
Warning: Quota rules currently enforced on volume "vol_ss_lock_1" might change during this operation. If the currently enforced quota rules are different from those in Snapshot copy "5min.2024-07-29_0755", 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_ss_lock_1" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy
"5min.2024-07-29_0755", reassign the export policies of the qtrees on this volume after this operation.
Do you want to continue? {y|n}: y
::*> snapshot show -vserver svm_use1 -volume vol_ss_lock_1 -fields snaplock-expiry-time, expiry-time, afs-used, size, create-time, snapmirror-label, state
vserver volume snapshot create-time size snapmirror-label state afs-used expiry-time snaplock-expiry-time
-------- ------------- ------------------------- ------------------------ ----- ---------------- ----- -------- ----------- -------------------------
svm_use1 vol_ss_lock_1 ss_lock.2024-07-29_065040 Mon Jul 29 06:50:41 2024 192KB ss_lock - 320KB - 7/29/2024 06:54:15 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0725 Mon Jul 29 07:25:00 2024 396KB ss_lock - 552KB - 7/29/2024 07:54:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0730 Mon Jul 29 07:30:00 2024 148KB ss_lock - 444KB - 7/29/2024 07:59:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0735 Mon Jul 29 07:35:00 2024 160KB ss_lock - 620KB - 7/29/2024 08:04:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0740 Mon Jul 29 07:40:00 2024 564KB ss_lock - 704KB - 7/29/2024 08:09:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0745 Mon Jul 29 07:45:00 2024 1.21MB
ss_lock - 257.7MB - 7/29/2024 08:14:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0750 Mon Jul 29 07:50:00 2024 244KB ss_lock - 260.4MB - 7/29/2024 08:19:49 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_075410 Mon Jul 29 07:54:11 2024 164KB 5min - 2.29GB - 7/29/2024 07:57:00 +00:00
svm_use1 vol_ss_lock_1 5min.2024-07-29_0755 Mon Jul 29 07:55:00 2024 240KB ss_lock - 2.29GB - 7/29/2024 08:24:49 +00:00
9 entries were displayed.
リストア後、NFSクライアントからボリューム上のファイルがリストアできたことを確認します。
$ ls -lh /mnt/fsxn/vol_ss_lock_1/
total 2.3G
-rw-r--r--. 1 root root 256M Jul 29 07:44 test_256MiB_1
-rw-r--r--. 1 root root 2.0G Jul 29 07:51 test_2GiB_1
Snapshotを保護したい場合に
Amazon FSx for NetApp ONTAPでTamperproof Snapshotを使ってSnapshotの保護をしてみました。
Snapshotはデータを復元するときの要となる要素です。上手に使用すればランサムウェア攻撃からの影響を抑えることができます。FPolicyやVscan、Cloud Insightなど他レイヤーの仕組みと組み合わせて使用することでより強固な環境を作り上げることができるでしょう。
Tamperproof SnapshotとSnapMirrorについては別記事で紹介しようと思います。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!