What is ReFS?
ReFS (Resilient File System) is relatively new Microsoft filesystem (introduced about a year ago) designed to be used in modern Windows operating systems. As of now, ReFS is available in Windows Server 2012, Windows Server 2012 R2, and in Windows 8.1.
ReFS has replaced NTFS and initially was designed as a filesystem to work with a large amount of data. Interestingly, the key point is to protect against data loss rather than speed up of processing data. On an NTFS volume in case of failure, in-place repair is widely used (remember CHKDSK?). In ReFS, which is intended for a large amount of data, in-place repair is impractical, so CHKDSK just is not applied and no analog is offered.
Unlike NTFS, ReFS was initially designed not as a standalone filesystem but as a component of a unified data storage system which also includes Storage Spaces, a Microsoft new innovation. ReFS achieves maximum benefits when it is used in conjunction with Storage Spaces.
Let’s see what features you get with ReFS.
Copy on write
While NTFS uses journaling to detect problems with transactions in case of failure, ReFS uses a completely new approach – copy on write. When the ReFS driver receives a request to update some metadata, it allocates new blocks for update data instead of overwriting pre-existing metadata. Thus, there is a moment when two copies of metadata coexist on the disk – new (update) and old (pre-existing). It is only after the system ensures the transaction is successful that the new metadata copy takes over, and the old copy is discarded.
ReFS is the first Microsoft filesystem where all metadata is check-summed on a mandatory basis (called integrity check). This allows ReFS to detect errors in metadata in a timely fashion. Errors that can be detected this way include both errors during write operations, for example during metadata update power failure occurs, and errors associated with degradation of a device (so called bit rot). Every time the ReFS driver reads the requested data, it also verifies the corresponding metadata checksums. If the actual checksum differs from the checksum stored for this data, the ReFS driver realizes that there is a problem with this part of data. What the driver will do next directly depends on a particular setup you use. If ReFS is used on a redundant space of Storage Spaces, data is repaired automatically by identifying the correct data copy and fixing the bad copy. If you use ReFS separately from Storage Spaces (or on a non-redundant space of Storage Spaces), error autocorrection is impossible. In this case, all the ReFS driver can do is to identify the problem part of the filesystem and disable it, still providing a user access to the rest data.
Additionally, when using ReFS along with Storage Spaces on mirrored spaces, you have a possibility to enable user data check-summing (integrity streams) that allows to detect and correct errors in user data as well. Here it is, resiliency in its purest form!
To detect and correct latent errors for example associated with a degradation of disk surface, Microsoft added a special system task which from time to time checks all metadata and user data (if enabled) for consistency. This allows to detect errors in rarely used data.
Note that it only works when ReFS is used together with Storage Spaces.
Never take the filesystem offline
ReFS was designed in such a way to be able to detect metadata error timely and correct it, if possible. If the ReFS driver cannot open or delete a particular file or folder and this error cannot be fixed, a file in question is withdrawn from the filesystem not affecting the rest data. That is, from the user point of view, the system works as before, the only difference is that now you do not have access to the corrupted file. Note that when other filesystems face such a crash, the entire system drops offline and full-scale recovery is required.
As you can see, ReFS utilizes a completely new approach to storing and organizing data. However, you should not forget that ReFS does not arise out of the blue although not being a direct descendent of NTFS but developed based on the experience of all previous Microsoft filesystems.
In addition to all new features, ReFS inherits all the best from NTFS including data encryption with BitLocker, volume snapshot thanks to which you can restore “overwritten files” and others.
Therefore, considering all the available features, ReFS is the filesystem of next generation.