Resilient File System (ReFS) is a new file system introduced in Windows Server 2012. Initially, it is being targeted for implementation as a file system that is primarily used for file servers. However, starting as the file system for a file server is just the beginning. Like its predecessor, NTFS, ReFS will begin as a file server system, then become a mainstream file system. Before long, we will all be using ReFS on our boot partitions.
Resilient File System will likely replace NTFS completely within the next versions of Windows, and here are some reasons why you are going to really love the new file system.
Comparing ReFS and NTFS Features
Although ReFS is a different file system, there are similar features between ReFS and NTFS. The easiest way to compare those is to look at the feature list side by side. Consider the following feature sets:
NTFS Features |
ReFS Features |
Supports Case-sensitive filenames Preserves Case of filenames Supports Unicode in filenames Preserves & Enforces ACL’s Supports file-based Compression Supports Disk Quotas Supports Sparse files Supports Reparse Points Supports Object Identifiers Supports Encrypted File System Supports Named Streams Supports Transactions Supports Hard Links Supports Extended Attributes Supports Open By FileID Supports USN Journal |
Supports Case-sensitive filenames Preserves Case of filenames Supports Unicode in filenames Preserves & Enforces ACL’s Supports Sparse files Supports Reparse Points Supports Open By FileID Supports USN Journal |
Functionality |
NTFS |
ReFS |
Named Streams |
Yes |
No |
OBJECT IDs |
Yes |
No |
File System Compression |
Yes |
No |
File System Encryption |
Yes |
No |
TRANSACTIONS |
Yes |
No |
Sparse Files |
Yes |
No |
Hard Links |
Yes |
No |
Extended Attributes |
Yes |
No |
Quota |
Yes |
No |
Max size of a single file |
(264-1) bytes |
(264-1) bytes |
Max size of a single volume |
Roughly 256 TB |
Roughly 4.7 ZB (zettabytes) |
Max number of files in a directory |
No actual limitation |
2^64 |
Max number of directories in a volume |
No actual limitation |
2^64 |
Max file name length |
32K unicode characters |
32K unicode characters |
Max path length |
32K |
32K |
Boot to file system |
Yes |
No |
Supported on removable media |
Yes |
No |
Deduplication |
Yes |
No |
WDS |
Yes |
No |
Note also that ReFS only uses a 64KB cluster size, which means a lot of wasted space for disks with lots of small files. Since ReFS uses a Copy on Write mechanism, there’s a greater chance of fragmentation.
Notice that key capabilities missing from ReFS as compared to NTFS are EFS encryption, quotas, and compression. BitLocker may be used for encrypting these volumes while EFS is not an option. Thus, when using ReFS, encryption doesn’t need to be part of the file system. BitLocker satisfies the need for encrypting data on the volume as it encrypts the contents of the entire disk. Quotas may be managed outside the file system rather than through the file system like NTFS. Not supporting Hard Links is a key reason why you wouldn’t use ReFS for a system disk; files in the system32 folder are really hard linked back into the WinSxS folder structure. You might think that ReFS would have data deduplication built-into the file system. The fact that it doesn’t may not prohibit other components or third-party solutions from interfacing with ReFS through the API set provided.
Command Line Directives for ReFS
For those that are script fanatics (you know who you are), I’ve written this section just for you. We all know that the need for scripting language happens all the time. Perhaps you’re just creating re-creatable virtual environments for one reason or another…and now you need to include the creation of some ReFS volumes. Below are some valuable commands including conventional and PowerShell examples.
Formatting a ReFS Volume
While this can be done from the UI quite easily by choosing ReFS as the file system in the drop down from the Format dialog, this is also easily done from the command line. Full format example below:
Command-Line
Format /fs:ReFS J:
PowerShell Equivalent
Format-Volume –DriveLetter J –FileSystem ReFS -Full
In fact, typical command line syntax and optional parameters apply. Therefore, if you want this to be a quick format, just append /q to the above command line. However, you have the option to enable Integrity Streams for the volume. Note the following command:
Command-Line
Format /fs:ReFS /q /i:enable J:
PowerShell Equivalent
Format-Volume –DriveLetter J –FileSystem ReFS –SetIntegrityStreams $true
The preceding command enables Integrity Streams on drive J: and performs a quick format. The /i option offers you the ability to enable|disable this feature for the volume. If you enable this option, all files created on the volume will be configured with integrity. You may turn this off for individual files or folders using the Integrity command. However, know that if a file is non-empty and has data streams created with Integrity Streams, you cannot disable the feature for that file. You cannot change the integrity status for a file once the file contains integrity data streams. You could copy the file to another partition, delete the original, and then copy it back without Integrity Streams.
Features of Microsoft’s ReFS
The main focus of new features is resilience, for example, automatically correcting data errors. Verifying with checksum before the write commits, and thus avoiding “torn writes”; it works by allocate-on-write, which never updates metadata in-place, but rather writes it to a different area of the disk, rather like “shadow paging”.
- Making sure that internal structures are pliable to support large file system in the exabyte range.
- Make it a rule never to take the file system offline. Instead isolate the fault while keeping the rest of the volume available.
- Impliment Storage Spaces for ReFS.
- Supporting very large file systems. Maximum file size of: =2^64 bytes
18,446,744,073,709,600,000 bytes
18,446,744,073 gigabytes
18 exabytes.
The graphic to the right shows how ReFS, uses some of the same code as NTFS, namely file system read, write, open, close, and change notification.
But below this NTFS equivelent is a new architected engine that takes care of the MFT (Master File Table).
Who Will Benefit Most From ReFS?
ReFS will be most useful on fileservers especially those with disk intensive applications that require high-performance. Data storage companies who need even larger storage systems that are currently available with NTFS may turn to ReFS.
Recent Comments