ReFS


Resilient File System, codenamed "Protogon", is a Microsoft proprietary file system introduced with Windows Server 2012 with the intent of becoming the "next generation" file system after NTFS.
ReFS was designed to overcome problems that had become significant over the years since NTFS was conceived, which are related to how data storage requirements had changed. The key design advantages of ReFS include automatic integrity checking and data scrubbing, removal of the need for running chkdsk, protection against data degradation, built-in handling of hard disk drive failure and redundancy, integration of RAID functionality, a switch to copy/allocate on write for data and metadata updates, handling of very long paths and filenames, and storage virtualization and pooling, including almost arbitrarily sized logical volumes.
These requirements arose from two major changes in storage systems and usage – the size of storage in use, and the need for continual reliability. As a result, the file system needs to be self-repairing, along with abstraction or virtualization between physical disks and logical volumes.
ReFS was initially added to Windows Server 2012 only, with the aim of gradual migration to consumer systems in future versions; this was achieved as of Windows 8.1. The initial versions removed some NTFS features, such as disk quotas, alternate data streams, and extended attributes. Some of these were re-implemented in later versions of ReFS.
In early versions, ReFS was similar to or slightly faster than NTFS in most tests, but far slower when full integrity checking was enabled, a result attributed to the relative newness of ReFS. Pre-release concerns were also voiced by one blogger over Storage Spaces, the storage system designed to underpin ReFS, which reportedly could fail in a manner that prevented ReFS from recovering automatically.
The ability to create ReFS volumes was removed in Windows 10's 2017 Fall Creators Update for all editions except Enterprise and Pro for Workstations.
The cluster size of a ReFS volume is either 4 KiB or 64 KiB.

Feature changes compared to NTFS

Major new features

;Improved reliability for on-disk structures: ReFS uses B+ trees for all on-disk structures, including all metadata and file data. Metadata and file data are organized into tables similar to a relational database. The file size, number of files in a folder, total volume size and number of folders in a volume are limited by 64-bit numbers; as a result, ReFS supports a maximum file size of 16 exbibytes, a maximum of 18.4 × 1018 directories and a maximum volume size of 1 yobibyte which allows large scalability with no practical limits on file and directory size. Free space is counted by a hierarchical allocator which includes three separate tables for large, medium, and small chunks.
;Built-in resilience: ReFS employs an allocation-on-write update strategy for metadata, which allocates new chunks for every update transaction and uses large IO batches. All ReFS metadata have 64-bit checksums which are stored independently. The file data can have an optional checksum in a separate "integrity stream", in which case the file update strategy also implements allocation-on-write for file data; this is controlled by a new "integrity" attribute applicable to both files and directories. If file data or metadata become corrupt, the file can be deleted without taking the whole volume offline for maintenance, and then be restored from the backup. As a result of built-in resiliency, administrators do not need to periodically run error-checking tools such as CHKDSK when using ReFS.
;Compatibility with existing APIs and technologies: ReFS supports only a subset of NTFS features - and only Win32 APIs that are "widely adopted" - but does not require new system APIs, and most file system filters continue to work with ReFS volumes. ReFS supports many existing Windows and NTFS features such as BitLocker encryption, Access Control Lists, USN Journal, change notifications, symbolic links, junction points, mount points, reparse points, volume snapshots, file IDs, and oplock. ReFS seamlessly integrates with Storage Spaces, a storage virtualization layer that allows data mirroring and striping, as well as sharing storage pools between machines. ReFS resiliency features enhance the mirroring feature provided by Storage Spaces and can detect whether any mirrored copies of files become corrupt using a data scrubbing process, which periodically reads all mirror copies and verifies their checksums, then replaces bad copies with good ones.

Removed features

Some NTFS features are not implemented in ReFS. These include object IDs, 8.3 filename, NTFS compression, Encrypting File System, transactional NTFS, hard links, extended attributes, and disk quotas. In addition, Windows cannot be booted from a ReFS volume. Dynamic disks with mirrored or striped volumes are replaced with mirrored or striped storage pools provided by Storage Spaces; however, automated error-correction is only supported on mirrored spaces. Data deduplication was missing in early versions of ReFS. It was implemented in v3.2, debuting in Windows Server v1709.
Support for alternate data streams was initially not implemented in ReFS. In Windows 8.1 64-bit and Server 2012 R2 the file system reacquired support for alternate data streams, with lengths of up to 128K, and automatic correction of corruption when integrity streams are used on parity spaces. ReFS had initially been unsuitable for Microsoft SQL Server instance allocation due to the absence of alternate data streams.

Version history and compatibility

ReFS has some different versions, with various degrees of compatibility between operating system versions. Aside for development versions of the filesystem, usually later operating system versions can mount filesystems created with earlier OS versions. Some features may not be compatible with the feature set of the OS. The version, cluster size and other features of the filesystem can be queried with the command fsutil fsinfo refsinfo volumename.
ReFSWindows
Server
2012
Windows
8.1, Server
2012 R2
Windows 10
v1507 – v1607
Windows
Server 2016
TP2, TP3
Windows
Server 2016
TP4, TP5
Windows
Server
2016 RTM
Windows 10
v1703
Windows 10
v1709,
Windows Server
17095
Windows 10
v1803 – v1809,
Windows Server
2019, 1803 – 18095
1.1111111
1.2
2.0
3.02346
3.1346
3.246
3.36
3.4

Notes:

Stability and known problems

Issues identified or suggested for ReFS, when running on Storage Spaces, include:
At the Storage Developer Conference 2015, a Microsoft developer presented enhancements of ReFS expected to be released with Windows Server 2016 and included in Technical Preview 4, titled "ReFS v2". It highlighted that ReFS now included capabilities for very high speed moving, reordering, and cloning of blocks between files. This is particularly needed for virtualization, and is stated to allow fast provisioning, diff merging, and tiering. Other enhancements cover the redo log, parallelization, efficient tracking of uninitialized sparse data and files, and efficient 4k I/O. ReFS with File Integrity enabled also acts more like a log-structured file system, coalescing small random writes into large sequential ones for efficiency.

Performance and competitor comparisons

Other operating systems have competing file systems to ReFS, of which the best known are ZFS and Btrfs, in the sense that all three are designed to integrate data protection, snapshots, and silent high speed background healing of corruption and data errors.
In 2012, Phoronix wrote an analysis of ReFS vs Btrfs, a copy-on-write file system for Linux. Their features are similar, with both supporting checksums, RAID-like use of multiple disks, and error detection/correction. However, ReFS lacks copy-on-write snapshots and compression, both found in Btrfs and ZFS.
In 2014, a review of ReFS and assessment of its readiness for production use concluded that ReFS had at least some advantages over two of its main file system competitors.
, Microsoft has not published any specifications for ReFS, nor have any working open-source drivers been made. An open-source project to document ReFS is on GitHub.
Paragon Software Group provides a closed-source driver for Windows and Linux.