Migrating Storage Spaces

A while back I posted this shaky-cam YouTube video demonstrating the Storage Spaces feature of Windows 8.  It’s essentially a software-level RAID that allows you to group a bunch of physical disks together and then thin provision logical volumes with different levels of resiliency.  Very cool tech.

When I originally set this up I was using three aging HDDs from different vendors and of different sizes (400 GB, 250 GB and 250 GB respectively) that were brought over from my previous system.  Storage Spaces enabled me to consolidate them into simpler logical volumes and I ended up with two spaces: a Media Space with two-way redundancy (equivalent to RAID1) and a Programs Space with no resiliency (equivalent to RAID0 for better read/write performance).  Both were NTFS formatted as I had made them under Windows 8.0.

I now have four higher performance 4 TB disks that will take their places in the tower.  My original plan for migrating over the existing Spaces was to add these new disks to the Storage Pool and then begin removing the older three disks one-by-one and allowing the data to be redistributed.  Storage Spaces does support this, but only if the disk contains data for Spaces with resilience.  My Programs Space, being non-resilient, prevents me from doing this.

(If I had intended on keeping the original three disks this would not be an issue, I would add the new drives into the existing Storage Pool and they would be utilized without any further action on my part.)

The backup plan is to build a new Storage Pool, recreate the two existing Spaces and then copy the contents over.  I still plan on keeping the Spaces just as they are (the performance for the Programs space should be much greater in a four disk pool), but the initial allocation to both spaces will be set to 1 TB each (Storage Spaces allows me to increase this value at any time).  I will also  be creating a File History Space this time around to enable Windows’ File History feature for local backups of my user files.

All four 4 TB disks are attached to the PC via a USB 3.0 enclosure.  Storage Spaces doesn’t care how a disk is connected to my PC.  The disks themselves contain all of the configuration information so no matter how I choose to attach them (USB, eSATA, internal SATA, etc.) Windows will correctly recognize what Storage Pool a disk belongs to.

With all that said, my step-by-step plan is:

  1. Create the new Storage Pool with the matching Storage Spaces
  2. Copy all content of the old Spaces to the new Spaces
  3. Reassign the corresponding drive letters of the original Storage Spaces to the new ones (i.e. drives D: and E:)
  4. Delete the original Storage Pool (optional: I could leave it and Windows would alert me the disks are missing once I remove them, but if I had to reattach them the Pool’s data would all be intact – CORRECTION: Removing all of the disks associate to a Pool removes the Pool from Windows. If at any time any one of the disks are reattached the Pool will appear with an error message about missing disks, but attaching all of the disks for a pool will restore it just as it was before)
  5. Power off the PC, remove the old physical disks and install the four new disks

 

Original Storage Space Setup:

(Both of the Media and File History spaces will be using the new ReFS format included in Windows 8.1.  Among many of the cool new things this file system sports, it is capable of self-healing and does not require maintenance via chkdsk.  Neither Simple or Parity storage space types support ReFS; only mirrors.)

Creating the New Storage Space:

The Two Storage Pools:

From here I’ll be doing some simple copy operations from the command line to copy everything over:

C:\> robocopy E:\ G:\ /E

I’ll probably set both copy operations to run overnight the day before I have some time to do the physical swaps.  I’ll leave an update here once that’s done just so you can know how it went.

Author: Bryson Tyrrell

AWS serverless developer from the Twin Cities. Former benevolent Casper Admin at Jamf, helped cofound Twin Cities Mac Admins @MspMacAdmns,, avid Python coder.

Leave a comment