Resilient File System (ReFS) is a file system developed by Microsoft for use on the Windows operating system (OS) that's designed to overcome some of the limitations in the New Technology File System (NTFS).
Microsoft developed ReFS to improve on the company's earlier file system, NTFS, specifically in the areas of data corruption and data capacity.
A file system controls data storage and retrieval by separating data into named groups. Each group is called a file. The underlying structure that manages files and file names is the file system. File systems isolate data to avoid collisions between different sets of information. They also make it easier to find files.
ReFS maintains a high level of compatibility with NTFS and builds on the foundation of that file system for more consistency and better data integrity to avoid downtime. If the operating system detects a system error and data is lost or corrupted, ReFS can restore that data without affecting availability.
ReFS also combats bit rot -- the corruption of bits in a file system over time -- through disk scrubbing tasks that read and validate data.
How ReFS works
Microsoft used some of the NTFS codebase to produce ReFS and added support for Win32 APIs to provide compatibility with existing APIs, giving ReFS support for a number of features, such as access control lists and file IDs.
In NTFS, there are different reasons for file metadata corruption, such as an abrupt system shutdown during power loss, or when the system only writes part of a block. ReFS uses allocate-on-write, which writes and reads files in a single instruction, to avoid data damage. Allocate-on-write enables the use of thin provision clones of source databases to reduce the chance of corruption.
ReFS uses a B+ tree structure to manage data through metadata indexing. The tree consists of the root, internal nodes and leaves. A B+ tree stores data in a branching pattern, where each node in the tree has an ordered list of keys and pointers to lower-level nodes, or leaves. Records are stored at the leaf level, which allows for more branches. This process lowers disk I/O and provides better performance.
History of ReFS development
Microsoft introduced ReFS in September 2012, when it released Windows Server 2012 as an optional file system to account for larger data storage requirements and larger workloads. Microsoft added ReFS to desktop versions of Windows starting with Windows 8.1 in October 2013.
ReFS is not a direct replacement for NTFS. ReFS does not support some NTFS features, such as master file table (MFT), page file support and object IDs. Some applications may rely on features only available on NTFS. Early versions of ReFS lacked many features from NTFS, such as alternative streams, named streams and sparse files, which Microsoft added to ReFS in later updates.
Microsoft removed the ability to create ReFS volumes in Windows 10 in its 2017 Fall Creators Update, with the exception of Windows 10 Pro for Workstations. But the operating system can still read ReFS volumes.
Notable features and changes
In addition to its data integrity feature, ReFS scales to larger volume and file sizes, compared with NTFS.
ReFS supports a maximum volume size of 262,144 exabytes, compared with 16 exabytes in NTFS. ReFS supports a maximum file size of 16 exbibytes, while NTFS supports up to 16 exabytes. ReFS supports up to 32,768 characters in a file name, compared with the limit of 255 characters in NTFS.
Other ReFS features include improved performance with Hyper-V, support of integrity steams to use checksums to assess the state of data and data striping for performance similar to RAID.
Microsoft added support for alternate data streams in version 1.2 to allow ReFS to work with Microsoft SQL Server deployments. Other notable updates include the support for the data deduplication -- a storage optimization feature -- in ReFS version 3.2 with the release of Windows Server version 1709 in the Semi-Annual Channel in October 2017.
Benefits and drawbacks
Advantages to using ReFS include the following:
- similar to faster speeds, compared with NTFS;
- larger volume, file and directorysizes, compared with NTFS;
- data scrubbing;
- automatic integrity checking;
- less need to run chkdsk, an error-checking tool; and
- integration with Storage Spaces.
Drawbacks to ReFS mainly include its limitations:
- Windows cannot boot from ReFS.
- ReFS consumes more system resources, compared with NTFS.
- The bigger the disk array, the more RAM and IOPS ReFS uses for file integrity.
- It lacks support for hard links, disk quotas, extended attributes, short names, removable media or drives and file system encryption.
- NTFS data can't be converted to ReFS.