Virtual Hard Disk Sharing ( shared VHDX ) Storage Pool Usage in Failover Clustering Windows Server 2012 R2


Storage Spaces: Benefits and Limitations :
  • Obtain and easily manage reliable and scalable storage with reduced cost
  • Aggregate individual drives into storage pools that are managed as a single entity
  • Utilize simple inexpensive storage with or without external storage
  • Provision storage as needed from pools of storage you’ve created
  • Grow storage pools on demand
  • Use PowerShell to manage Storage Spaces for Windows 8 clients or Windows Server 2012
  • Delegate administration by specific pool
  • Use diverse types of storage in the same pool: SATA, SAS, USB, SCSI
  • Use existing tools for backup/restore as well as VSS for snapshots
  • Designate specific drives as hot spares
  • Automatic repair for pools containing hot spares with sufficient storage capacity to cover what was lost
  • Management can be local, remote, through MMC, or PowerShell
  • Not supported on boot, system, or CSV volumes
  • Drives must be 4GB or larger
  • When you introduce a drive into a storage pool, the contents of the drive being added will be lost.
  • Add only un-formatted/un-partitioned drives
  • A simple storage pool must consist of at least one drive
  • A mirrored pool must have at least 2 drives.  For 3-way mirroring there is an obvious need for more
  • Three drive minimum for using Parity
  • All drives in a pool must use the same sector size
  • Fibre-channel and iSCSI are not supported
  • Storage must be storport.sys compatible
  • Virtual disks to be used with a failover cluster that emanate from a storage pool must use the NTFS file system.  ReFS or third-party file systems may be used for other purposes

How does Storage Spaces work ?

The volumes you create within a storage pool are basically virtual disks located on the storage pool that you may then partition, format, and assign drive letters as applicable.  Storage Spaces maintains the health of these drives and any redundancy selected.  Storage Spaces stores metadata on every volume within the storage pool that defines how data will be stored within the pool.

Primordial Pool ?

All storage that meets acceptable criteria for Storage Spaces will be placed in the Primordial Pool.  This can be considered the default pool for devices from which any other pools will be created.

  • Storage pools. A collection of physical disks that enable you to aggregate disks, expand capacity in a flexible manner, and delegate administration.
  • Storage spaces. Virtual disks created from free space in a storage pool. Storage spaces have such attributes as resiliency level, storage tiers, fixed provisioning, and precise administrative control.

Storage Spaces Overview :


In this Blog I create a Storage pool with shared VHDX files so there is no support for this in real life. But you can play with it and use this in your demo’s

Storage pools can be very useful and highly scalable but In my opinion you should not use a witness disk in a storage pool. The reason is if a storage pool is down , what ever the reason is there is no witness disk you should make sure that the disk is always there or use a file share witness.

Again my demo cluster is the base of this. Just to show you how easy you can handle things in windows server 2012 R2

First I create 10 Disks that I will use in this demo. 

1..10 | % { New-VHD -Path m:\shareData$_.VHDX -Fixed -SizeBytes 4GB } Be aware the minimal disk size is 4 GB

Then I add the Disks to my VM’s You can change the 1..10 to you value just as the names.

1..10 | % { $p = "m:\shareData" + $_ + ".VHDX" ; 10..66 | % { $v = "Demo" + $_; Write-Host $v, $p; Add-VMHardDiskDrive -VMName $v -Path $p -ShareVirtualDisk } }

Now that the Disks are added to the VM’s I can use them. The adding can be done even if the VM is running so no down time there.

If you logon to the VM and do a Get-Physicaldisk you will see the -canpool option is true this means the disk can be used for storage pools.image image

Next I will create a storage pool You can do this by powershell or by Gui.

New-VirtualDisk -FriendlyName DemoSpace1 -StoragePoolFriendlyName DemoPool1 -ResiliencySettingName Mirror –Size 1GB

2..7 | % { New-VirtualDisk -FriendlyName DemoSpace$_ -StoragePoolFriendlyName DemoPool1 -ResiliencySettingName Mirror –Size 1GB }

I created 7 virtual disks and I will use 6 disk for CSV and one disk for Files server See my other blog post

64 Node Sharing Virtual Hard Disk (shared VHDX) in Failover Clustering Windows Server 2012 R2 #Winserv #ITPro


clip_image002_thumb image

Next step is creating and Initialize the disk  , If you check properties on the virtual disk you will see the configuration


1..7 | % { $Letter ="MVPLNTU”[($_-1)]

$Number = (Get-VirtualDisk -FriendlyName Space$_ | Get-Disk).Number

Set-Disk -Number $Number -IsReadOnly 0

Set-Disk -Number $Number -IsOffline 0

Initialize-Disk -Number $Number -PartitionStyle MBR

New-Partition -DiskNumber $Number -DriveLetter $Letter -UseMaximumSize

Initialize-Volume -DriveLetter $Letter -FileSystem NTFS -Confirm:$false }


Now the Pool is ready for usage , I create a few shares on the Cluster Shared Volumes and set some rights.

1..4 | % { MD C:\ClusterStorage\Volume$_\DemoShare

New-SmbShare -Name DemoShare$_ -Path C:\ClusterStorage\Volume$_\DemoShare -FullAccess mvp.local\Administrator

Set-SmbPathAcl -ShareName DemoShare$_ }

image image

Storage pools can be created in different ways I Created a Mirror but  there are different layouts Two-way mirror, Three-way mirror, and Parity

What are the resiliency levels provided by Enclosure Awareness?

Storage Space Configuration
All Configurations are enclosure aware
Enclosure or JBOD Count / Failure Coverage
Three JBOD
2-way Mirror
1 Disk
1 Enclosure
1 Enclosure
  3-way Mirror
2 disk
1 Enclosure + 1 Disk
1 Enclosure + 1 Disk
  Dual Parity
2 disk
2 disk
1 Enclosure + 1 Disk


There are great links to teched and teched wiki if you want to know more about storage spaces Parity space support for failover clusters

Storage Spaces Frequently Asked Questions (FAQ)

Posted January 15, 2014 by Robert Smit in Windows Server 2012 R2

Tagged with

  • Tag