I'm banging my head against the wall trying to work something out with Windows Storage Spaces (WSS). Here's what I'm up against:
I have 2 250GB drives in RAID1 (OS Drive), 2 3TB drives and 12 1TB drives (also RAID1). I've configured a simple WSS that pools the 3TB and 1TB pairs into a single virtual disk of around 8.16TB. I set things up this way because I had a big stack of old 1TB drives and plan to slowly replace them with bigger drives as they fail - something I can't easily do with RAID5/6.
So, I've finally had one of the 1TBs fail, so that particular RAID1 unit is degraded, but the WSS is still healthy, as expected. Using Set-PhysicalDisk in Powershell, I've set the usage of the appropriate RAID1 pair to "Retired" in WSS and repaired the WSS virtual disk. However, it hasn't moved any data off this RAID pair, and prompts me to add another physical disk to the WSS virtual disk if I want to remove the degraded RAID unit - despite the fact that I have ~50% of the overall storage pool in free space.
Is this a limitation of WSS that I was naively unaware of? It seems really simple and straight forward, like a defrag, and if it's capable of moving the "retired" data to a new drive, why wouldn't it be capable of moving it to an existing drive with more than enough free space? Particularly since the WSS GUI proudly states that a storage space can be provisioned to a larger size than the available storage.
I'm really hoping there's a nice easy way to do this. I don't have enough external storage to move everything off the virtual disk and rebuild it from scratch - my contingency is running a Powershell script to enumerate every file on the virtual disk and move each one to the OS drive and back, one-by-one - the theory being that it won't write "new" data to the retired disk, and it will eventually be empty, and removable.