ReFS and Mirrored Storage Spaces with Windows 10 Pro

Using ReFS in Windows 10.

ReFS is Microsoft’s next-gen file-system. It offers some (and only some) of the features of advanced file-systems like ZFS and BTRFS. Most notably it is missing the snapshot capabilities of these file-systems. This does not mean you should knock ReFS, after all you can't really use the others with Windows and ReFS does have corruption prevention features when used in conjunction with a mirrored Storage-Space.

Storage-Spaces are created on a set of disks within a Storage-Pool. This provides volume management and some better-than-RAID like features.

When using ReFS you are limited to simple, two-way and three-way mirrored storage spaces – a simple storage space is a bit like RAID 0 (no protection) a two-way mirror is just that, and a three-way mirror required five drives but tolerates two drives failing at the same time.

Microsoft’s own blurb states:

Mirror spaces are designed for increased performance and increased resiliency. Two-way mirror spaces can tolerate one disk failure and three-way mirror spaces can tolerate two disk failures. They are well suited to storing a broad range of data, from a general-purpose file share to a VHD library. When a mirror space is formatted with the Resilient File System (ReFS), Windows offers automatic data integrity maintenance. This is a layer of resiliency is above and beyond the resiliency achieved from maintaining multiple data copies to tolerate drive failure.

You can of course choose to use NTFS instead of ReFS, but remember that unlike ReFS, an NTFS Storage Space will is unable to prevent bit-rot even when used with RAID5 style parity. The advantage of using Storage Spaces over RAID itself is that drives of different types and sizes can be used together and extra drives can be added or removed from the pool without needing to rebuild an array. Storage Pools/Spaces combined with ReFS is therefore a great option for a professional or home enthusiast who has to run Windows for one reason or another and has lots of data to protect e.g. picture or music files (At this point I will still state that you need to backup all important data to an external drive or off-site backup store!)

In this example I will show the basics of how to create a Storage-Pool of two drives and create an ReFS formatted Storage-Pool that offers Mirroring and auto-healing to prevent bit-rot of your data. I will be using a VM hosted in VMware Workstation 12 running on GNU/Linux Mint 17.3; the windows disk volumes are just VMDK files stored on an Ext4 formatted drive. That being the case I am not going to discuss ReFS performance vs a similar NTFS Storage Pool or RAID1 array in this post but someone else has done that here on Windows 8.1 here: http://betanews.com/2014/01/15/windows-storage-spaces-and-refs-is-it-time-to-ditch-raid-for-good/

To create your Storage Pool and Space you first need to access the Storage Spaces Manager utility which can be found in the Control Panel (or just hit the windows key and type “storage space” and select the manage storage space icon). This bring up the following screen:

Selecting 'Create a new pool and Storage Space' will start a wizard that will walk you through the process:

Remember to select ReFS in the File System drop down. If you make changes to the Resiliency Type it will default back to NTFS. Also note that you will be presented with other resiliency options for NTFS like Parity sets. In theory you could use this with ReFS (you can in Windows Server) but you would lose the automatic repair option.

Also note that the size of your pool is not limited to the maximum size supported by your drives. If you have only 2 x 500GB drives you can still create a pool of 2TB (or more!) despite only having 500GiB usable space. It just means you will need to add more drives to the pool later in order to stop it filling up. This and bit-rot protection are the two killer features of Storage Spaces and ReFS over a traditional RAID1 array formatted with NTFS.

Once you have completed the steps in the wizard your new volume will be mounted ready for use. If you try and run CHKDSK against it you will be told that it's not needed.

Note: there are a few file types that do not get protected against bit-rot under ReFS; two of the most common ones are Hyper-V VHDX files for guest VM's and SQL Server data-files. I believe this is due to the performance overhead of generating, storing and validating the checksums used to protect files – the files automatically disable the protection setting on creation.

Enjoy!

P.S. One of the most common questions with ReFS and storage spaces is “Can I use it for my boot-drive?” the answer is unfortunately "No." you still need an NTFS volume for that.