Microsoft releases details of Resilient File System which is being introduced in Windows 8 which promises all sorts of improvements but its most important is the introduction of storage spaces - just add more disks for more storage. Could this be the end of RAID?
The first thing to note about Windows 8 Resilient File System (ReFS) is that it will initially appear only for Windows 8 Server, and initially only for storage rather than on bootable disks. It will then be rolled out for Windows 8 Client for storage, and only ‘eventually’ in bootable versions.
The second point to note about ReFS is that this is definitely not anything to do with WinFS, the much touted file system that would have incorporated relational storage into the filing system and that was promised for Vista. It looks like the only bits of WinFS that you’ll ever use in production are those that have made it into SQL Server ‘Denali’, aka SQL Server 2012.
What is in ReFS is better handling of large disk volumes, corruption resilience, and shared storage pools across machines.
According to a blog post from the Windows engineering team, the key goals of ReFS are:
‘a high degree’ of compatibility with NTFS
the ability to verify and autocorrect data
scalable structures for everything
keeping the file system online even when problems occur
providing resilience when used with Storage Spaces.
Storage Spaces, which was co-designed and built in conjunction with ReFS, lets you organize physical disks into storage pools that can be expanded simply by adding disks. You can create a storage pool from different sized physical disks that are connected using different interfaces. Storage Spaces also supports the creation and use of virtual disks in pools called reasonably enough "spaces" that behave like physical disks and that give resilience so long as you have more than one physical drive available.
From the point of view of code it is claimed that minimum changes, if any, should be needed to make use of the new system. The code that provides the file system API has been reused in ReFS. Of course there are going to be some missing features from NTFS and some new features.
Underneath the reused API oriented code there is a new disk storage engine which is really the new part of the system and responsible for implementing the improved features. The underlying implementation make use of B+ trees to implement the directories, metadata and so on. This should allow the system to scale to much larger volume and file sizes without slowing down - a problem with NTFS. You can read more of the technical details on the blog.
Despite the NTFS compatibility aims, there are some NTFS features that will be dropped. The main ones mentioned by the Windows team are: named streams, object IDs, short names, compression, file level encryption (EFS), user data transactions, sparse, hard-links, extended attributes, and quotas. NTFS features that have made it into ReFS include BitLocker encryption, access-control lists for security, USN journal, change notifications, symbolic links, junction points, mount points, reparse points, volume snapshots, file IDs, and oplocks.
There’s a long list of key features of ReFS in the blog entry, falling into three main groups along with the support for large disks and resilience:
the ability to detect disk corruption using a variety of methods
better performance through support for data striping
an allocate-on-write feature, which was previously been used (as copy on write) in SQL Server and Volume Shadow Copy Service
Perhaps this marks the end of hardware RAID systems as the new storage space approach sounds a lot more like a SAN or a storage appliance approach to organizing hard disks. Just add another disk and you get more storage and a redundant error protected system.