Windows 8's new Storage Spaces functionality will easily allow users and system administrators to pool different physical drives together into one logical drive, writes Rajeev Nagar on the Building Windows 8 blog. This functionality, which is similar in some ways to the now-discontinued Windows Home Server Drive Extender, will allow drives of any capacity connected to a PC by USB, SATA, or SAS interfaces to be seen by the OS as one large drive.

Once you've created a storage pool using two or more drives, you can then set up one or more "spaces" that will be seen by the operating system as a logical drive which can be formatted, partitioned, and used just as a physical disk would be. To provide redundancy, you can either apply the "mirrored" attribute to your pool, which makes sure that a copy of every file in the pool is stored on at least two different physical drives, or the "parity" attribute, which uses some drive space to store redundancy information - in the event of drive failure, this information is used to rebuild your pool and enforce mirroring. Microsoft notes that while the two redundancy options are similar, the "parity" attribute is best used for large sequential files or less-frequently-accessed content, since it has a higher random I/O overhead. 


When creating a new Storage Space, you can specify a maximum size larger than the amount of available physical space - the system will prompt you when the storage pool needs more drives to work with. Microsoft calls this "thin provisioning," which means that drive capacity is only reserved as you store data to the drive rather than all at once. You can also expand the maximum size of the Storage Space at a later point if necessary. Creation of these spaces can be scripted using PowerShell.

For an in-depth look at how this technology works (and a FAQ which answers, among other questions, some inquiries about its similarities to and advantages over RAID), check out the full post using the link below.

Source: Building Windows 8 Blog



View All Comments

  • evilnewbie01 - Saturday, January 07, 2012 - link

    I don't understand this technology very well... If I had 5 x 3TB drives full of movies and I do a logical link and call the volume 20TB (even though i only have 15TB)... I can take out one hard drive that is failing and put in another blank hard drive without data loss? I don't get it... what happened to the data on the 3TB hard drive... it couldn't fit on the other hard drives since they are all full... can someone explain it to me? Thanks... Reply
  • Solandri - Sunday, January 08, 2012 - link

    From my brief read of it, it's just a SAN with redundancy. ZFS already does that, and can also handle logical volumes instead of just physical drives (e.g. you can allocate space on one drive to multiple redundant volumes).

    For your example, your 5x3TB drives hold 15 TB of data. You could create a logical volume of 20 TB and assign them to it. But if you tried to add more data to it (or tried to add redundancy), the OS would tell you you need to add more physical storage. The point of being able to assign more space than you physically have is to (1) account for compressed filesystems, (2) share empty space, and (2) for future expansion.

    (1) You can't predict ahead of time how much space compression will save. If I have a 3 TB drive, I can't say ahead of time exactly how much data it'll hold. Maybe it'll only hold 3 TB of movies, or maybe I'll manage to squeeze in 6 TB of sparse data. Telling the OS that it's a 5 TB volume is really just a way to tell the OS to set it up to store a maximum of 5 TB of data.

    (2) When multiple volumes reside on the same physical drive, directly assigning empty space to a specific volume is wasteful. e.g. Take the example of a 500GB drive with an OS partition and a data partition. When you first bought the computer, you thought you'd never use more than 100 GB for the OS and programs, so you assigned 100 GB as an OS partition and 400 GB as a data partition.

    A year later, your OS partition only has 5 GB free, while the data partition still has 200 GB free. You guessed wrong and you're cramped for space on one volume, while you have lots of free space on the other volume, even though they're on the same physical disk. To fix it you have to dynamically resize the volumes, which takes a long time and carries with it the risk of data loss. And if after you repartition the situation should reverse, you have to repartition again.

    Instead, what you can do is divide the 500GB physical drive into two 500GB volumes. So the OS volume can take up to 500GB, and the data volume can take up to 500GB. The only constraint being that the OS + data cannot exceed 500GB. The two volumes are effectively sharing empty space, so you're free to let either of them grow or shrink to anything from 0GB to 500GB without having to repartition.

    The beautiful part comes with (3): What happens if your OS + data exceed 500 GB? Under the traditional system, you buy a new hard drive, and now you're stuck with three volumes and have to divide your data around between it to make it all fit. With a dynamic virtual volume system, you add the second 500GB hard drive, and that's it. The filesystem says, "oh, I see there's extra space" and expands the OS and data volumes to use the extra space. From the OS's point of view, nothing has changed. There are still two volumes, a 500GB OS volume and a 500GB data volume. Except now your maximum limit is 1TB.
  • evilnewbie01 - Sunday, January 08, 2012 - link

    Thanks but I am still confused on how you can remove the hard drive without data loss.... for example, in your example of the 500 GB hard drive that is a 1TB logical drive... if the 500GB drive fails and you stick in another 500GB to replace it... why is there no data loss? Reply
  • marc1000 - Sunday, January 08, 2012 - link

    It takes a part of the disk to keep copies. It doesn't work with 1 disk, but only with 2 or more. Example: If you have 15tb total, you will be able to save 7.5tb. To save more, you will need to add disks. (not real numbers) Reply
  • Solandri - Sunday, January 08, 2012 - link

    Redundancy with two drives requires mirroring - you have two copies of the data, so it takes 2x as much space. So if one drive fails, you still have the other copy.

    Redundancy with more than two drives requires a progressively smaller amount of parity data. With 3 drives, the parity data is 50%, so you need 1.5x as much drive space as you have data. Once you have parity data, any one of the three drives can fail and you can reconstruct it using the surviving data and parity information.

    With 4 drives, the parity data is 33%. With 5 drives, the parity data is 20%. etc. In all cases you need more storage space than the a single copy of the data would take. But with parity you don't have to predict which drive will fail. The parity information protects you from failure of any single drive. (Different parity schemes can protect you from two drive failures, at a corresponding increase in amount of parity data.)

    You can never have a situation where after a drive failure, the amount of remaining space is less than the amount of data.
  • iwod - Monday, January 09, 2012 - link

    I wish someone could make a comparison to what's the different between this and Drobo / ZFS Reply
  • eachus - Monday, January 09, 2012 - link

    You can't install the operating system on "Storage Spaces" which basically makes it a nice to have, but not really useful. You still have to go through all the Windows hassle to create a hardware RAID that you can install the OS to, and then you are limited by the physical size of the RAID disks with respect to your C: partition.

    I've been waiting for decades for Windows to support separate volumes for TEMP:, Users, paging, and Program Files. The only thing that has happened is that we now have two Program Files directories that can't be moved off the boot volume. (Yes, you can move individual directories for large programs to other volumes, but you can't have a link that makes it not a bother.

    In fact, since Windows will chomp a 100 MBytes (which isn't that much) off your boot device if Windows is elsewhere, it would be really, really nice to assume four (or more) main directories, and have redirects in that partition, or the main boot partition. if they are located elsewhere. How much work is that? The problem is that it has to be done early in the boot process so there is no easy way to hack it.

    Well, actually there is. Install VMware or Linux as a host, and make Windows a guest. Now you can use ZFS or LVM for everything. ;-)
  • Visual - Monday, January 09, 2012 - link

    It is still a disk-based and not file-based approach, so it is not quite like WHS Drive Extender. Seems more like just an "unRAID" implementation for windows. Not bad.

    The drives are still usable individually as well, right? But to what extend, I wonder...
    How will it behave if you disconnect a drive and modify it on a different computer before reconnecting... will you have the option to specify that you want to preserve the changes, or will it just force a "repair" and wipe them out?

Log in

Don't have an account? Sign up now