WindowsのNTFSとReFSの違い:Tech TIPS
Windows Server 2012で導入されたReFSは、耐障害性やスケーラビリティを向上させた新しいファイルシステムである。だがNTFSと比較すると不足する機能も少なくない。両者の違いをまとめておく。
対象OS:Windows Server 2012
解説
●Windows Server 2012で導入された新しいファイルシステム「ReFS」
Windows Server 2012では新しく「ReFS(Resilient File System)」というファイルシステムが導入されている。「Resilient」とは「復元性がある」という意味であり、障害などからの復旧能力に優れることから、名付けられたようである。従来のNTFSと比較すると、大容量のボリュームのサポートや最大ファイルサイズの拡大、信頼性の向上、耐障害性の向上など、機能は向上しているが、その一方でNTFSよりも不足している機能もあるため、単純にNTFSをReFSに置き換えるわけにはいかないのが現状だ。本TIPSではこの2つのファイルシステムの違いについてまとめておく。なお、FATとexFATの違いやファイルシステムの違いによるファイルサイズの制限などについては、以下の記事を参照していただきたい。
●ReFSの機能概要
ReFSは、特に信頼性向上や(現在の)大容量ストレージのサポート、スケーラビリティなどに重点を置いて開発された新しいファイルシステムである。既にNTFSがあるのに、わざわざ新しいファイルシステムとして開発されたのは、NTFSでは実現できないような機能を実装するためである。たとえ障害が発生してもそれを局所化し、ボリューム全体が影響を受けないようにしたり、メタデータにはチェックサムを付けて信頼性を高める、検査/修復中でもディスク全体をオフラインにしないようにする、記憶域プールと組み合わせて自動的な整合性チェックや修復をさせる、などの機能を持つ。ReFSについては以下の記事も参照していただきたい。
●NTFSとReFSの仕様の違い
2つのファイルシステムの仕様をまとめておくと次のようになる。
項目 | ReFS | NTFS |
---|---|---|
最大ファイルサイズ | 理論上は2の64乗bytesまで(Windows Server 2012では255TBまで) | 255TBまで(以前のWindows OSでは16TBまで) |
クラスタサイズ | 理論上は物理セクタサイズ以上の任意のサイズ(Windows Server 2012の場合は64KBのみ) | 512〜64KB(256TBのボリュームの場合、クラスタサイズは64KBで固定) |
最大ボリュームサイズ | 理論上は2の64乗×クラスタサイズまで(Windows Server 2012の場合は2048TBまで) | Windows Server 2012の場合は255TBまで(クラスタサイズ=64KBの場合。クラスタサイズが小さくなると最大ボリュームサイズも減少する) |
ファイルID | 128bit幅 | 64bit幅 |
サポートOS | Windows Server 2012以降のサーバOS(基本的にはクライアントOSでは利用不可) | Windows NT系の全てのWindows OSで利用可能(Windows 9xなどは不可) |
サポートデバイス | 固定ディスクのみ | リムーバブルデバイスでも利用可能 |
ブートボリュームとしての利用 | 不可 | 可 |
システムボリュームとしての利用 | 不可 | 可 |
記憶域プールとの連携 | 冗長プールの場合には自動的に連携 | 特になし |
ファイルシステムの検査 | 自動的にバックグラウンドで随時行われる | 手動のchkdsk、もしくは電源断後の起動時の自動chkdsk |
chkdsk | 不要(実行しなくてもよいと表示される) | 必要(障害発生時に自動的に実行される) |
メタデータの整合性検査 | あり(常にオン) | なし |
ファイルデータの整合性検査 | あり(デフォルトでオフ) | なし |
修復時のボリュームの状態 | 検査/修復中に局所的にオフラインになるが、全体的には継続して利用できる | 修復が完了するまで、ボリューム全体がオフラインになる |
BitLockerによるボリューム暗号化 | 利用可能 | 利用可能 |
NTFSとReFSにおけるファイルシステムの諸元 ReFSではクラスタ番号やファイルサイズのフィールドなどが全てが64bit化されているので、理論的にはほぼ無制限だが、現状のWindows Server 2012ではこのようにいくらかの制限がある。将来は緩和される可能性がある。 |
利用できるファイル/システムの機能については次の通りである。これらの機能は「fsutil fsinfo volumeinfo d:」などとすれば確認できる。
項目 | ReFS | NTFS |
---|---|---|
ファイル名における大文字/小文字の区別 | ○ | ○ |
ファイル名の大文字/小文字種別の保持 | ○ | ○ |
Unicodeファイル名 | ○ | ○ |
ACL(アクセス制御リスト)の保持と強制 | ○ | ○ |
スパースファイル(疎なファイル) | ○ | ○ |
リパースポイント | ○ | ○ |
ハードリンク | × | ○ |
ソフトリンク | ○ | ○ |
ジャンクション | ○ | ○ |
ファイルIDでのオープン | ○ | ○ |
USNジャーナル | ○ | ○ |
ファイル圧縮 | × | ○(クラスタサイズが4KB以下の場合のみ) |
ファイル暗号化 | × | ○ |
ディスククオータ | × | ○ |
オブジェクトID | × | ○ |
名前付き(代替)ストリーム | × | ○ |
トランザクション | × | ○ |
拡張属性 | × | ○ |
8.3形式の短い名前 | × | ○ |
ファイルサーバリソースマネージャによる管理 | × | ○ |
NTFSとReFSの機能の違い |
サポートされているAPIやReFSの制限については、以下の情報も参照していただきたい。
- Application Compatibility and API Support for SMB 3.0, CSVFS, and ReFS[英語](マイクロソフト ダウンロード センター)
ReFSは、基本的な機能は一通り持っているが、圧縮や暗号化、代替ストリーム(TIPS「streamsコマンドでNTFSの代替データストリーム情報を表示/削除する 」参照)、ディスククオータなどが使えないので、場合によっては問題になるかもしれない。
●ReFSに向く用途は?
以上で分かるように、現状のWindows Server 2012のReFSはNTFSよりも機能がやや少ない。Windows OSをインストールするシステムボリュームとしては使えないので、ユーザーデータボリューム用のファイルシステムとして使うことになるだろう。特に記憶域プールと組み合わせた場合は自動的な修復機能なども利用できるので(前掲の解説記事参照)、記憶域プール上に(シンプロビジョニングで)大きなボリュームを作成した場合には利用してもよさそうだ。
だがNTFSと比較すると、機能(サポートされているAPI)が不足しているし、アプリケーションによってはReFSにアクセスできない(もしくは障害を起こす)かもしれないので、導入に当たっては十分な検証が必要だろう。NTFSなら従来のOSやクライアントOSでもアクセスできるので何か問題が起こってもデータの取り出しぐらいはできそうだが、ReFSはまだ導入実績も少ないので、よく検討してから導入していただきたい。
【やって分かった】Windows 8.1でReFSを使う
ReFSを利用できるOSは現在のところWindows Server 2012のみであり、クライアントOSであるWindows 8ではサポートされていない。だが次期クライアントOSであるWindows 8.1のPreview版に、Windows Server 2012で作成したReFSボリュームのディスクを接続してみたところ、マウントできたし、読み書きも可能だった(Windows 8では不明なボリュームになる)。しかしWindows 8.1 Preview版のフォーマット機能ではReFSは選択できないし、formatコマンドでもReFSファイルシステムを指定することはできない。つまり、ほかで作成したReFSボリュームのマウントはできるが、作成することはできない。網羅的にテストしたわけではないので、本当に正しく動作しているのか、信頼性は確保されているのかなどは不明だが、いずれクライアントOS(Windows 8.1から?)でもReFSが利用可能になるかもしれない。
■この記事と関連性の高い別の記事
- FAT→NTFSにファイルシステムを変換する(TIPS)
- FATとexFATの違い(TIPS)
- ファイルシステムの制限 ― 2G/4GB超のファイルに注意 ―(TIPS)
- Windowsで巨大なサイズのファイルを簡単に作る方法(TIPS)
- Windowsのディスクボリュームを他のボリュームのフォルダに割り当てる方法(NTFSのリパースポイント機能を利用する)(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.