Tag Archives: storage spaces

Understanding Windows 8 Storage Spaces: confusing but powerful

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.

image

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.

Further reading

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.

Can you trust Windows 8 Storage Spaces?

I have been watching a few Storage Spaces threads on Microsoft’s support forums with interest. Storage Spaces is a new way to manage disk storage in Windows 8 and Server 2012. It lets you create a pool from two or more drives, create virtual drives on them with an option for RAID-like resilience, and add or remove physical drives as needed when drives fail or more storage is needed.

image

A great feature, and particularly since it comes from the server team you would expect it to be solid. Nobody can afford to use storage that is unreliable.

Look at this thread though, based on Windows 8 Enterprise Evaluation which should be the RTM code:

I had three empty discs which I used for it: 320 GB, 1 TB, 2 TB. The manager told me that the maximum capacity for this setup would be ~2 TB.

I then proceeded to fill the space up, resulting in a horrible write speed of ~20 MB/sec. Okay, that can be accepted, it is a software solution, after all.

Here’s the kicker, though: Upon reaching ~0.9 TB, the storage space vanished! Yes, vanished.

After invoking the Storage Space Manager, I discovered that the space was deemed “full” and that I was to add another disc. I also took a look at the volumes itself. Hmmh. The 320 GB disc was 100% filled, the 1 TB was at 32% and the 2 TB at 16%. And what are 32% of 1 TB and 16% of 2 TB? Why, 320 GB!

So, instead of creating a Parity storage space, it simply downsized every hard disc to the lowest denominator, i.e. 320 GB.

Which means that there are two massive problems here:

  1. It’s lying about the remaining capacity (which is confusing in itself: The manager talks about the storage space having a 2 TB capacity, but directly above it talks about a 3.01 pool capacity?)
  2. It also gives no warning when the real capacity is reached and the pool is deemed “full”. It simply takes the pool offline (instead of, say, reverting to a “read-only” mode with a warning) and you have to bring it online manually. Not fun.

and later, from another user:

Today while I copied data over to it, it once again reached “full” status and turned itself “offline” – but this time it won’t come back “online” – it changes right back to “offline” as soon as I try to bring it online…  So essentially I cannot access any of the data on the drive anymore.

or this (which likely refers to the RP) – the article to which it comments is worth a read too.

I’ve run into a major problem with storage spaces. My storage space is full. Having a full storage space puts it into an error state, and it goes offline. You can click “Bring online” but it immediately goes offline again.

So, I can’t free space on it, because I can’t get it online to delete stuff. And, more importantly, I can’t get anything off of it because it won’t stay online.

It seems my only option is to add three drives, as I had it set to parity. The only problem? I don’t have three more drives to add.

Even bugs in in the RP worry me. Storage is so fundamental that I would expect a feature like this to be 100% solid early in the release cycle, or pulled.

Update: It now seems to me that Storage Spaces is working as designed (phew!) though it is understandable that users are confused. See the new post here.