ReFS (Re silient F ile S ystem) はWindows Server 2012で導入されたファイルシステムである。開発コードはProtogon 。
特徴
Windows NT 3.1での導入以来長年使われてきたNTFSでは賄えなくなった要求に応えるためReFSは次の目標を掲げ設計された。サーバー向けファイルシステムであり、NTFSの後継ではない。
信頼性
ReFSではメタデータでは常に、ユーザーデータでは任意に(これを整合性ストリームと呼ぶ)、書き込み時割り当てとチェックサムを用いてデータ破損を防いでいる。またビット腐敗 やあまり読み書きされないデータが知らないうちに破損することを防ぐためにスクラブと呼ばれる冗長コピーも含む全データの読み取りを定期的に実行している。
可用性
ミラー記憶域またはパリティ記憶域上で使用している時にデータ読み取り時にチェックサムミスマッチが起きた場合は自動的に冗長コピーからの読み取りを実行し修正を行う。この工程においてアプリケーションからの介入は一切必要ない。上記の冗長記憶域を使用していなかった場合、また使用していてもすべての冗長データが破損していた場合、サルベージと呼ばれる該当する破損データの削除を行い、読み取り失敗を通知する。スクラブ、自動修正、サルベージ、いずれにおいてもボリュームはオンラインのまま行われる。
拡張性
ReFSはディスクの割り当てを大、中、小、プライベートの四層に分け競合を避けている。またNTFSにおける最大ボリュームサイズ 256TB をはるかに超えるサイズのボリュームをサポートする。
互換性
ReFSはNTFSにおいてよく使われる機能のみをサポートし、使用される機会の少なかった機能は省かれている。またWindows APIレベルでの互換性を保っている。
サポートされる機能
サポートされない機能
ReFS v2
Windows Server 2016 Technical Previewでのみ導入されたバージョン。前方互換性はない。
ReFS v2 導入に伴い従来の ReFS は ReFS v1 と呼ぶ。
以下の機能が追加された。
4 KB クラスタ
v1 では 64 KB のみ 整合性ストリームによる CoW、ティアリング、Block Cloning による CoW はクラスタ単位で行われるため 4 KB I/O を効率的に扱える。
クラスタ単位の参照カウントと Block Cloning
Linux における ioctl_ficlonerange に相当する
Sparse VDL(ValidDataLength)
NTFS と ReFS v1 では VDL は単一の値しか保持できなかったが ReFS v2 ではクラスタ単位で管理される
Cluster Bands
記憶域プールと組み合わせてリアルタイムティアリングに使われる
ReFS v3
基本的に大容量のファイルサーバ向けに用途が限定され、Windows Server 2016と制限付きでWindows 10に導入されている。
Windows 10では、ver.1703で導入されたが、ver.1709以降は、Windows 10 Pro for WorkstationおよびWindows 10 Enterprise系でのみ、フォーマットが可能となっている。他はver.1703との互換性のために既存のパーティションのマウントこそ可能であるが使用しないことが推奨されている 。
脚注
外部リンク
“Windows の次世代ファイル システム: ReFS”. 2012年1月24日時点のオリジナルよりアーカイブ。2019年2月4日 閲覧。
“Building the next generation file system for Windows: ReFS”. 2012年7月31日時点のオリジナルよりアーカイブ。2019年4月8日 閲覧。 (英語)
Resilient File System の概要
Resilient File System Overview(英語)
ReFS v2: Cloning, Projecting, and Moving Data(英語) . Source: