Early users have been running into trouble with Windows 8 Storage Spaces. The same technology is used in Server 2012. I posted about the issues here.
Storage Spaces is a way of virtualising disk drives. You manage physical drives in a pool of storage, and allocate virtual drives from that pool. The virtual drives can be bigger than the actual space available; this is called “thin provisioning”. When you are running out of physical space, you can add additional drives.
It sounds great and it probably is (I am reserving judgement to some extent depending on long-term reports from the field) but it can be confusing, especially if you use Parity for resilience. This user setup a Parity space with three drives, 1TB, 2TB and 320GB. Storage Spaces told him that 2TB would be available (less than the total capacity because it is resilient against drive failure). However the space was exhausted at less than 1TB. Worse still, at this point the drive vanished from his system.
This is all working as designed, though it seems to me that there is plenty of potential for confusion. Here is how I understand it.
1. A Parity space writes data over three or more drives. Therefore, if you only have three drives available, it will be unable to add more data once the smallest drive is full. One small and two large drives is a bad case for a Parity space. It is better either to have four or more drives, or else drives of equal size.
An alternative is to use a mirrored space. This works by duplicating data on two drives. In the example, that should yield 1TB + 320GB of space by mirroring the data on the 2TB drive – more than was available with Parity. With a larger number of drives though, or equally sized drives, Parity is more efficient.
2. When the storage space is full, Windows takes it offline. This is to protect your data. Once you have fixed the problem by adding more drives, you can bring the space online again.
What if you have no drives handy and you NEED access to your data? You try bringing the space online, but Windows immediately takes it back offline because the error condition still exists (and Windows or its applications can be chatty about writing data).
The solution is to mark the space as read-only which you do with PowerShell. Then you can bring it back online and access your files.
Why so confusing?
Storage spaces comes from the server team and is also available in Windows 8. It is possible that the management interface is less helpful than it could be because of that, on the grounds that IT admins are more willing to plough through documentation.
For example, it would be helpful if the spaces manager would calculate the actual capacity available with the currently attached drives and the selected resilience, and tell you that, rather than giving a nominal figure which means “this is the space which these drives can provide though you might have to add more drives to make use of it all”.
Next, there is the question of alerts. The Windows Action Center should alert you if the space is nearly full. However the value of the notification area in Windows was reduced when the Windows 7 team decided to hide most notifications by default, thanks to abuse of the system by third-party software.
Incidentally I always set the notification area to Always show all icons and notifications. If I don’t like a third-party notification, I remove the application or prevent it from running automatically. Right-click the notification area and choose Customize notification icons to make this change.
Returning to storage spaces, I have seen several users say they did not see alerts which suggests they are not tuned quite correctly; or maybe users are just in the habit of ignoring notifications.
Third, why doesn’t Windows mark full spaces as read-only when full, instead of taking them offline? Vanishing drives are unsettling for users. Make them read-only would be easier to understand. My space is full – I cannot add more data.
Detailed MSDN article about Storage Spaces
Post by Darren Moss with PowerShell examples for taking a space read-only or offline/online. Darren Moss is a Senior Program Manager at Microsoft.