バージョニングファイルシステム

バージョニングファイルシステム（英: Versioning File System）とは、コンピュータのファイルが同時に複数の版が存在できるファイルシステムのこと。ほとんどのバージョニングファイルシステムはファイルの古いコピーを保存しておく。いくつかの物は、1分ごとや1時間ごとなど、時間間隔を制限するなどして、些細な変更が大量に保存されないようにする。ある物は、周期的なスナップショットをとり、普通のファイルアクセスと同じような方法で過去のスナップショットにアクセスできるようにしている。

類似技術

バックアップ 
バージョニングファイルシステムは定期的なバックアップに似ているが、いくつかの点で異なる。
 バックアップは時刻を元にバックアップが行われるが、バージョニングファイルシステムは変更が起きた時に保存される。
 バックアップは、通常、システム全体、または、パーティション全体に対して行われるが、バージョニングファイルシステムはファイル単位で独立して行われる。
 バックアップは通常は異なる媒体に保存されるが、一方、バージョニングファイルシステムは同じメディアに保存されることもある。

リビジョン管理システム 
バージョニングファイルシステムはリビジョン管理システムの機能のうちいくつかを提供する。しかし、ほとんどのリビジョン管理システムとは異なり、バージョニングファイルシステムは透過的である。

ジャーナリングファイルシステム 
バージョニングファイルシステムとジャーナリングファイルシステムは異なる物であり、混乱されやすい。

実装

TOPS-20
最初のバージョニングファイルシステムは TOPS-20で導入された。

Files-11 (OpenVMS)

バージョニングファイルシステムの強力な例は、DECのOpenVMS OSに作られた。アプリケーションが書き込みのためにファイルをオープンすると、ファイルシステムが自動的にファイルの新しいインスタンスを作り、ファイル名にバージョン番号が付加される。バージョン番号は1から始まり、新しいファイルのインスタンスが作られるたびに増えていく。アプリケーションが読み込みのためにファイルをオープンする時は、バージョン番号を含めて正確にファイル名を指定することもできるし、バージョン番号なしで単純にファイル名だけを指定し、最新バージョンのファイルを開くこともできる。履歴の最大数は32767以下で、設定可能であるが、履歴の最大数に到達したらファイルシステムは自動的に過去の履歴を削除する。

Linux
メインストリームのファイルシステム(ext3, ext4)はバージョニングをサポートしていない。
 NILFS - 2.6.30以降搭載
 ext3cow
 Tux3
 Next3, Next4
 Wayback (Filesystem) - ユーザーレベルのバージョニングファイルシステム
 CopyFS - copy-on-write を使ったバージョニングファイルシステム

その他 
 Subversion には、自動バージョニングという機能がある。WebDAV に Subversion をバックエンドにして、ファイルシステムとしてマウントすることができる。Linuxなどで対応している。Windows も対応しているが、非常にバグが多い。ファイルを保存すると、リビジョン管理システム上の新しいリビジョンが作られる。

関連ソフト 
以下、バージョニングファイルシステムではないが、関連するソフトウェア。これらは、バックアップソフトウェアである。

 UNIX
 ZFS は瞬時のスナップショットとクローンをサポートしている。
 Plan 9 Fossil - Fossilファイルシステムの背後にあるVentiはバージョニングファイルシステムによく似た機能を提供する。このファイルシステムでは周期的なスナップショットが(しばしば1時間毎に)撮られ、これらのうち選ばれたものがVentiへ(通常1日毎に)永久に保存され、他のものは破棄される。もちろんこれはファイルの全てのバージョン毎には記録されない。以前のバージョンは/archiveから利用できるようにされる。
 Write Anywhere File Layout - NetAppのストレージソリューションはWAFLと呼ばれるファイルシステムを実装している。ボリューム周辺においてすべてのファイルの異なるバージョンを維持するためのスナップショット技術を使用している。
 pdumpfs, 高林哲によって作られた、Plan9 の dumpfs に似た、単純なデイリーのバックアップシステムである。Rubyで実装されている。ハードリンクを用いてディレクトリ全体を他の場所にコピーすることを可能にする、スナップショットツールとして機能する。普通に使うと、このツールはバージョニングに似た効果を出せる。
 Microsoft Windows
 システムの復元 - Windows Me 以降に標準搭載
 ファイル履歴 - Windows 8 以降に標準搭載
 Rollback Rx - Horizon DataSys製。ディスクパーティションのスナップショットを撮ることができる。各スナップショットは前回のスナップショットからの差分のみを含み、作成に数秒しかかからない。Windows OSを安定した状態に保つ用途に信頼して使うことができ、またマルウェアから保護することもできる。
 GoBack - SymantecのWindows用のGoBack softwareはファイル、ディレクトリ、またはディスクのリビジョンを以前の状態にできる。変更を最大8GBまで記録でき、I/Oが活発になるイベントがあると、各変更の記録を一時的に停止することができる。
 macOS
 Time Machine - Mac OS X v10.5以降に標準搭載

関連項目
 :en:Comparison of revision control software

引用

ソフトウェア工学
OSのファイルシステム