New File System ReFS in Windows 8: Quick Facts
The introduction of a new file system is a big step even for Microsoft. According to this article in the Building Windows 8 blog ReFS will ship with the server version of Windows 8 only, but will be brought to the client at a later time, too. ReFS was built for resiliency and complements Storage Spaces. This post summarizes the main facts from the announcement.
- Allocate on write for metadata: new metadata is written to a different location. If the write fails, the existing metadata is still intact.
- Checksums protect all metadata.
- Integrity streams are optional checksums for file content. May be disabled for databases, for example.
- Scrubbing: On ReFS volumes residing on a mirrored Storage Space a system task periodically scrubs all metadata and Integrity Streams. Scrubbing involves reading all the redundant copies and validating their correctness using the ReFS checksums. If checksums mismatch, bad copies are fixed using good ones.
- Salvage is a feature that keeps the volume online and intact even if corrupt data is detected. In that case, only the corrupt data is removed from the namespace while the rest of the volume remains unaffected.
What Still Works
ReFS works with the following well-known file system technologies:
- Access control lists
- USN journal
- Change notifications
- Symbolic links
- Mount points
- Reparse points
- Volume snapshots
- File IDs
What Does Not
ReFS does not support the following well-known file system technologies:
- Alternate Data Streams
- Object IDs
- Short names (8.3 names)
- EFS encryption
- Transactional NTFS, TxF (introduced with Vista)
- Sparse files
- Hard links
- Extended Attributes
Quite a long list. It will be interesting to watch if some of these will be supported at a later point in time or if they are being discontinued entirely.
Some More Notes
- ReFS stands for Resilient File System.
- Clustering is supported.
- Many filter drivers work without modification.
- Two new file attributes FILE_ATTRIBUTE_INTEGRITY_STREAM and FILE_ATTRIBUTE_NO_SCRUB_DATA control the creation of integrity streams and scrubbing.
- A new command line tool, integrity.exe, manages the integrity and scrubbing policies.
- The format command gets the new option /i which sets the attribute FILE_ATTRIBUTE_INTEGRITY_STREAM on the root of a volume: format /fs:refs /i:enable <volume>.