Resilient File System (ReFS)
What is a Resilient File System (ReFS)?
A Resilient File System (ReFS) is a file system that Microsoft developed for use on a Windows operating system (OS) and is designed to overcome some of the limitations in the New Technology File System (NTFS). Microsoft developed the ReFS to improve its file system, specifically in data corruption resiliency and capacity.
What is a file system?
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 and make it easier to find files.
The ReFS maintains a high level of compatibility with the 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, the ReFS can restore that data without affecting availability. The 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 does the ReFS work?
Microsoft used some of the NTFS codebases to produce the ReFS and added support for Win32 APIs to provide compatibility with existing APIs. This gave ReFS support for several features, such as access control lists and file IDs.
The NTFS has 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. The ReFS uses write allocate, 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.
An 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 input/output (I/O) and provides better performance.
An ReFS has several key features that make it a reliable and efficient file system. One of these features is its ability to maintain data integrity by protecting it from common errors that can cause data loss.
Another feature is its focus on data availability, ensuring that data remains accessible even in the event of corruption. Additionally, the ReFS is highly scalable and can handle large data sets now and in the future.
ReFS history and development
Microsoft introduced the ReFS in September 2012 when it released Windows Server 2012 as an optional file system to account for more extensive data storage requirements and larger workloads. Microsoft added the ReFS to desktop versions of Windows, starting with Windows 8.1, in October 2013.
The ReFS is not a direct replacement for the NTFS and 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 the NTFS. Early versions of the ReFS also lacked many features from the NTFS, such as alternative streams, named streams and sparse files, which Microsoft added to the ReFS in later updates.
Microsoft removed the ability to create ReFS volumes in Windows 10 in its 2017 Fall Creators Update, except in Windows 10 Pro for Workstations. But the operating system can still read ReFS volumes. It is also worth noting that ReFS support is not yet available in nondevelopment versions of Windows 11.
Advantages of using ReFS
Benefits of using the ReFS include the following:
- Automatic integrity-checking and data-scrubbing. The ReFS can detect and correct data corruption without requiring offline tools such as CHDSK. It also periodically scans the volume for latent errors and repairs them using redundant copies of data provided by Storage Spaces or mirror-accelerated parity.
- Scalability and performance. The ReFS can easily handle large volumes (up to 1 yottabyte) and files (up to 16 exabytes). It also uses a B+ tree structure that reduces the number of I/O operations needed to access data. The ReFS also supports block cloning, which allows for the copying of large amounts of data with minimal I/O overhead, improving virtualization and backup workload performance.
- Storage virtualization and pooling. The ReFS integrates with Storage Spaces, a feature that allows for the creation of flexible storage pools from multiple physical disks. Storage Spaces can provide different levels of resiliency, such as mirroring or parity, as well as tiering, which optimizes storage performance and capacity by moving hot and cold data between different types of drives, such as solid-state drives and hard disk drives.
Disadvantages of using ReFS
Some downsides of the ReFS include the following:
- Windows cannot boot from the ReFS and requires the NTFS for the system drive.
- The ReFS consumes more system resources than the NTFS, especially for large disk arrays.
- The ReFS does not support some features the NTFS does, such as file compression, encryption, hard links, transactions and object IDs.
- The ReFS cannot convert data from the NTFS without formatting the drive.
As such, the ReFS may not be suitable for some scenarios where performance, compatibility or functionality are important.
What is an Ext4 file system?
The fourth extended file system (Ext4) is a journaling file system for Linux, developed as the successor to the Ext3. It is essentially the default file system for many popular Linux distributions, including Debian and Ubuntu. The main advantage of the Ext4, compared with that of Ext3, is its performance. The Ext4 offers improvements, such as faster file access times, support for larger volumes and files, and improved reliability and stability.
Is the NTFS better than the Ext4?
The choice between the NTFS and the Ext4 depends on the use case and system involved. For Linux systems, the Ext4 is generally considered a better option because it was developed for Linux and handles Unix file permissions more effectively. Additionally, Linux systems can natively understand the Ext4, while the NTFS requires a plugin.
An Ext4 drive is theoretically faster than an NTFS drive; in addition, the Ext4 reduces the time required to check the file system compared with that by the NTFS.
However, the NTFS may be a better choice than the Ext4 depending on how it is used. For example, if a Windows system drive or an internal/external hard drive with Windows is used, the NTFS may be more suitable.