ReFS – Resilient File System – is a Microsoft proprietary file system introduced with Windows Server 2012. It’s not a substitute of NTFS, the file system released in 1993 with Windows NT 3.1 and revised many times, still the only available for the installation of a Windows operating system.
The two file systems are a complement of each other, so it’s important to understand their features in order to use them in their full glory.
Resilience is the key
ReFS has been introduced to safely store large amount of data.
The goals of Microsoft in building ReFS were:
- Maintain a high level of compatibility with NTFS;
- Make it able to verify and auto-correct data
- Optmize for extreme scale
- Make it able to stay always online, even in case of partial corruptions
- Provide a full end-to-end resiliency architecture when used in conjunction with the Storage Spaces feature
The key features of ReFS are as follows:
- Metadata integrity with checksums
- Integrity streams providing optional user data integrity
- Allocate on write transactional model for robust disk updates (also known as copy on write)
- Large volume, file and directory sizes
- Storage pooling and virtualization makes file system creation and management easy
- Data striping for performance (bandwidth can be managed) and redundancy for fault tolerance
- Disk scrubbing for protection against latent disk errors
- Resiliency to corruptions with “salvage” for maximum volume availability in all cases
- Shared storage pools across machines for additional failure tolerance and load balancing
So it’s the perfect solution for data shares, archives, backups and to store Hyper-V virtual machine disks.
NTFS, still your Windows file system
Microsoft made ReFS largely compatible with NTFS but it didn’t implement all its features. For example, ReFS lacks of hard links support and this means it can’t be used to run the operating system and some applications. NTFS is still the only solution here.
Here’s a table comparing the two file systems:
|NTFS features||ReFS features|
|Supports Case-sensitive filenames||Supports Case-sensitive filenames|
|Preserves Case of filenames||Preserves Case of filenames|
|Supports Unicode in filenames||Supports Unicode in filenames|
|Preserves & Enforces ACL’s||Preserves & Enforces ACL’s|
|Supports Sparse files||Supports Sparse files|
|Supports Reparse Points||Supports Reparse Points|
|Supports Open By FileID||Supports Open By FileID|
|Supports USN Journal||Supports USN Journal|
|Supports Hard Links||–|
|Supports file-based Compression||–|
|Supports Disk Quotas||–|
|Supports Object Identifiers||–|
|Supports Encrypted File System||–|
|Supports Named Streams||–|
|Supports Extended Attributes||–|