Deploying Storage Spaces Direct with VMM 2016 or with Powershell #Cloud #hyperconverged #SysCtr #S2D   1 comment

Windows Server 2016 comes with al lot of new options and Hyper-converged is one of the new options. In this blog post I’ll show you what options you have when using VMM and S2D. The tools are great but so is PowerShell and it always depends on what and how you are building things.

Storage Spaces Direct is a bit like building a Do It Your Self San multiple heads lots of Storage can lose one Head , low costs.

Storage Spaces Direct seamlessly integrates with the Hyper-V / Files Servers you know today. The Windows Server 2016 software defined storage stack, including Clustered Shared Volume File System (CSVFS), Storage Spaces and Failover Clustering.

The hyper-converged deployment scenario has the Hyper-V servers and Storage Spaces Direct components on the same cluster. Virtual machine’s files are stored on local CSVs. This allows for scaling Hyper-V clusters together with the storage it is using. Once Storage Spaces Direct is configured (Enable-ClusterS2D) and the CSV volumes are available, configuring and provisioning Hyper-V is the same process and uses the same tools that you would use with any other Hyper-V deployment on a failover cluster. but now with System Center Virtual Machine Manager 2016 we can also configure this during the deployment.

Hyper-Converged Stack

Above are the layers shown, as you can see the Storage is defined in 3 parts physical disks, spaces and the CSV volumes.

So basically we can configure the cluster with Storage Spaces Direct by hand (PowerShell) or if you are using VMM you can do this by using templates and the GUI. but is this the same and is this handy ? The only change I did in this post is create a Scale out file server to use the Storage Spaces Direct volumes.

Well it is nice that you can do this but when configuring this by hand it gives you much more flexibility and configuration and yes maybe more complex but understanding the method is better than following a wizard.

Let see the options we have in VMM there are a couple of ways to configure this it all depends.


Create a Hyper-V cluster and tap the enable Storage Spaces Direct option.



Or Create a Scale Out file server and check what you want shared Storage or enable Storage Spaces Direct option.

But you can also Create the cluster in VMM and configure later the Storage Spaces Direct. The fact is that VMM 2016 can create and maintain the Storage layer. all from a single interface.

So for this demo I use 4 Servers Sofs02,Sofs04,Sofs06,Sofs08 each server has 8 local Disks



These 4 servers will be transformed to a Storage Space Direct Cluster

first let me check of all the disks on the server.

Get-PhysicalDisk | ? CanPool -EQ 1 | FT FriendlyName, BusType, MediaType, Size


Storage Spaces Direct uses BusType and MediaType to automatically configure caching, storage pool and storage tiering. In Hyper-V virtual machines, the media type is reported as unspecified. So if you are using tools that are expecting certain types of disk you need to fix this.

else when running the cluster validation the cluster creation will fail.

Found a disk with unsupported media type on node ‘Sofs02.mvp.local’. Supported media types are SSD and HDD.


Step one is creating a Hyper-v cluster.



As my servers are in the Storage VMM host group I’ll pick this group. Give the cluster a name and Check the Storage Spaces Direct check box.

So typical when creating this by hand you would do this in PowerShell

install-WindowsFeature "Failover-Clustering","RSAT-Clustering" -IncludeAllSubFeature –ComputerName “sofs02”,”sofs04”,”sofs06”,”sofs08”

Test-Cluster -Node “sofs02”,”sofs04”,”sofs06”,”sofs08”

New-Cluster –Name Democlu201 -Node “sofs02”,”sofs04”,”sofs06”,”sofs08”  -NoStorage -StaticAddress ""

Enable-ClusterS2D -CacheMode Disabled -AutoConfig:0 –SkipEligibilityChecks  ( as you are running VHDX disks )

The big difference here is you can’t customize this cluster during this step so no Quorum or any other settings.


Selecting all the nodes


Giving the Cluster a Fix IP or pick one random from the IP pool


All the tasks are running an in a few minutes we have a Cluster that holds a Storage Space Direct unless it Fails the cluster validation test.

If you are using the S2D you must run the Cluster validation test and remember only SSD and HDD media type Disks are supported. So if the media type is unspecified or unknown the Validation report will fail and so is this job.


In our case the job went successful and the cluster with Storage Space Direct is ready for usage.


Now that the cluster is ready you can use the Storage after creating the pool.

And if you already have build a hyper-converged  Cluster Hyper-V servers and Storage Spaces Direct components then you can us this also in VMM.


Now that the Cluster is added we can create a Pool.

In case you build the Storage Spaces Direct with Powershell you end up with something like this :

#Create storage pool 
New-StoragePool  -StorageSubSystemName Pool01.mvp.local –FriendlyName Pool01 -WriteCacheSizeDefault 0 -FaultDomainAwarenessDefault StorageScaleUnit -ProvisioningTypeDefault Fixed -ResiliencySettingNameDefault Mirror -PhysicalDisk (Get-StorageSubSystem  -Name Pool01.mvp.local| Get-PhysicalDisk)

#list Storage pool

Get-StoragePool Pool01

#removal of the Storagepool 
Remove-StoragePool –Name Pool01.mvp.local

But when using the VMM Gui tool you will not get the friendly name as when you do this in Powershell



But this is easy changable

TO check if the Cluster Storage Spaces Direct is enabled you can run a PowerShell command


Or check your Cluster under Storage en Enclosures Every server is listed as his own enclosure.


Now that the Enclosures are listed We create the pools and the disks


We select the Clustered Pool and do manage to create the Virtual disk



We create a New Pool and if you not created a Classification you will need to do this to.

Give this a name and Pick the disk that you want I select all the Disk and use them for one big Pool.


Now that we have selected all the disk and created the pool we can create a Virtual disk on the Pool


Creating the disk can be a little confusing in the VMM GUI as you need to press Cancel and OK.


Give the disk a name


Pick the right Size as my pool s 168GB and I can only do a Mirror you understand I can’t create a 160Gb disk, I have 4 nodes press ca


How can this guide help you? You can use this guide and the Software-Defined Storage Design Calculator spreadsheet to design a storage solution that uses the Storage Spaces and Scale-Out File Server functionality of Windows Server 2012 R2 along with cost-effective servers and shared serial-attached SCSI (SAS) storage enclosures.

#Create virtual disks
New-Volume –StoragePoolFriendlyName Pool01 -FriendlyName CSV02 -PhysicalDiskRedundancy 1 -FileSystem CSVFS_REFS –Size 48GB

As you can see I created a Scale out file server and used the Storage Spaces Direct as storage.


#create Cluster
New-StorageFileServer –StorageSubSystemName DemoClu201.mvp.local –FriendlyName Demosofs201 -HostName Demosofs201.mvp.local -Protocols SMB

#Create file shares and Folders 
md C:\ClusterStorage\Volume1\shares\VM01

New-SmbShare –Name VM01 -Path C:\ClusterStorage\Volume1\shares\VM01 -FullAccess "mvp\Domain Admins"


Now that the File share and SOFS is in place we can add the share to the hyper-v server or cluster for usage.


When creating a VM we can use the Storage Spaces Direct to place a VM but as you can see in this post there are several methods to do things and each option has a different choice the right one well it is all on you and it depends. see this table below with the pros and cons.

Storage Spaces deployment tools




Failover Cluster Manager & Server Manager

  • Easy to use

  • Slow automatic refreshes in Server Manager when working with storage

  • Some tasks require Windows PowerShell

  • No automation can make provisioning more than a couple virtual disks and file shares tedious

System Center Virtual Machine Manager

  • Easy to use

  • Partial automation of cluster deployment

  • Automated management of file share permissions

  • Can be used to deploy and manage VMs

  • Some tasks require Windows PowerShell (including storage tiers)

  • Requires System Center licenses

  • Might require additional infrastructure if you don’t already have System Center or are deploying at a scale that’s greater than your existing deployment can handle

Microsoft Deployment Toolkit

  • Lots of control over operating system installation options

  • Can be used to deploy other PCs and servers

  • Can be complex

  • Some approaches require System Center Configuration Manager licenses

Windows PowerShell

  • Complete control over all aspects of storage

  • Can automate by writing scripts

  • Requires knowledge of Windows PowerShell

  • Scripts require development and testing

After writing this post I can see If you should do this then I would use PowerShell to build the cluster and Storage Spaces direct and add them to VMM but for deploying the basics VMM could be very handy but it all depends on your infra structure.

The VMM option is really great but for me it takes to long to do stuff and often the job fails because I made a typo or the naming is not the way I want it. And the usage of the Storage Spaces Well the Hyper-Converged option vs the Converged option it has it challenges and it all depends on the hardware you have. but for my testlab or in Azure S2D runs great.

Follow Me on Twitter @ClusterMVP

Follow My blog

Linkedin Profile Http://

Google Me :

Bing Me :


Posted August 22, 2016 by Robert Smit [MVP] in Windows Server 2016

Tagged with ,

One response to “Deploying Storage Spaces Direct with VMM 2016 or with Powershell #Cloud #hyperconverged #SysCtr #S2D

Subscribe to comments with RSS.

  1. On a single Windows 2016 physical host, I deployed two Hyper-V nodes on a cluster where I

    configured Storage Spaces Direct (S2D). Then I tested HA by creating a VM on one node and

    shutting down the node.

    Miguel Paton

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Twitter

  • RSS Azure and Microsoft Windows Server Blog

  • %d bloggers like this: