皆様、こんにちは!ネットワールド ストレージ担当の島田です。
今回はPowerScaleのスナップショットからのリストア機能「SnapRevert」について紹介していこうと思います。
まずPowerScaleのスナップショット機能についておさらいしましょう!
PowerScaleのスナップショット機能は「SnapshotIQ」と呼ばれ、
手動での Snapshot 作成と、スケジュールでの Snapshot 作成が可能です。クラスタで最大20,000 個、 1 ディレクトリ 1,024 個まで取得可能です。
また前もってスナップショットの保存領域を確保する必要はなく、ファイルシステムの空き領域に差分データを保存する仕様になっています。
またスナップショットの取得方法が2種類あることも特徴で、以下を自動で使い分けながら取得します。
- Copy on Write
小さな変更やinode更新、ディレクトリ更新時に使用 - Point in Time
削除、大量のシーケンシャル処理時に使用
スケジュールで取得する場合としては以下のような間隔、頻度で設定可能です。
またスナップショットの保持期限なども設定可能です。
かなり細かくスケジュールを設定できるので様々な要件に対応できそうですね!
間隔 interval
- Daily 何日に一度の日/平日のみ
- Weekly 何週間に一度の何曜日
- Monthly By Day 何月の第何週の何曜日
- Monthly By Relative Day 何月の何回目の日/平日のみ
- Monthly By Date 何月何日
- Yearly By Day 毎年何月の何回目の何曜日
- Yearly By Date 毎年何月何日
- Yearly By Ordinal Day 毎年何月の何回目の日/平日のみ
頻度 Frequency
- Once/Multiple Times 一回(何時)、複数回(何時から何時の間)
スナップショットからリストアする方法としては主に以下があります。
- クライアントからのリストア
- SnapRevert
まずクライアントからリストアついてです!
こちらはWindowsの場合は、Windowsファイルサーバーなどと同じようにエクスプローラーの「以前のバージョン」からリストア可能です。
対象フォルダのプロパティ→「以前のバージョン」タブ
Unixクライアントの場合は対象ディレクトリ配下にある .snapshotディレクトリか、/ifs配下にある.snapshotディレクトリからアクセス可能なので、そこからコピーすることでリストア可能です。
#pwd
/mnt/PowerScale
#ls -la
total 10
drwxrxr-x 2 root root 50 Jul 20 2023 .
drwxrxr-x 4 root root 4096 Jul 20 16:32 ..
#cd .snapshot
#ls -la
total 6
drxr-xr-x 2 root root 0 Jul 20 2023 .
drwxrxr-x 2 root root 50 Jul 20 2023 ..
drwxrxr-x 2 root root 50 Jul 20 2023 Snapshot: 2023Jul20, 4:41 PM
次は本題のSnapRevertについてです!
SnapRevertはスナップショットイメージへディレクトリ全体を復元する手法になります。
そのためこちらでリストアした場合はスナップショット取得後の変更がすべて消えてしまうので注意して行ってください。
では実際にやってみましょう!
まずSnapRevertを行う前に、スナップショットから復元するディレクトリに対してSnapRevertDomainをマークしてあげる必要があります。
※メーカーマニュアル上、 SnapRevert Domain はディレクトリが空の時に設定するのが推奨となります。
こちらはCLIからの操作が必要になります。
pscale-cls1-1# isi job jobs start domainmark --root /ifs/smb/share1 --dm-type=SnapRevert
Started job [8522]
下記のコマンドでSnapRevertDomainが指定できたか確認します。
pscale-cls1-1# isi_classic domain list
Root Path | Type
------------------------------+--------------------
/ifs/smb/share1 | Writable,SnapRevert
ドメインの指定が完了したらGUIからリストアしてあげれば完了です!
「Data Protection」→「SnapshotIQ」→「Snapshot」→「More」→「Restore snapshot」
リストアされた旨のメッセージがでたら成功です!
ちなみにCLIでリストアしたい場合には、
まずリストアしたいスナップショットのIDを以下のコマンドで確認します。
pscale-cls1-1# isi snapshot snapshots list ID Name Path ---------------------------------------------------- 21 share03_2024-03-25_09:17 /ifs/smb/share1
確認出来たら、IDを指定してSnapRevertを実行します。
pscale-cls1-1# isi job jobs start SnapRevert --snapid=21
Started job [12]
ジョブを確認して「Succeed」になっていれば完了です!
pscale-cls1-1# isi job events list Time Job ID Job Type Phase Event State ----------------------------------------------------------------------- 2024-03-25T19:25:31 12 SnapRevert 1 Policy change LOW 2024-03-25T19:25:31 12 SnapRevert 1 State change Waiting 2024-03-25T19:25:32 12 SnapRevert 1 State change Running 2024-03-25T19:25:33 12 SnapRevert 1 Begin phase snap_revert 2024-03-25T19:25:45 12 SnapRevert 1 End phase snap_revert 2024-03-01T19:26:15 12 SnapRevert 1 State change Succeeded -----------------------------------------------------------------------
ちなみに復元前のスナップが自動的に取得される仕様になっています!
pscale-cls1-1# isi snapshot snapshots list ID Name Path -------------------------------------------------------------------------- 71 share1_2024-03-25_09:17 /ifs/smb/share1
79 share1_2024-03-25_09:17.pre_revert.7364928638 /ifs/smb/share1
操作はとっても簡単ですね!
その他のスナップショットの注意事項としては以下があるので、設計の際は注意が必要です!
- /ifsをスナップショットディレクトリに指定しない
→すべてのファイルの変更点保持が必要になり、性能劣化につながる可能性あり - スナップショットを取得しすぎない
→単一のディレクトリのスナップショット数は1024以下が推奨
クラスタ全体だと合計で2,048世代程度が望ましい - 上位フォルダとその子フォルダでスナップショットを作成しない
→スケジュールの入れ子があると後で取得したイメージが先にExpireする場合あり
Tips
管理者側としてはユーザーにスナップショットを見せたくないという場合もあるかと思いますので、そちらの方法も紹介いたします!
スナップショットを見せる見せないの設定はGUIから簡単にON/OFFが可能です。
「Data Protection」→「SnapshotIQ」→「Settings」タブを選択
SMB settings の項目のチェックをすべて外し、「Save」をクリックしてください。
そうしますと、この通りスナップショット取得済みのフォルダでもスナップショットが表示されなくなります!
これでユーザーの予期せぬ操作を防ぐことができそうですね!
今回はここまで!いかがだったでしょうか?
スナップショットは大変便利な機能ですので、注意点を考慮しながら積極的に利用していきたいですね!
それはではまた次回お会いしましょう!
Networld Techのブログ一覧はこちら!