スナップショット (ファイルシステム)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ファイルシステム におけるスナップショットとは、ある過去の一時点で存在した、ストレージ中にある、ファイルとディレクトリの集合およびその記録を実現する機構を指す。
目次 |
[編集] 目的
変更の多いデータの集まりをバックアップするときにスナップショットを使えば、ファイルごとのバージョンが不整合になるのを防ぐことができる。そのようなデータの例としては、更新の多いデータベースのテーブルや、受信量の多いメールサーバのスプールフォルダが挙げられる。
[編集] スナップショット機能の拡張
ファイルシステムによっては、内部的に過去のバージョンのファイルを追跡記録しており、特別なネームスペースを使ってそのスナップショットにアクセスできるものもある。そのようなファイルシステムとしては、WAFL, ベル研究所のPlan 9用ファイルシステムFossil, ODS-5が挙げられる。他にもNTFSやUFS2のように、ファイルのヒストリにアクセスするためAPIをOSが備えている場合もある。
スナップショットに読み書き可能なものは特にbranching snapshotとも呼ばれる。これは、この機能が、スナップショット中のデータの枝分かれしたバージョンを暗黙のうちに作成することによる。ZFSではこの機能をcloneと呼ぶ。
[編集] 実装
[編集] UNIX系システム
Linuxを含むUNIX系システムの中には、スナップショットを利用できるLVMを備えるものがある。これらは、ブロックデバイス全体に対するコピーオンライトを実装している。具体的には、変更対象のブロックをストレージの別の場所にコピーすることで実現している。 これによって、矛盾のないブロックデバイスのイメージを保存することができる。このイメージ上のファイルシステムは、読み取り専用メディアとしてマウントすることもできる。ほとんどの場合において、ブロック単位でのスナップショットは、ファイルシステムレベルでサポートするスナップショットと比べて、記憶容量の点で効率が劣る。例外はZFSで、スナップショットがファイルシステムに必要不可欠な構成要素となっている。
[編集] Windows
Windows XPとWindows Server 2003以降のNTFSでは、ボリュームシャドウコピーサービス(VSS)と呼ばれるスナップショット機能を提供している。Windows Server 2003とWindows Vistaではボリュームシャドウコピーサービスを利用したファイルの世代別保存が可能になった。
[編集] スナップショットの応用
Shadow pagingとwrite ahead loggingはスナップショットによく似たメカニズムで、これは多くのデータベースでトランザクションを実装するために使われている。
スナップショットの考えかたは、メモリ上にしか存在しないデータ構造に対しても適用できる。例としてソフトウェアトランザクショナルメモリが挙げられる。事実上、永続データ構造はメモリ上のデータのスナップショットであると言える。
バックアップソフトウェアの中にはスナップショットの機能をオプションとして別で提供しているものもある。例えばBackup Execでは、これはOpen File Optionという名前で提供されている。