IT用語集

スナップショットとは? 10分でわかりやすく解説

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

データの保護とシステムの可用性向上に欠かせない「スナップショット」。しかし、バックアップとの違いや、整合性・性能・容量への影響を含めて理解している方は多くないのではないでしょうか。本記事では、スナップショットの基本概念から、種類や特徴、運用のベストプラクティス、導入プロセスまでを体系立てて解説します。読了後には、自社のRPO/RTOやシステム特性に合ったスナップショットの取り方・残し方・復元手順の考え方が判断できるようになります。

スナップショットとは何か?

スナップショットの定義と概要

スナップショットとは、ある特定の時点におけるシステムやデータの状態を、後から再現できるように記録したものです。スナップショットを取得しておくと、その時点の状態を参照したり、必要に応じて「その時点に戻す(リバート)」あるいは「別領域へ復元する(リストア)」ことができます。

スナップショットは、主に以下のような用途で活用されています。

  • データ保護(誤削除・上書き・ランサムウェア被害の範囲縮小など)
  • システム変更前の状態保存(パッチ適用、設定変更、アップグレード前の保険)
  • 障害発生時の復旧(ロールバック、迅速な切り戻し)
  • 検証・テスト環境の構築(本番に近い状態の複製や検証)

バックアップとの違い

スナップショットは「その時点の状態を素早く残す」ことに強みがありますが、それだけでバックアップの代替になるとは限りません。特に、同一ストレージや同一クラスタ内に置かれるスナップショットは、装置障害や広域障害、侵害(管理権限の乗っ取り)に弱い場合があります。

運用設計の基本は、以下のように役割を分けて考えることです。

  • スナップショット:短い間隔で素早く取得し、直近の復旧(短いRPO/RTO)を実現する
  • バックアップ:別媒体・別環境(オフサイト等)へ保管し、長期保管や災害対策まで含めて担保する

たとえば「直近の誤操作にすぐ戻したい」ならスナップショットが有効です。一方で「ストレージ装置が壊れても復旧したい」「長期保存が必要」といった要件は、バックアップ(またはレプリケーション+バックアップ)で担保するのが現実的です。

スナップショットの仕組みと動作原理

スナップショットは、対象データを毎回まるごとコピーする方式だけではありません。実運用で多いのは、変更前/変更後のブロックを追跡することで「ある時点の状態」を再現できるようにする方式です。これにより、取得自体は短時間で済む一方、変更量に応じてスナップショット領域の消費が増える、という特性が生まれます。

一般的な動作イメージは次の通りです。

  1. スナップショットの取得対象(ボリューム、LUN、データストア、ファイルシステム等)を決める
  2. 「この時点」を示すメタデータ(参照情報)を作成する
  3. 以降の書き込み(変更)について、変更前または変更後のブロックを追跡・保存する
  4. 必要になったら、参照情報と保持ブロックを用いて「その時点」を再現する

なお、スナップショットは「元のデータに影響を与えずに別の場所へ保存する」と説明されることがありますが、実際には同一ストレージ内で差分を保持して“時点を再現する”方式も多く、製品や方式によって挙動が異なります。導入時は「どこに保存されるのか」「何が消費されるのか(差分領域・メタデータ等)」を必ず確認しましょう。

スナップショットを利用するメリットとデメリット

スナップショットを利用することで、以下のようなメリットが得られます。

  • 復旧が速い(直近の状態に短時間で戻せる/戻しやすい)
  • 変更前の状態を残せるため、切り戻しの心理的ハードルが下がる
  • 取得が比較的軽い(フルバックアップより短時間で終わるケースが多い)
  • テスト・検証に転用しやすい(同一状態を再現しやすい)

一方で、スナップショットには次のような注意点もあります。

  • 保持するほどストレージ容量(差分領域など)を消費し、枯渇すると想定外の影響が出る場合がある
  • 方式や実装によっては、取得後のI/O性能に影響が出る場合がある
  • 取得タイミングや整合性レベル次第では、復元後にアプリケーション側の修復が必要になることがある
  • 同一環境内のみに保持していると、装置障害や侵害に巻き込まれやすい

スナップショットの具体的な活用シーン

スナップショットは、さまざまな場面で活用できます。代表例を整理すると以下の通りです。

活用シーン説明
システムのアップデート前アップデートや設定変更が失敗した場合に備え、事前に「戻れる地点」を用意する
障害発生時の復旧原因切り分けと並行して、直近の安定状態へ切り戻し、業務影響を抑える
誤操作・誤削除の救済上書きや削除が発生しても、スナップショットから該当時点のデータを取り戻す
テスト環境の構築本番に近い状態を再現し、短期間で検証環境を立ち上げる

以上が、スナップショットの基礎知識です。重要なのは、「何を守りたいか(データ/サービス)」「どの程度の時間と損失を許容できるか(RPO/RTO)」「どこまでをスナップショットで担保し、どこからをバックアップ等で担保するか」をセットで決めることです。

スナップショットの種類と特徴

スナップショットには、取得対象や実装方式、整合性の考え方など、複数の観点で種類があります。ここでは、選定や運用設計に直結しやすいポイントに絞って整理します。

ストレージスナップショットとファイルシステムスナップショット

スナップショットは、取得対象のレイヤーによって分類できます。

  • ストレージスナップショット:ストレージ装置のボリューム/LUNなど、ブロックデバイス単位で取得する
  • ファイルシステムスナップショット:ファイルシステム単位(ディレクトリ階層やファイルの集合)で取得する

ストレージスナップショットは、仮想基盤やDBサーバーなど、広い範囲を一括で保護しやすい点が利点です。一方で、ファイルシステムスナップショットは、運用者がファイル単位の復元や粒度の細かい保護を行いやすい場合があります。

どちらが優れているというより、守りたい対象と運用体制(誰が、何を、どの手順で戻すか)に合わせて選ぶのが現実的です。

COW(Copy-on-Write)とROW(Redirect-on-Write)の違い

スナップショットの実装方式として代表的なのが、COWとROWです。いずれも「ある時点の状態」を再現するために、書き込み時のデータをどのように扱うかが異なります。

  • COW:変更が発生する際、変更前のデータを退避してから上書きする方式
  • ROW:変更が発生する際、変更後のデータを別領域へ書き込み、参照先を切り替える方式

COWは、変更前データを保持するため、時点再現の考え方が分かりやすい一方、書き込みパスが増えることで性能影響が出る場合があります。ROWは、参照の切替で時点を維持できるため、実装次第で性能影響を抑えやすい一方、差分管理や参照関係が複雑になりやすく、保持期間や連鎖(スナップショットが増えるほど)に注意が必要です。

実際の製品では、COW/ROWを単純に二択で語れないことも多く、内部最適化や圧縮・重複排除、スナップショット階層の扱いなどが性能・容量に直結します。選定時は「方式名」だけでなく、変更量が増えたときの容量増加の傾きと、スナップショットが多い状態でのI/O影響を確認するのが確実です。

アプリケーション整合性とクラッシュ整合性

スナップショットで見落とされがちなのが「整合性」です。大きく分けて、次の2段階があります。

  • アプリケーション整合性スナップショット:アプリケーションが整合性の取れた状態になるよう、I/Oを静止・同期させて取得する
  • クラッシュ整合性スナップショット:OS/ストレージの観点で時点を切り取る(アプリケーション視点では不整合が残り得る)

アプリケーション整合性は、復元後の再起動やリカバリがスムーズになりやすい一方、取得のたびにアプリケーション側との連携(例:DBのフラッシュやトランザクションの扱い)が必要です。クラッシュ整合性は、取得はシンプルだが、復元後にログ適用や整合性チェックが必要になる可能性がある点を前提にしておくべきです。

たとえばDBや業務系システムでは、可能であればアプリケーション整合性を優先し、クラッシュ整合性を使う場合は「復元後にどの手順(ログ適用、チェック、再起動)を踏むか」を運用手順に落としておくことが重要です。

スナップショットの運用管理におけるベストプラクティス

スナップショットは「取れば安心」ではありません。取得頻度・保持期間・容量監視・復元訓練まで含めて、運用として成立させる必要があります。

スケジュール設定と保持期間の考え方

スケジュール設定は、システムの重要度、変更頻度、そしてRPO(目標復旧時点)を起点に決めます。RPOは「どれだけデータの巻き戻りを許容できるか」を示す指標です。たとえばRPOが1時間なら、基本的には1時間以内の間隔でスナップショットを取得する設計が必要になります。

保持期間は、RTO(目標復旧時間)や監査・運用の現実に合わせて決めます。直近の誤操作救済が目的なら短期保持中心で十分なこともありますが、月次処理や締め処理のように「後から参照されやすいタイミング」があるなら、保持を厚くする日(例:週次・月次)を設ける設計が有効です。

よくある設計としては、たとえば以下のように「密度」を変えます。

  • 直近(数時間〜数日):短い間隔で高密度に取得(例:15分〜1時間)
  • 中期(数週間):日次や週次で取得
  • 長期(数カ月以上):バックアップへ役割を移す(スナップショットだけで長期保持しない)

容量管理とストレージ使用率の最適化

スナップショットは保持するほど容量を消費します。重要なのは「何個残すか」だけでなく、変更量(差分)がどれくらい発生するかです。更新が激しいワークロードでは、短時間でも差分が膨らみやすく、想定より早く容量が枯渇することがあります。

運用上の基本は次の通りです。

  • 不要なスナップショットは自動で削除されるよう、保持ポリシーを明確にする
  • 容量のしきい値(例:差分領域の使用率)でアラートを出し、枯渇前に対処できるようにする
  • 変更量が急増するイベント(大型更新、ログ肥大化、バッチ処理)を把握し、取得間隔や保持を見直す

また、圧縮や重複排除、階層化(古いスナップショットを安価な層へ移す)などの機能が使える場合、容量効率は大きく改善します。ただし、これらはCPU負荷や性能に影響する場合もあるため、「容量を節約できるか」だけでなく「ピーク時に性能を保てるか」も合わせて検証しましょう。

リストアとリカバリ手順

スナップショットの最大の価値は「いざというときに戻せること」です。そのため、リストア/リカバリの手順は、導入時点で文章化し、定期的に検証する必要があります。

手順設計では、最低でも次を明確にします。

  • 復元方式(元に戻す/別領域へ復元/検証環境へクローン)
  • 復元にかかる時間の見積り(RTOに収まるか)
  • 復元後の確認項目(アプリ起動、整合性チェック、業務テスト、ログ確認)
  • アプリケーション整合性が取れない場合の代替手順(ログ適用、修復コマンド等)

また、障害対応では「戻すこと」自体がリスクになる場合もあります。たとえば、すでにユーザーが入力したデータが巻き戻る、別系統で更新が進んでいる、といったケースです。いつ・誰が・どの判断で切り戻すのかを決めておかないと、復旧は速くても現場が混乱しがちです。

監視とアラート設定のポイント

運用で見落としやすいのが「取得が止まっていた」「容量が危険水域だった」「成功していたが整合性が取れていなかった」といった事象です。したがって、監視は次の観点で設計します。

  • 取得ジョブの成功/失敗(失敗が連続した場合の即時通知)
  • 差分領域やスナップショット領域の使用率推移(増加が急な場合の通知)
  • 復元テストの実施状況(定期的に「戻せる」ことを確認した証跡)

アラートは敏感にしすぎると運用が形骸化します。重要システムは閾値を低めにし、非重要システムは段階通知にするなど、実際に対応できる運用体制に合わせて調整しましょう。

スナップショットの選定と導入プロセス

スナップショットの導入は、可用性とデータ保護を高める一方で、性能・容量・運用負荷のバランスを取る設計が必要です。ここでは、選定基準と導入手順を具体化します。

自社に最適なスナップショットソリューションの選定基準

選定に際しては、以下の観点を「要件」として言語化することが重要です。

  • 対象(VM、DB、ファイル、ボリューム等)と範囲(全体/一部)の適合
  • 整合性(アプリ連携の可否、取得時のI/O停止や影響の程度)
  • 性能(スナップショットが多い状態でのI/O、復元時の負荷、ピーク時の挙動)
  • 容量効率(差分増加、圧縮・重複排除、保持ポリシー適用時の見通し)
  • 運用性(スケジュール、権限、監査ログ、API/GUI、通知、手順の作りやすさ)
  • セキュリティ(アクセス制御、削除保護、イミュータブル、管理権限の分離)
  • コスト(導入費、運用費、拡張時のライセンス体系、バックアップとの組合せ)

複数製品を比較する際は、仕様表だけでは差が見えにくいことがあります。可能であれば、実際の運用に近い条件でパイロットテストを行い、変更量が多い日・ピーク時間帯・障害復旧を想定した検証まで実施すると判断精度が上がります。

導入前に確認すべき要件(RPO/RTOとアセスメント)

導入前のアセスメントでは、少なくとも次を整理しておく必要があります。

  • 対象データの重要度と、更新頻度(差分がどれくらい増えるか)
  • 要求されるRPO(どこまで巻き戻りを許容できるか)
  • 要求されるRTO(どれだけ早く復旧する必要があるか)
  • 現状のバックアップ体制(別環境保管・長期保存・復元手順)と課題
  • ストレージ容量の余裕と拡張計画(差分増加を吸収できるか)
  • ネットワーク帯域(レプリケーションや遠隔保管を併用する場合)

ここが曖昧なまま導入すると、「取れてはいるが要件を満たしていない」「容量が想定より早く枯渇する」「復元の手順がなく復旧が遅れる」といった形で、運用段階で問題が顕在化しやすくなります。

設計とパイロット導入のステップ

スナップショット運用を設計する際は、次のステップを踏むことが推奨されます。

  1. 取得対象と範囲の決定(何を守るか、何を守らないかを明確化)
  2. 取得間隔と保持期間の設定(RPO/RTO、運用体制、業務イベントに合わせる)
  3. 容量見積り(変更量を前提にし、余裕を持った設計にする)
  4. 復元方式と手順の策定(誰が、どの判断で、どの手順で戻すか)
  5. 監視・アラートの実装(取得失敗、容量枯渇、性能劣化の兆候を拾う)

パイロット導入では、単に取得が成功するかだけでなく、「スナップショットが増えた状態」での性能や、実際の復元にかかる時間(RTO)を検証します。ここで得た数値を基に、取得間隔や保持期間、容量拡張計画を現実的なものに調整します。

内製化とアウトソーシングの判断材料

スナップショット運用を内製するかアウトソースするかは、次の観点で判断します。

  • 自社の運用リソースとスキル(24/7対応、復元判断、障害切り分け)
  • 運用コスト(人件費、教育、当番体制)と委託費の比較
  • セキュリティ要件(権限分離、委託先のアクセス範囲、監査対応)
  • コンプライアンス(データ所在、委託管理、ログ保全、手順の証跡)

アウトソーシングが有効なケースも多い一方で、セキュリティ要件が厳しい環境では「管理権限の持ち方」や「復元判断の責任分界」を設計しないとリスクが残ります。どちらを選ぶ場合も、復元手順と検証(訓練)を定期運用として回せるかが重要です。

まとめ

スナップショットは、ある時点のシステムやデータの状態を再現できるように記録し、必要に応じて復元や切り戻しを可能にする技術です。取得対象のレイヤー(ストレージ/ファイルシステム)、実装方式(COW/ROW)、整合性レベル(アプリ整合性/クラッシュ整合性)によって、性能・容量・復元性が変わります。効果を最大化するには、RPO/RTOに基づいた取得間隔と保持期間、容量監視、復元手順の整備と訓練が不可欠です。また、スナップショットは強力な手段ですが、同一環境内だけに依存するとリスクが残るため、バックアップや遠隔保管などと組み合わせて、現実的なデータ保護を構築しましょう。

Q.スナップショットとバックアップの違いは何ですか?

スナップショットは同一環境内で時点状態を素早く再現する仕組みで、バックアップは別媒体・別環境への保管を含めた長期保護の手段です。

Q.スナップショットは取得すると元データに影響しますか?

取得自体は短時間で終わることが多い一方、方式や負荷次第で取得後の書き込み性能や容量消費に影響が出る場合があります。

Q.スナップショットは容量をどれくらい使いますか?

変更量に比例して差分領域が増えるのが一般的で、更新が多いほど消費が早く進みます。

Q.COWとROWはどちらが良いのですか?

一概に優劣はなく、ワークロードや実装次第で性能・容量特性が変わるため、検証結果で判断するのが確実です。

Q.アプリケーション整合性とクラッシュ整合性の違いは?

アプリ整合性は復元後も動作しやすい状態で取得し、クラッシュ整合性は取得は容易ですが復元後に修復が必要になる場合があります。

Q.スナップショットの取得間隔はどう決めますか?

どれだけの巻き戻りを許容するかを示すRPOを基準に、業務影響と変更頻度を加味して決めます。

Q.スナップショットの保持期間はどう決めますか?

誤操作救済などの目的と、容量・運用負荷のバランスで決め、長期保管はバックアップに役割分担するのが一般的です。

Q.スナップショットだけでランサムウェア対策になりますか?

同一環境内だけだと管理権限侵害で削除されるリスクがあるため、削除保護や別環境保管と組み合わせるべきです。

Q.復元手順はどこまで準備すべきですか?

復元方式、所要時間、復元後の確認項目まで文書化し、定期的に復元テストで実効性を確認すべきです。

Q.導入前に最低限確認すべき要件は何ですか?

対象データの重要度、RPO/RTO、変更量の見通し、容量余力、既存バックアップとの役割分担を確認します。

記事を書いた人

ソリトンシステムズ・マーケティングチーム