| Developer(s) | Microsoft |
|---|---|
| Full name | Resilient File System |
| Introduced | 1 August 2012; 13 years ago (2012-08-01)[1] withWindows Server 2012 |
| Structures | |
| Directory contents | B+ tree[2] |
| Limits | |
| Max volume size | 35petabytes by Windows;[3] 278 bytes with 16KB cluster size (264 × 16 × 210) in theory[2] |
| Max file size | 35petabytes by Windows;[3] 264−1 bytes in theory[2] |
| Features | |
| Attributes | Yes |
| Transparent compression | No |
| Data deduplication | Yes, since v3.2 debuting in 2016 v1709[4] |
| Copy-on-write | Yes |
| Other | |
| Supported operating systems |
|
| Website | learn |
Resilient File System (ReFS),[6] codenamed "Protogon",[7] is aMicrosoftproprietaryfile system introduced withWindows Server 2012 with the intent of becoming the "next generation"file system afterNTFS.
ReFS was designed to overcome problems that had become significant over the years since NTFS was conceived, relating to changes in data storage requirements. These requirements arose from two major changes in storage systems and usage – the size of storage in use (large or massive arrays of multi-terabyte drives now common), and the need forcontinual reliability. As a result, the file system needs to be self-repairing (to prevent disk checking from being impractically slow or disruptive), along withabstraction orvirtualization between physical disks andlogical volumes.
The key design advantages of ReFS include automaticintegrity checking anddata scrubbing, elimination of the need for runningchkdsk, protection againstdata degradation, built-in handling ofhard disk drive failure andredundancy, integration ofRAID functionality, a switch tocopy/allocate on write for data andmetadata updates, handling ofvery long paths and filenames, andstorage virtualization andpooling, including almost arbitrarily sizedlogical volumes (unrelated to the physical sizes of the used drives).
ReFS usesB+ trees for all on-disk structures, including all metadata and file data.[2][8] Metadata and file data are organized into tables similar to arelational database. The file size, number of files in afolder, total volume size, and number of folders in a volume are limited by 64-bit numbers; as a result, in practice ReFS supports a maximum file size of 35petabytes, and a maximum volume size of 35 petabytes.[3]The theoretical maximum is way beyond that however not even Windows supports ReFS volumes with the full theoretical limits. The design allows for a theoretical maximum of a single volume of 2^78 bytes with 16KB cluster size (2^64 * 16 * 2^10) with a maximum of 2^64-1 bytes for a single file. That maximum volume size is currently soft limited by windows stack addressing being limited to 2^64 bytes; a maximum path length of 32K (soft limited to 255 unicode characters on windows to align with NTFS and because of restrictions in some older APIs for handling file paths); a maximum of 2^64 directories on a single volume; 2^64 files per directory; a single storage pool is limited to a maximum of 4 PB.[2] It as well as all other filesystems supported by windows are defined within theOpen Specification.[9]
ReFS employs anallocation-on-write update strategy for metadata,[2] which allocates new chunks for every update transaction and uses largeIO batches. All ReFS metadata have 64-bit checksums which are stored independently. The file data can have an optional checksum in a separate "integritystream", which used a modifiedCRC-32C algorithm to checkallocation units,[10] 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 asCHKDSK when using ReFS. In contrast,NTFS only calculates a checksum formetadata, the check forsectors is done by storage hardware (such as sector CRC-32 command of SATA and NVMe).[11]
ReFS supports only a subset of NTFS features, and only supports Win32 APIs that are "widely adopted". It does not require new system APIs, and most file system filters continue to work with ReFS volumes.[2] ReFS supports many existing Windows and NTFS features such asBitLocker encryption,Access Control Lists,USN Journal, change notifications,[12]symbolic links,junction points,mount points,reparse points,volume snapshots,file IDs, andoplock. ReFS seamlessly integrates withStorage Spaces,[2] astorage virtualization layer that allows data mirroring and striping, as well as sharing storage pools between machines.[13] ReFS resiliency features enhance the mirroring feature provided by Storage Spaces and can detect whether any mirrored copies of files become corrupt using adata scrubbing process,[8] which periodically reads all mirror copies and verifies their checksums, then replaces bad copies with good ones.
Microsoft Windows and Windows Server includeReFSUtil, acommand-line utility that can be used to diagnose heavily damaged ReFS volumes, identify remaining files, and copy those files to another volume.[14]
Some NTFS features are not implemented in ReFS. These includeobject IDs,8.3 filename,NTFS compression,Encrypting File System (EFS),transactional NTFS,extended attributes, anddisk quotas.[7][2][15] 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.[2] It was implemented in v3.2, debuting in Windows Server v1709.[4] The partition cannot be shrunk and it cannot be used to install Windows.[16]
Support foralternate data streams andhard links 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.[17] ReFS had initially been unsuitable forMicrosoft SQL Server instance allocation due to the absence of alternate data streams.[18] Hard links were introduced with preview versions of Windows Server 2022 but are not yet available in Windows 11.
ReFS was initially added toWindows Server 2012 only, with the aim of gradual migration to consumer systems in future versions; this was achieved as ofWindows 8.1.[3] The initial versions lacked some of the NTFS features, such asdisk quotas,alternate data streams, andextended attributes. Some of these were implemented in later versions of ReFS.
In early versions (2012–2013), ReFS was similar to or slightly faster than NTFS in most tests,[19] but far slower when full integrity checking was enabled, a result attributed to the relative newness of ReFS.[20][self-published source][21][self-published source]
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.[5][why?]
Starting with Windows Server 2022 and Windows 11 build 22557, theboot environment natively supports ReFS, allowing the system to be installed and run in a special way on a volume formatted with ReFS v3. If it is a volume formatted with ReFS v1, it cannot be booted with ReFS.[22]
Starting with Windows 11 build 22621.2338, ReFS is re-introduced via aDev Drive feature; allowing fixed storage drives and VHDs to be formatted as ReFS, with special file andMicrosoft Defender policies added during use.
Thecluster size of a ReFS volume is either 4 KB or 64 KB.[23]
At the Storage Developer Conference 2015, a Microsoft developer presented enhancements of ReFS expected to be released withWindows Server 2016 and included in Technical Preview 4, titled "ReFS v2".[24] It highlighted that ReFS now included capabilities for very high speed moving, reordering, and cloning of blocks between files[25] (which can be done for all blocks of a file). This is particularly needed forvirtualization, and is stated to allow fast provisioning, diff merging, and tiering. Other enhancements cover the redo log (for synchronous disk writes),parallelization, efficient tracking of uninitialized sparse data and files, and efficient 4kI/O.[24]
Windows Server 2022 (using ReFS version 3.7) supports file-level snapshots.[3]
Windows Insider Preview 22H2 and 23H2 (builds 226** and 25***) support ReFS volume compression usingLZ4 andzstd algorithms.[26]
This sectionmay beconfusing or unclear to readers. Please helpclarify the section. There might be a discussion about this onthe talk page.(July 2017) (Learn how and when to remove this message) |
ReFS has some different versions, with various degrees of compatibility between operating system versions. Aside from development versions of the filesystem, usually, later operating system versions can mount filesystems created with earlier OS versions (backwards compatibility). 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 commandfsutil fsinfo refsinfo volumename.
This section needs to beupdated. Please help update this article to reflect recent events or newly available information.(February 2019) |
Issues identified or suggested for ReFS, when running on Storage Spaces, include:
Like ReFS,ZFS,Bcachefs, andBtrfs are designed to integrate data protection, snapshots, and background error correction.
In 2012,Phoronix wrote an analysis[31] of ReFS vs Btrfs. At the time, their features were similar, with both supporting checksums,RAID-like use of multiple disks, and error correction. However, ReFS lackedcopy-on-write snapshots and compression, both found in Btrfs and ZFS.
In 2014, BetaNews wrote a review of ReFS and assessed its readiness for production use.[32] The review concluded that ReFS had at least some advantages over twofile systems then available for file servers runningUnix-like operating systems, ZFS andReiserFS.
ZFS (used inSolaris,illumos,FreeBSD and others) was widely criticized for its comparatively extreme memory requirements of many gigabytes ofRAM for online deduplication. However, online deduplication was not enabled by default in ZFS and was not supported at the time by ReFS (it has since been added), so not enabling ZFS online deduplication yielded a more even comparison between the two file systems as ZFS then has a memory requirement of only a few hundred megabytes.[33]
As of November 2019[update], Microsoft has not published any specifications for ReFS. An open source read-only FUSE driver is under active development[34] and a third-party open-source project to document ReFS is on GitHub.[35][36]
Paragon Software Group provides a closed-source driver for Windows and Linux.
Some other Open Specifications mention ReFS specifics and allow for some information about the platform specific behaviour to be drawn from:
Creation ability will be available in the following editions only: Windows 10 Enterprise and Windows 10 Pro for Workstations. Creation ability will be removed from all other editions. All other editions will have Read and Write ability.