スナップショット (ファイルシステム)
あるファイル・ディレクトリ群をバックアップする際に、対象中のファイルがバックアップ処理中に更新されると、ファイル・ディレクトリ相互の整合性が合わなくなる可能性がある。バックアップ処理開始近辺にバックアップされるファイルと、処理終了近辺にバックアップされるファイルとでは、各々がバックアップされる時刻が異なっているためである。更新のかかるデータベースファイルや、メールサーバのスプールフォルダなどのバックアップでは、このような時刻のずれに対処しないと不整合が起きやすい例である。
そこで、ある一時点のファイル・ディレクトリの状態を統一的に保持してその内容(またはその内容から得たスナップショットデータ)をバックアップすることで、ファイル・ディレクトリ相互の時間的整合性を保つために導入される仕組みの一種が「スナップショット」である。
データ保全のためのバックアップ用途以外に、スナップショットデータの有用性を生かした他の用途でも利用される。
スナップショットデータを作成する際には、作成している間その対象が更新されてはならない。ただし、スナップショットデータ作成中でも対象のデータを「更新可能」な仕組みがある。原理としては「スナップショットデータ作成中はファイル・ディレクトリ更新において実データを直接更新させず、特別に用意した別の領域(ジャーナル、トランザクションログなどとも呼ばれる)にそのことを記録させ、スナップショットデータ作成中の実データの情報を固定させる。スナップショットデータ作成中に読み出しアクセスを受けた際は、実データに特別な領域の情報を加味した内容を返す。スナップショットデータ作成終了後に、実データに特別な領域に記録した更新情報を反映させる」方法などが用いられる。
ファイルシステムにおけるスナップショットとは、ストレージ中に過去のある一時点で存在したファイルとディレクトリの集合、またはその記録処理を実現する仕組みである。
VMware社の各種仮想化ソリューション、Microsoft Hyper-V、Oracle VirtualBox などにおいて、仮想環境のスナップショットを採取することが可能である。過去の時点に復元させたり、スナップショットデータを複製することで別に用意された仮想環境に複製元の仮想環境の状態から動作させることが可能である。