This module covers the new ISO and VHD mounting support in Windows 8, as well as Storage Spaces. Storage Spaces allows you to take a variety of disks of different sizes and connection types and combine them into a single resilient and easy to manage storage pool for your data.
Windows 8 adds native support for mounting ISOs and VHDs as virtual drives in File Explorer.
An ISO is an exact digital copy of a CD or DVD stored as a single file with an ISO extension. ISO files are useful for distributing software over the Internet in a format that can be burned to a CD or DVD by the end user. MSDN and TechNet subscribers typically download the software that is available as part of their subscription as ISO files.
Figure 1: Mount ISO image
Figure 2: Microsoft Virtual DVD-ROM properties
Note: Windows 7 included native support for burning ISO files to CD or DVD.
A VHD is a Virtual Hard Drive file used by Microsoft virtualization products such as Windows Virtual PC and Hyper-V®. Windows 7 had the ability to boot physical computers from a VHD stored on a hard disk. Windows 7 System Image Backup also used VHDs as its storage container for disk backups. It could also mount VHD files directly, but this functionality was only exposed through tools like Disk Management and Diskpart.exe.
Figure 3: Create or attach VHDs
You can find more information about mounting ISO and VHD files on the Building Windows 8 blog at the link below:
Accessing data in ISO and VHD fileshttp://blogs.msdn.com/b/b8/archive/2011/08/30/accessing-data-in-iso-and-vhd-files.aspx
Storage Spaces is a new feature for Windows® 8 that allows a user to combine several disks into a single pool of storage that provides for easier management of multiple disks and resiliency against hardware failure on any of those disks. The disks that you use for Storage Spaces can be a mix of different-sized disks, and these can be connected to Microsoft® Windows using both internal and external connections, making it easy to turn the collection of drives you already have into a safe and easy-to-manage place to store things like your home videos or photos.
Storage Spaces allow the following:
The image below shows a sample Storage Pool. Here, we've taken a pair of 2TB USB disks and "pooled them" (logically speaking). From this storage pool, we are free to create one or more spaces.
Figure 4: Sample storage pool
Once physical disks have been added to a pool, they are no longer directly usable by the rest of Windows—they have been virtualized, meaning that they are now dedicated to the pool in their entirety. Though we call this "virtualized," the storage and reliability provided is very real.
The storage capacity in a pool can be used by creating "spaces" within the pool. In the images below, we have carved out one 10TB space called Documents from the "My Home Storage" pool.
Figure 5: Spaces within a storage pool
This virtual disk is usable just like a regular physical disk—you can partition it, format it, and start copying data to it. You may notice that the space has a couple of interesting properties:
The feature that allows us to create a 10TB mirrored space on 4TB of total raw capacity is called thin provisioning.
Important: Thin provisioning ensures that actual capacity is reserved for the space only when you decide to use it, for example, when you copy some files to the volume on the space.
Previously allocated physical capacity can be reclaimed whenever files are deleted. This reclaimed capacity is subsequently available for usage by either the same space, or by some other space that is carved out from the same pool. We achieve all of this through architected cooperation between the underlying file system (NTFS) and Storage Spaces.
With thin provisioning, you can augment physical capacity within the pool on an as-needed basis. As you copy more files and approach the limit of available physical capacity within the pool, Storage Spaces will display a notification telling you that you need to add more capacity, which you can do easily by purchasing additional disks and adding them to your existing pool.
Figure 6: Larger storage pool
As you see in the illustration above, we expanded the overall capacity of the "My Home Storage" pool by purchasing and adding four 3TB disks.
Once we have added this physical capacity, we don't need to do anything more to consume it. We can keep copying files or other data to the space within the pool and this space will automatically grow to use all available capacity within the containing pool, up to its maximum logical size of 10TB. You can also increase the maximum logical size of a space if needed.
You also don't need to tell Storage Spaces which of your disks should be used for each of the spaces you have created. Behind the scenes, Storage Spaces optimally manages the capacity of each of the physical disks within the storage pool, for all the spaces carved out from the pool.
Another core (but optional) capability associated with a space is resiliency to failure of the physical disks comprising the storage pool. For example, the space we discussed above is a mirrored space (in other words, it has the mirrored resiliency attribute associated with it). This mirrored setting ensures that we always store at least two (and optionally three) complete copies of data on different physical disks within the pool. This way, despite partial or complete disk failure, you are protected to a much greater degree against data loss.
The physical disks comprising the pool are typically not even visible to other components within Windows or to applications running on your computer. If a disk within the pool fails, that failure is completely shielded from other Windows components or applications. They continue to operate on the space, completely oblivious to the fact that Storage Spaces is working quietly in the background to maintain data availability.
If a disk fails, Storage Spaces automatically regenerates data copies for all affected spaces as long as sufficient alternate physical disks are available within the pool.
Let's take a look at how your data is mirrored on different disks. The illustration below shows how a (two-copy) mirrored space is constructed from a two-disk pool:
Figure 7: Mirrored space construction
In this case, Storage Spaces has allocated physical capacity for the mirrored space in what we call slabs, which are multiples of 256MB. Also, for this particular example, half of each slab is mirrored on 2 separate disks. Even if one of the two disks fails, Storage Spaces can continue to deliver your data because at least one copy exists on a non-failed physical disk.
When multiple disks are available, Storage Spaces spreads slabs across suitable disks as shown in the six-disk pool below:
Figure 8: Slab distribution
When a pool disk fails, Storage Spaces identifies the affected slabs for all spaces utilizing the failed disk, and reallocates them to any available hot-spare disk or to any other suitable disk within the pool.
Hot-spares are reserved disks within the pool, only to be used as automatic replacements for failed disks. This self-healing is done automatically and transparently so as to minimize the need for manual intervention. We've also optimized for speed to prevent data loss from multiple hardware failures at the same time.
There's another resiliency attribute, called parity, which directs Storage Spaces to store some redundancy information alongside user data contained within the space, thereby enabling automatic data reconstruction in the event of physical disk failure.
While conceptually similar to mirroring, parity-based resiliency utilizes capacity more efficiently than mirrored spaces, but with higher random I/O overhead. Parity spaces are well suited for storing data such as large home videos, which have large capacity requirements, large sequential write requests, and an infrequent-to-minimal need to update existing content.
Similar to mirrored spaces, slabs for parity spaces are strewn across available disks (with additional capacity utilized for parity information) as shown below for a parity space contained within a six-disk pool:
Figure 9: Parity distribution
When a disk fails, the parity space recovers automatically and transparently (as does the mirrored space). For parity spaces, Storage Spaces utilizes the parity information to reconstruct affected slabs for all affected spaces, and then automatically reallocates the slab to utilize any available hot-spare diskorany other suitable disk within the pool (just as it does for mirrored spaces).
Figure 10: Two spaces in the same pool
The illustration above shows two spaces – one with mirrored resiliency and the other with parity resiliency – carved out from the same pool. Both spaces are thinly provisioned and part of the same pool of physical disks). Slabs for both spaces are intermingled, and spread over all available physical disks, although each space uses different mechanisms to recover from physical disk failure.
You can access spaces contained within a pool, as long as a simple majority of physical disks comprising the pool are healthy and connected to your computer, a concept called quorum. For example, you will need four of the six disks comprising the My Home Storage pool to be healthy and physically connected to the computer in order to access either the Documents or the Multimedia space.
Of course, as previously stated, the resiliency attribute associated with the space determines how many physical disks can fail while still maintaining access to your data – for example, if the Documents space is three-way mirrored and allowed to use all disks within the pool, you can continue accessing data despite the loss of any two disks.
We can explore the virtualization capabilities of Storage Spaces by looking at a common usage scenario. Imagine that you have just purchased a Windows 8 computer and wish to use this machine as a central repository for much of the digital content in your home or small business. This setup might involve creating two resilient spaces:
By using the appropriate resiliency scheme, you can optimize for both capacity utilization as well as for best performance.
Logically, your storage configuration would look exactly like the illustration provided above, where two spaces with different resiliency attributes are carved out from a single pool. Here are the basic steps for setting this up:
To create our pool and a mirrored space, you can perform the following steps.
Figure 11: Storage Spaces dialog box
Figure 12: Select drives dialog box
Figure 13: Options dialog box
Your table below describes the different options for resiliency.
Table 1: Resiliency options for Storage Spaces
Simple (No Resiliency)
Available space will be the sum of all disk space in the storage pool.
2TB Disk + 2TB Disk = 4TB Available Disk Space.
All available space is used, but data is not protected from a drive failure.
Can be created with only a single disk.
Available space will be half of all disk space in the storage pool.
2TB Disk + 2TB Disk = 2TB Available Disk Space.
Half of available space is used, but you can lose half of the drives in the pool without losing data.
Requires a minimum of two disks in the storage pool.
Available space will be 1/3 of all disk space in the storage pool.
2TB Disk + 2TB Disk + 2TB Disk = 2TB Available Disk Space.
1/3 of available disk space is used, but you can lose 2/3 of the disks in the pool without losing data.
Requires a minimum of 5 disks in the storage pool.
Available space will be the sum of all disks (if they are evenly sized) minus 1 disk.
2TB Disk + 2TB Disk + 2TB Disk + 2TB Disk + 2TB Disk = 8TB Available Disk Space.
Requires a minimum of 3 disks in the storage pool.
Note: You can assign a drive letter and format the volume as part of creating the space.
Figure 14: Manage Storage Spaces dialog box
To add disks to an existing pool, follow the steps below.
Figure 15: Storage pool dialog box
Figure 16: Drive selection
In the event you start running out of capacity, Action Center will display a notification indicating the Storage Spaces has an issue:
Figure 17: Space warning
Click the notification to see more information, including information about how to fix it.
Figure 18: Manage Storage Spaces troubleshooting
That's all you need to do to start using Storage Spaces. After the spaces are created, you can utilize them just like any other disk.
Storage Spaces virtualizes storage in order to be able to deliver a multitude of capabilities in a cost-effective and easy-to-use manner. Storage Spaces delivers resiliency to physical disk (and other similar) failures by maintaining multiple copies of data. To maximize performance, Storage Spaces always stripes data across multiple physical disks.
While the RAID concepts of mirroring and striping are used within Storage Spaces, the implementation is optimized for minimized user complexity, maximized flexibility in physical disk utilization and allocation, and fast recovery from physical disk failures. Given these significant differences in objectives and implementation between Storage Spaces and traditional inflexible RAID implementations, the RAID nomenclature is not used by Storage Spaces.
For both mirrored and striped spaces, read performance is very competitive with optimized RAID 0 or RAID 10 implementations.
This is not recommended. Storage Spaces were designed to work with off-the-shelf commodity disks. This feature delivers easy-to-use resiliency to disk failures, and optimizes concurrent usage of all available disks within the pool. Using a RAID enclosure with Storage Spaces adds complexity and a performance penalty that does not provide any improvement in reliability.
No, you cannot boot from a space.
You can create a pool with only one disk. However, such a pool cannot contain any resilient spaces (i.e. mirrored or parity spaces). It can only contain asimplespace which does not provide resiliency to failures. We do test pools comprising hundreds of disks, such as you might see in a datacenter. There is no architectural limit to the number of disks comprising a pool.
If the physical disk is contained within an enclosure that supports the SCSI Enclosure Services protocol, we will activate a red LED (if present) next to the failed physical disk. A standard notification will pop up in the desktop. You can also see information about the failure in the Storage Spaces Control Panel. Here is what that looks like:
Figure 19: Disk Problem in Action Center
Figure 20: Locating a failed disk
After you detect the failed disk, you can physically disconnect it at any time. Replacing a failed physical disk is easy – after removing the failed disk, you simply connect the replacement disk to the computer, and then add the disk to the pool.
As long as you have created mirrored or parity spaces, you can always simply remove a physical disk within the pool, and add a larger disk in its place. Within a short period of time, the affected spaces will automatically be resynchronized (the Storage Spaces design optimizes this operation to be faster than traditional RAID rebuilds). You can determine whether all spaces are healthy – data has been resynchronized so as to maintain the designated number of copies, for example – either via Control Panel or via PowerShell™ commands.
You can use Storage Spaces with any physical disk that otherwise works with Windows, connected via USB, SATA, or SAS. If the physical disks are connected via some custom enclosure (such as in JBOD configurations), Storage Spaces will utilize the SES protocol (if supported by the enclosure), to identify physical slots where the disks are located. When needed, Storage Spaces will also use SES (SCSI Enclosure Services) to light up failure LEDs associated with physical disks (assuming that the enclosure has such LEDs).
For Storage Spaces to use enclosure capabilities, the enclosure must conform to the Windows logo requirements. Enclosure vendors have been made aware of these requirements and we expect increasing conformance over time. If your disks are housed within an enclosure, and if Storage Spaces either does not provide you with slot information associated with the physical disks or does not light up LEDs on the enclosure, you can assume that the enclosure does not conform to Windows logo requirements.
No. Storage Spaces optimally utilizes all physical disks. In the event that Storage Spaces metadata on a physical disk becomes corrupt (which will be obvious since the disk health will indicate a problem with the physical disk), you can treat the disk just as you would any other failed disk – simply remove it from the pool. If the physical disk is healthy, you can subsequently re-add it to the pool.
You can increase the logical size of a space at any time. Decreasing the logical size is not supported (or needed), given thin provisioning. It makes no difference whether you specify the initial logical size to be a smaller number (say 1TB) and grow it as needed, or set it to a very large number (say 50TB) right from the beginning. The latter may save you time and effort later.
No. The slab size is automatically determined by Storage Spaces based on a multitude of factors to deliver an optimal experience in terms of performance and availability.
The slab size is an internal unit of capacity that we use for provisioning across multiple spaces within the same pool. Its value has no bearing on optimal storage of files, regardless of file size.
Yes. Just connect the physical disks comprising the pool to the new computer.
You can plug enclosures back in in any order. When Storage Spaces detects a sufficient number of disks for quorum, it activates the pool and contained spaces. You can plug in more enclosures later. If the data on any disks becomes out of sync, Storage Spaces will automatically sync them. Even if you never plug in some enclosures, as long as Storage Spaces detects the minimum number of disks needed, you can continue working with your data. Storage Spaces informs you that physical disks are missing, and encourages you to plug them back in.
There is no requirement for an even or odd number of physical disks. Storage Spaces correctly handles two-disk pools and continues delivering resiliency to failures for a two-way mirrored space contained within such a pool, even if one physical disk fails or is disconnected.
Windows 7 does not support Storage Spaces and will treat the physical disks just as it would any disk with an unfamiliar partitioning scheme.
For more information, please see the following article:
Virtualizing storage for scale, resiliency, and efficiencyhttp://blogs.msdn.com/b/b8/archive/2012/01/05/virtualizing-storage-for-scale-resiliency-and-efficiency.aspx
Best description I have found so far.
How about dismounting or ejecting a simple storage space?
Great post, thanks.
Curious, how do you generate Figures 7 - 9? I'd like to generate this data on one of my systems to better understand how the slabs are distributed
Me I'm also interested in what Robert asked.
I've many partitions on physical disks, and in order to centralize their available space under a single drive letter I created a VHD file in each partition and then I unified those VHDs in a pool, where I built a simple Space (no resiliency).
I know Storage Spaces have not been thought to serve this target but hey, they work :)
One of the VHDs is on a network path, so when I disconnect the PC from the network (intentionally or not) the Space is no more accessible. It becomes accessible as soon as I reconnect and load the VHD, but upon disconnection I read messages in the Event Viewer saying that data may not have been written correctly (cache matters on the Space).
Then I thought: is there a way to eject a storage space to prevent this? Or can I ignore this behavior? I cannot eject VHDs one by one neither, since they become hidden when the space is mounted.
Thanks for the great post too, bye bye!