Storage Spaces is the innovation in Windows 8 designed to increase the efficiency and flexibility of disk space management in the newest Windows operating systems. Storage Spaces operates on the level between hardware and virtual drives.
Pool
Pool is a set of physical drives, on top of which you can create various virtual disks, known as spaces.
Slab
Slab is a quantum of disk space of 256 MB. All the physical drives in the pool are "sliced" into slabs which are then given to the Storage Spaces driver on request. The driver then assigns slabs to a particular virtual disk [known as space].
A virtual disk created from a set of slabs on the physical drives of the pool is called Space. The main characteristics of a space are:
- layout - there are simple, mirror, three-way mirror, parity, and double parity spaces;
- type - fixed or thinly provisioned;
- if a single logical volume is created on the space, the filesystem type [ReFS or NTFS] is also relevant.
Fixed vs. thinly provisioned spaces. Advertised capacity vs. physical capacity.
A space can be either fixed or thinly provisioned.
In a fixed provisioned space, the storage capacity for a space is allocated immediately when the space is created. Even if you do not use all the space capacity for the data, allocated disk space on the physical drives is still reserved for the fixed-provisioned space and cannot be given to any other space.
With thin provisioning, space capacity can exceed the amount of physically available disk space in the pool because disk space for such a space is allocated on an as-needed basis. The total capacity of a thinly provisioned space is called advertised size. If at some time disk space is exhausted, a thinly provisioned space is automatically taken offline until user either adds more physical drives to the pool or frees disk space by deleting data from the other spaces of the same pool.
Thus, a space has two sizes - advertised capacity and physical capacity which depending on the provisioning type used can either be the same [fixed provisioning] or different [thin provisioning].
Simple, mirror, three-way mirror, parity, and double parity layouts
When creating a space, you should specify what type of redundancy it will utilize. Note that Microsoft uses the term resiliency instead of more common redundancy.
Simple means no redundancy; slabs are distributed among the drives in the pool in a way similar to a technique used in RAID0. If any drive assigned to such a space is missing, the entire space becomes unrecoverable.
In the mirror storage layout data from each slab is duplicated on some other drive of the pool. A mirrored space, similar to a RAID1, survives a single disk failure.
The three-way mirror storage layout can only be created on no less than five physical drives. In such a space there are three copies of each slab stored on different pool member disks. A three-way mirrored space survives a failure of up to two physical drives.
In a parity space, as in a RAID 5, data and parity information are striped across pool member disks. Similar to a RAID5, parity spaces survive a single disk failure.
To create a double parity space, you need at least 7 disks. Double parity space layout is similar to a traditional RAID6 layout where for every certain number of data blocks there are two "calculated" blocks. In case of failure, those blocks are used to restore missing data blocks.
Option 6 "Mirror volumes on a disk" in the vxdiskadmutility is by default limited to creating one additional mirror pervolume. If a volume already has two or more mirrors [plexes], noadditional mirrors will be created. However, there are conditions where itis desirable to create a 3-way mirror for a volume.
The following erroroccurs when attempting to use vxdiskadm option 6 to create a 3-waymirror:
Currentconfiguration:
==================================
v opt gen ENABLED ACTIVE 821205 ROUND -
pl opt-01 opt ENABLED ACTIVE 821205 CONCAT - RW
sddisk05-01 opt-01 disk05 0 821205 0 c2t4d0 ENA
pl opt-03 opt ENABLED ACTIVE 821205 CONCAT - RW
sddisk04-04 opt-03 disk04 2891889 821205 0 c2t2d0 ENA
v rootvol root ENABLED ACTIVE 124740 ROUND -
plrootvol-03 rootvol ENABLED ACTIVE 124740 CONCAT - RW
sddisk04-02 rootvol-03 disk04 717255 124740 0 c2t2d0 ENA
plrootvol-02 rootvol ENABLED ACTIVE 124740 CONCAT - RW
sddisk05-03 rootvol-02 disk05 1538460 124740 0 c2t4d0 ENA
==================================
vxdiskadm option 6 outputmessage:
==================================
mirror volumes on adisk
Menu: Volume Manager/Disk/Mirror
This operation can be used tomirror volumes on a disk. These volumes can be mirrored onto anotherdisk or onto any available disk space. Volumes will not be mirrored ifthey are already mirrored. Also, volumes that are comprised of more thanone subdisk will not be mirrored.
Mirroring volumes from the boot diskwill produce a disk that can be used as an alternate boot disk.
At theprompt below, supply the name of the disk containing the volumes to bemirrored.
Volume Manager Support Operations
Mirror volumes on adisk
Menu: Volume Manager/Disk/Mirror
This operation can be used tomirror volumes on a disk. These volumes can be mirrored onto another diskor onto any available disk space. Volumes will not be mirrored if they arealready mirrored. Also, volumes that are comprised of more than onesubdisk will not be mirrored.
Mirroring volumes from the boot disk willproduce a disk that can be used as an alternate boot disk.
At the promptbelow, supply the name of the disk containing the volumes to bemirrored.
Enter disk name [,list,q,?] disk04
Itis possible to mirror volumes from disk disk04 onto any available disk space, orto mirror onto a specific disk. To mirror to a specific disk, select thename of that disk.
To mirror to any available disk space, select"any".
Enter destination disk [,list,q,?] [default: any] disk02
The requested operation is to mirror all volumes on diskdisk04 in disk group rootdg onto available disk space on diskdisk02.
Note: This operation can take a long time tocomplete.
Continue with operation? [y,n,q,?] [default: y] y
Mirroring of disk disk04 failed.
Error:
vxmirror: Novolumes to mirror
Mirror volumes on a different disk? [y,n,q,?] [default:n]
===================================
vxdiskadm option 6 usesthe "/etc/vx/bin/vxmirror" utility to actually perform the work of mirroring thevolumes on a disk. By making a minor modification to this utility, it ispossible to allow for the creation of 3-way mirrors.
In vxmirror, itspecifically checks to see that the volume only has one plex before it willmirror it. The following lines perform this task:
# with -a, get all volumes thatare candidates for mirroring, otherwise
# limit to volumes that are onthe given disk. Volumes that are candidates
# for mirroring are volumes thatare not currently mirrored and that
# are composed of subdisks ononly one disk.
vnames=`vxprint -g"\$g_diskgroup" -F "%vname" -s \
-e "[!sd_is_log] &&assoc.assoc.v_pl_num == 1 &&
!any[assoc.aslist.sd_disk !=sd_disk]" | sort -u`
vnames=`vxprint -g"\$g_diskgroup" -F "%vname" -s \
-e "[!sd_is_log] &&sd_dm_name==\\"\$dmname\\" &&
assoc.assoc.v_pl_num == 1&&
!any[assoc.aslist.sd_disk !=sd_disk]" | sort -u`
The suggested change, if desired to create more than twoplexes using this utility, is to change both occurrences of"assoc.assoc.v_pl_num == 1" with "assoc.assoc.v_pl_num >= 1".
Thismodification will allow the convenience of adding 3-way mirrors to all volumeson a disk at once. It is possible to accomplish the same result by addingmirrors on a per-volume basis by using the "vxassist" command. Inthis example, the following commands would be used: