Windows

Windows 8 Storage Spaces: How it works on the client side

Derek Schauland looks at the new feature called Storage Spaces in Windows 8 and shows you some of the options for setup and management.

In my last post I looked at how Windows Server 8 manages storage and the concept of Storage Spaces, which is a method of managing storage using a virtualized layer between what Windows sees (logical volumes) and the physical hardware, which allows Windows to create pools of disks across many physical disks connected to a server. Using Storage Spaces will turn a JBOD into more reliable, cheaper, arrays of storage and possibly bring the cost of storage down significantly.

I decided to poke around in the client and see if the Storage Spaces concept was in there - how it differed or was the same. What I found was a more consumer-friendly way to create a storage space (not that it isn't intuitive in Server) and a bit nicer front end. This post looks at Storage Spaces from the client side of Windows 8.

Storage what?

This is a new concept for a client OS in many ways. Sure you could attach iSCSI drives to prior versions of Windows and present volumes that lived on many disks, but it was never really something, in my opinion, that would fall on the user to do. Storage Spaces changes that drastically.

Suppose I have two USB Hard Disks, one of them 300 GB and one of them 500 GB in size. In Windows 7 and earlier, I would have just that; two drives connected to my system each with a fixed size. If I have Windows 8 on my system, I can create a Storage Space on my computer and use both of those disks as a single pool of storage.

On the pool, I can create volumes (or what Windows will see as drives) having different sizes. The best part is that these drives can be pretty much any size I want them to be using thin provisioning, and when I get more disks to add to the pool, the storage can grow seamlessly. For example, still using the same two drives from the previous example, I would have approximately 800GB of storage to use. What if I wanted to create a volume that was 2TB for movies or music? I can tell Windows that the volume is 2TB (or 10TB for that matter) and thinly provision it so the disk grows only as needed. This way I can start with the physical disks I have and grow them as needed, simply by adding larger disks to the pool.

Growth on demand

When Windows creates pools of disks, the disks have metadata related to the pool written to them so that they can be identified as part of the pool. This allows disks to be essentially remembered in case of a server failure. What else does this allow?

Because data is written across multiple disks within the pool, the disks can be swapped out for larger disks as needed and the data will be rebuilt as new disks are added. This way, the size of the volume and the size of the attached disks do not need to be directly related.

Note: As a rule, I would replace as few disks as possible at the same time; replace one disk at a time and allow data to rebuild before starting again. Also, keeping the disk bus type the same across a pool is a good idea. Mixing USB and SAS or SATA is possible, but results may not be desirable.

Let's get into Storage Spaces on the CTP client

To create a storage space on the Windows 8 CTP, open the Control Panel and navigate to System and Security | Storage Spaces.

Figure A

Managing Storage Spaces

From the Storage Spaces applet, select the Change Settings button and select Yes when prompted by UAC. This will allow you to perform the following actions:

  • Create a storage space
  • Rename a Pool
  • Delete a Pool
  • Add Drives

Clicking on Create A Storage Space will allow you to enter a name and select a drive letter. In the middle of the screen, you can select the resiliency type:

  • Two way mirror: creates two copies of content across disks; if one disk fails, you can add a new disk and data will be rebuilt from the other copy.
  • Three way mirror: this selection stores three copies of data allowing you to recover from two simultaneous drive failures.
  • Parity: requires at least three disks, will stripe data across disks using one third of the capacity as the parity section. This will provide the best resiliency, but will reduce capacity by one third.
  • None: this resiliency does not protect against loss and stores one copy of your data, but also only requires one disk.
Note: I noticed that the Storage Spaces screen closed when I selected a resiliency option that requires more drives than are available. I am not sure if this will continue as the CTP progresses toward the final product, but I would like to see an alert pop up to let the user know that this configuration is not supported with the number of attached disks.

Once you've made your choice, select the size of the storage space and click Create New Space.

To delete a storage pool, expand it so that all of its options are shown and select Delete Pool. This will prompt you for confirmation; click Delete Pool and you'll see the deletion in process as shown in Figure B.

Figure B

Deleting a storage pool

Be patient when deleting a storage space. I did see that the screens went unresponsive while performing the action but did notice that the deletion action did complete. This may have to do with the size of the space you are deleting.

Renaming a space allows you to change the name of an existing storage space, just as the name suggests.

Why is this feature useful?

I think Storage Spaces can be a huge new feature for two reasons:

  1. Data resiliency: your data can be spread across multiple drives, even on USB disks
  2. Volumes of any size: the storage spaces configured on a computer can be larger than the physical media size. Disks can be added as needs change, but no space reconfiguration is needed

Recently, I lost a USB drive on a system that stored a good amount of data. The disk got corrupted and required a raw data recovery. Had the Storage Spaces feature been available for that system, I might have had a much easier time recovering the data (or not losing any data in the first place).

This could be a fantastic feature for end users and consumers using Windows 8.

Changing computers

You might notice in Figure A that I already have some Storage Spaces disk pools created. This happened because I created a space and some disk pools on Windows Server 8, and when I connected the disks to the client and rebooted, the spaces just showed up. This is because of the metadata written to the disks when they were used on the server OS. Windows Storage Spaces was able to read that metadata and bring those pools and volumes online. That was the coolest part of the whole thing for me. Note: One of the volumes I created on Windows Server 8 used Microsoft's new Resilient File System (ReFS), which the Windows 8 client can see as being on the volume, but cannot use at this point. In addition, ReFS currently only supports data volumes.

Storage Spaces is one of my favorite features in Windows 8 (both CTP and Server beta). I encourage you to download the CTP and check this feature out for yourself.

About

Derek Schauland has been tinkering with Windows systems since 1997. He has supported Windows NT 4, worked phone support for an ISP, and is currently the IT Manager for a manufacturing company in Wisconsin.

4 comments
Derek Schauland
Derek Schauland

Because we are still at CTP or "beta" for Windows 8, there is not much garauntee about anything just yet. Sure some things will stick around, but until later in the lifecycle who knows what features will remain. And for those that do make the cut, they may change by the time the finished code hits. If used correctly, spaces is definitely a feature I think needs to make the cut. Sure there will be some explanation needed and demo done, but overall it is a great idea.

andrewgauger
andrewgauger

I'm convinced most users will chose the none resiliency and will lose data on both disks when their storage fails. This will happen mostly because users purchase additional storage only when it is needed and don't consider disaster during their purchase. I feel this is going to lead to more lost data not less.

Joneszee
Joneszee

I've been using Win8 since September. I installed the OS on a separate partition which installed a dual boot option on startup. When the Customer Preview was released, I reformatted that Win8 partition and installed the Customer Preveiw. The computer is a Dell 1747 laptop with a touchscreen. Far the most part I use it from the 'Desktop' mode. I've made some modifications to allow me to go directly to the desktop mode after the sign-in screen, skipping the initial screen and a small single button application to shutdown/restart the computer from the desktop. So far I'm ok with the new OS and the changes Microsoft is making. There are some bugs but the system seems rather stable. What I'd like to do is use 'Storage Spaces' for the new features it provides. What I'm concerned about is if I do and begin using it for my perosonal data... will it be compatible with the RC release or the final version of Win8. Does anyone have any thoughts on this?... Until I'm sure, I'm not sure about using this feature with real data. Thanks for your thoughts

amj2010
amj2010

We often have wondered why Microsoft did system and data on 1 (one) disk on the first place, this asks for problems. If you put your data (when finished) on a separate disk or even partition, then when disaster strikes, you ONLY need to restore your SYSTEM disk/partition, this can be quick and easy, and saves a lot of money and TIME.... Microsoft let you put your data everywhere in your system disk, this is completely wrong... If want to educate and learn how to handle your PC or whatever device, show them the RIGHT way to do this, the PROFESSIONAL WAY. And this to separate System (Windows, Programs etc;) NOT DATA, you can TEMPORARELY unfinished business on your folders on C:\, but have a backup version of that on your DATA disk D:\ or E: \ or whatever....... Using now Windows 8 it has the same wrong approach again, why Microsoft, why? Tell us...