KuriKumaChan’s diary

Kuri ちゃんと Kuma ちゃんの飼い主の独り言

写真ファイルの管理用 NAS を 10GbE/HDD から 2.5GbE/SSD に移行 (3) 新しい運用の検討 - スナップショットの導入

前回 NAS → AWS のバックアップを取得する設定は完了し、以前の TS-453Be と同じレベルの保存/バックアップ環境が整いました。今回は大切な写真ファイルの管理強化のためにそれに加えて以前から気になっていた NAS のスナップショット機能 / Snapshotsを検討、設定してみました。

スナップショット を考える

スナップショット とは

QNAP の機能紹介をもとに、私の理解をまとめてみます。 QNAP の機能紹介では以下のようの説明されています。

スナップショットを取るのは写真を撮る感覚で - 数秒間でNASシステムおよびデータ状態全部が記録されます。システムに予期しない事態が発生したとき、スナップショットにより記録された以前の状態に戻すことができます。従来のバックアップ方法に比べてスペースを有効活用、柔軟性があるので、スナップショットはファイルおよびデータを保護する最善の方法です。

一言で言えば、スナップショットは 「NASの(正確には特定のドライブの)ある時点の状態を保存する」機能です。 別の表現をすると、Mac の世界で言うとタイムマシーン (Time Machine) と似たようなもので、「過去のある時点のドライブの状態」に遡ってアクセスできるようになると言うものです。

メリットは - 「過去のある時点のシステム(NAS)の状態」にアクセスできる

「ある時点」の「ドライブの状態」が記録されていることにより、

  • 特定のファイルを復元できる

だけではなく、

  • ドライブ全体も復元できる

ことになります。
損傷には誤った削除やマルウェア感染などが考えられ、単純な誤削除であまり時間を経過しないで気づけば「ゴミ箱」から復元することもできますが、ドライブ全体がマルウェアに汚染されたと言う場合にはゴミ箱では無力です。
スナップショットだと、「ある時点」を複数設定できるので、直近2日間は「1時間毎のスナップショット」、直近1ヶ月以内は「毎日のスナップショット」を、中期的には「毎週のスナップショット」、「毎月のスナップショット」などを残すことができるので、これによりマルウェアの感染にしばらく気づかなかったとしても、十分過去に遡ることにより復元の可能性が高まります。

ただしディメリットでははありませんが機能的な限界もあり、NAS 丸ごとの物理的な損傷(火災、破壊など)などにはスナップショットでは無力なので、リモートバックアップからのリストア、さらに必要があればさらにリモートにある NAS への「スナップショット・レプリカ」機能を検討する必要があります。

ディメリットは - ストレージを消費する

ある時点のイメージを保存すると言うことは、明らかにストレージスペースを消費します。スナップショット自体の基本的な仕組みとしては主にファイルの「変更」と「削除」に対して、

  • ファイルの変更:スナップショット取得後の変更(書き込み)は新しい領域に書き込まれ、元データとの差分として管理される。つまり「変更されたブロック分だけ」追加のストレージを消費する。

  • ファイルの削除:スナップショット取得後の削除は削除マークを付けるだけで実際には削除されない。

と言う仕組みをベースとして、設定で指定する「スナップショット取得頻度」、「スナップショット保持数(世代数)」、「保持期間(リテンションポリシー)」などがディスクスペースの消費に影響します。

そのような設定に加えて、使い方においてもファイル自体の削除/更新が多いほど追加ストレージが必要になっていきます。     

私の使い方においては TBS-464 に保存するファイルとしては大半が画像ファイルで、Lightroom Classic (以下 LrC) は画像の編集を行なっても画像ファイル自体に対しては更新を行わず、ローカルドライブにあるカタログと呼ばれる管理ファイル群に編集情報が保存されます。もちろんカタログは画像ファイルとともに重要な資産なので NASやクラウドでのバックアップも行っていますが、私の場合は NAS に保存するカタログは LrC が定期的に作成するカタログの「バックアップ zip ファイル」なのでそのファイル自体が更新されることはありません(もちろん zip ファイルを NAS に追加保存していけばその分ストレージを消費しますが)。
と言うことで私の場合は「ファイル更新による」スナップショットのスペース増加はあまり大きくないと考えていますが、今後実際に運用して状況は確認してみたいと思います。

www.qnap.com

スナップショット を使う

設定する

スナップショットに関する設定はいくつかありますが、下図のように過剰な?くらいの設定をしてみました。 (設定自体は QNAP の QTS から「ストレージ & スナップショット」アプリを用いて行う。)

最初に設定するのは「スナップショット取得頻度」の設定で、私は「毎時 "xx:30" に取得される」設定としました。
つまり、いつファイルの更新、削除を行っても、最長 1時間前の状態に戻すことができる、と言うことです。
(誤削除した直後の対応は「ゴミ箱」のお世話になります。)

スナップショット取得は毎時 "xx:30" に取得する設定

その次に設定するのが「保持期間」です。これは「ゴミ箱」の様に一律の保持期間を設定することもできますが、今回はそうではなく保持世代数で管理する「スマートバージョン管理」を指定してみました。

一律の保持期間は設定せず、保持世代数で管理する「スマートバージョン管理」を指定

NAS の場合、ストレージスペースがある限り多めに取得しても追加コストにはならないので、過剰?な設定をしてみた。

これは私の利用イメージとしては、

  • LrC を操作していて誤って必要な写真を削除してしまったことに気づいた場合 → ゴミ箱ですぐに戻せるし、1時間単位で遡れる
  • どうも数ヶ月前に誤って写真を削除してしまったかもしれない → 最長 15ヶ月前に戻れる
    と言う感じです(どう考えても過剰ですが)。

「いざ」と言う時に過去の状態にアクセスする

いざ、と言うときに使い方を調べるのに慌てたくないので、念のために最低限の復元操作方法を確認しておきます。

ファイル単位の復元 - FileStation の操作

NAS の機能である FileStationで「現時点」の NAS のフォルダ/ファイル構成を確認してみます。Mac の Finder や Windows の Explorer と同じイメージです。

NAS の FileStation アプリで iPhone 写真保存フォルダの「現在」の状態を表示

サイドバーの「現時点」のボリュームの下には、スナップショット取得タイミングのリストが表示されているので、自分が確認したいタイミングを選ぶと、その時点の NAS でフォルダ/ファイル構成が確認できます。

NAS の FileStation アプリで iPhone 写真保存フォルダの「過去の」の状態を表示 - 🟥点々枠内

スナップショットに存在するファイルを確認して「復元」することができるようになっていました。

復元は個々のファイルを「復元」

ドライブ単位の復元 - スナップショットマネジャーの操作

今まであまり使ったことのない「スナップショットマネジャー」ですが、この UI からは、FileStation でも操作可能な個別ファイルの復元以外に、ボリューム全体の復元も行えるようです。

「復元」、「クローン」、「ボリュームスナップショットを元に戻す」

機能 対象範囲 元データへの影響 可逆性
復元
(元の場所/選択した場所)
選択したファイル/フォルダのみ 選択部分のみ上書き、他は無影響 上書き前のスナップショットが残っていれば戻せる
クローン ボリューム全体だが新規複製として作成 元ボリュームは完全に無傷 傷元に戻す必要すらない(クローンを削除するだけ)
ボリュームスナップショットを元に戻す ボリューム全体をインプレースで巻き戻し 現状態が破棄される(それ以降の全変更が失われる) Revert前に現状態のスナップショットを取得していない限り、事実上戻せない

*Claude Sonet 5 の整理 *

この設定のもと、しばらく運用を続けていきたいと思います。