# ReFS

| ReFS |
| --- |
| 開発者 |
マイクロソフト |
| 正式名 |
Resilient File System (開発コード Protogon) |
| 導入 |
2012年9月 (Windows Server 2012) |
| パーティション識別子 | `0x07` (MBR) `EBD0A0A2-B9E5-4433- 87C0-68B6B72699C7` (GPT) |
| 構造 |
| ディレクトリ |
B+木 |
| 限度 |
| 最大ファイル サイズ |
（実装上）256 TiB |
| 最大ファイル名長 |
255文字 |
| 特徴 |
| タイムスタンプ |
アクセス、作成、修正、変更 |
| 日付分解能 |
100ナノ秒 |
| フォーク |
可能 |
| 属性 |
読み取りのみ (**R**)、隠し (**H**)、システム (**S**)、アーカイブ (**A**)、インデックスサービス非対象 (**I**)、オフライン (**O**)、テンポラリ (**T**)、スクラビング非対象 (**X**)、整合性ストリーム (**V**) |
| パーミッション |
ACL |
| 透過的圧縮 |
有り |
| 透過的暗号化 |
有り(BitLockerに対応) |
| 重複排除 |
有り |
| 対応OS |
Windows 8.1、Windows 10、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016 |

**ReFS** (英: Resilient File System) とは、マイクロソフトが開発したWindows Server 2012で導入されたファイルシステムである。

## 特徴

Windows NT 3.1での導入以来長年使われてきたNTFSでは賄えなくなった要求に応えるためReFSは次の目標を掲げ設計された。サーバ向けファイルシステムであり、NTFSの後継ではないとされてきたが、Windows 11 23H2以降で開発者向けのDev Driveとしても利用されている。

信頼性
ReFSではメタデータでは常に、ユーザーデータでは任意に（これを整合性ストリームと呼ぶ）、書き込み時割り当てとチェックサムを用いてデータ破損を防いでいる。またビット腐敗やあまり読み書きされないデータが知らないうちに破損することを防ぐためにスクラブと呼ばれる冗長コピーも含む全データの読み取りを定期的に実行している。
可用性
ミラー記憶域またはパリティ記憶域上で使用している時にデータ読み取り時にチェックサムミスマッチが起きた場合は自動的に冗長コピーからの読み取りを実行し修正を行う。この工程においてアプリケーションからの介入は一切必要ない。上記の冗長記憶域を使用していなかった場合、また使用していてもすべての冗長データが破損していた場合、サルベージと呼ばれる該当する破損データの削除を行い、読み取り失敗を通知する。スクラブ、自動修正、サルベージ、いずれにおいてもボリュームはオンラインのまま行われる。
拡張性
ReFSはディスクの割り当てを大、中、小、プライベートの四層に分け競合を避けている。またNTFSにおける最大ボリュームサイズ 256TB をはるかに超えるサイズのボリュームをサポートする。
互換性
ReFSはNTFSとの互換性の面で、NTFSにおいてよく使われる機能のみをサポートし、使用される機会の少なかった機能は省かれている。またWindows APIレベルでの互換性を保っている。
## サポートされる機能

Windows 10 1709 以降では、Pro for Workstation および Enterprise エディションのみ ReFS パーティションの作成が可能となっている。（他エディションでも読み書きは可能）

* Windowsのブート (Windows Server 2022 および Windows 11 21H2 以降で対応)
* アクセス制御リスト
* ボリューム単位の暗号化(BitLockerのサポート)
* USN ジャーナル
* 変更通知
* シンボリックリンク
* ジャンクション
* マウントポイント
* リパースポイント
* VSS
* ファイル ID
* Oplock
* スパースファイル
* 名前付きストリーム
* 重複除去
* 圧縮 (ReFS v3.9以降、ボリューム単位でLZ4とZSTDアルゴリズムによるポストプロセス圧縮と透過的展開に対応。圧縮にはジョブ実行が必要)
* ハードリンク

## サポートされない機能

* オブジェクト ID
* 8.3形式の短い名前
* ファイル単位の暗号化(Encrypting File System)
* ファイル単位の圧縮
* トランザクションNTFS
* 拡張属性
* クォータ
* リムーバルメディアのサポート
* DAXボリューム（Non-Volatile Main Memoryのサポート）
* ボリュームの縮小
* オフロードデータ転送（ODX）

## バージョン

ReFS ファイルシステムのバージョンは、Windows OS上の次のコマンドで照会可能： `fsutil fsinfo refsinfo volumename`

### バージョン1

| ReFS バージョン / Windows バージョン | 8.1 | 10 | Server 2012 | Server 2016 | 主な変更点 | 初出 |
| --- | --- | --- | --- | --- | --- | --- |
| 1.1 | ✓ | ✓ | ✓ | ✓ | 初期リリース | Windows Server 2012 |
| 1.2 | ✓ | ✓ | ✓ | ✓ |  |  |

### バージョン2

Windows Server 2016 Technical Preview(TP)でのみ実装。前方互換性はない。

| ReFS バージョン / Windows バージョン | 8.1 | 10 | Server 2012 | Server 2016 TP | 主な変更点 | 初出 |
| --- | --- | --- | --- | --- | --- | --- |
| 2.0 | - | - | - | ✓ | * 4 KB クラスタ
	+ ReFSバージョン1では 64 KB のみだったが、バージョン2.0から4KBクラスタサイズに対応した。整合性ストリームによる CoW、ティアリング、Block Cloning による CoW はクラスタ単位で行われるため 4 KB I/O を効率的に扱える。
* クラスタ単位の参照カウントと Block Cloning
	+ Linux における ioctl\_ficlonerange に相当する
* Sparse VDL(ValidDataLength)
	+ NTFS と ReFSバージョン1では VDL は単一の値しか保持できなかったが、2.0ではクラスタ単位で管理される
* Cluster Bands
	+ 記憶域プールと組み合わせてリアルタイムティアリングに使われる
 | Server 2016 TP2 |

### バージョン3

| ReFS バージョン / Windows バージョン |  | 10 | 11 | 主な変更点 | 初出 |
| --- | --- | --- | --- | --- | --- |
| 1703 | 1709 | 1803 | 21H2 | 22H2 | 23H2 | 24H2 |
| Server 2016 |  |  | Server 2019 | Server 2022 |  |  |  |
| 3.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  | Server 2016 |
| 3.2 | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | * 重複排除をサポート
 | 10 Insider Preview 15002 |
| 3.3 | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |  | 10 Insider Preview 16257 |
| 3.4 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ |  | 10 Insider Preview 17083 |
| 3.5 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | * ハード リンクをサポート(新規フォーマットされたボリュームのみ)
 | 10 Insider Preview 19536 |
| 3.7 | - | - | - | - | ✓ | ✓ | ✓ | ✓ | * ファイル単位のスナップショットをサポート
* ページ ファイルをサポート
* ReFSUtilの対応
 | 10 Insider Preview 21313 |
| 3.9 | - | - | - | - | - | ✓ | ✓ | ✓ | * ボリューム圧縮と透過的展開をサポート
 | 11 Insider Preview 22598 |
| 3.10 | - | - | - | - | - | - | ✓ | ✓ |  | 11 Insider Preview 25324 |
| 3.14 | - | - | - | - | - | - | - | ✓ |  |  |

* “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（英語）