Adding Virtual Network Adapter to Storage Spaces Direct #S2D Cluster #StorageSpacesDirect #WS2016 #HyperV

2 min read


You deployed a new shiny Storage Spaces Direct cluster and everything is running smoothly.

During the planning phase, you missed to add an additional network that you might use to isolate certain type of traffic.

The following question came from one of my blog reader. You know who you are :)

I need to add an extra virtual network adapter to an exiting Storage Spaces Direct (S2D) cluster which has been in production for a while. Can we add an extra Virtual NIC to the management host OS without having any issue?

The short answer is yes!

In this post, I will show you how to add an extra vNIC with and without System Center Virtual Manager (SCVMM) 2016 to a running Storage Spaces Direct cluster.

Adding Virtual Network Adapter using SCVMM 2016

Open SCVMM console, in the Fabric workspace select to the desired host and click Properties. In the host properties, select Virtual Switches and click on the logical switch. In my example below, I am using Switch Embedded Teaming (SET) logical switch. Click New Virtual Network Adapter.


Next, fill the required network details as needed and then click Ok.

This also assume that you already defined the required VLAN(s) on your top of rack switches.


Please note that you want to repeat the same steps on all nodes in the cluster.

Switch to Failover Cluster Manager (FCM) and observe the new vNIC has been added to all nodes in the cluster.


The cluster is healthy and running without any interruption.

Adding Virtual Network Adapter without SCVMM 2016

If you don’t have System Center Virtual Machine Manager 2016 deployed in your environment, then you can use PowerShell to accomplish the same thing.

Open Windows PowerShell on your management machine, and then run the following command targeting each node in the S2D cluster.

# Variables
$Nodes  = "HV01","HV02"
$VLANID = 114
$NTW_ID = "172.21.114."
$NTW_IP = 11

# Adding vNICs to SET Team
foreach ($Node in $Nodes) {

Invoke-Command -ComputerName $Node -ScriptBlock {
   $SETvSwitch = Get-VMSwitch -Name "*SET_vSwitch"  
   Add-VMNetworkAdapter -ManagementOS -SwitchName $SETvSwitch.Name -Name "MGT_SMB"
   New-NetIPAddress -InterfaceAlias "vEthernet (MGT_SMB)" -IPAddress $Using:SMB_IP -PrefixLength 24 -Type Unicast | Out-Null
   Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "MGT_SMB" -Access -VlanId $Using:VLANID -Confirm:$false

   # Set Minimum Bandwidth
   Set-VMNetworkAdapter -ManagementOS -Name "MGT_SMB" -MinimumBandwidthWeight 10
   # Optional Enable vRSS
   Get-NetAdapter -Name "vEthernet (MGT_SMB)" | Enable-NetAdapterRss
   # Optional Enable vRDMA
   Get-NetAdapter -Name "vEthernet (MGT_SMB)" | Enable-NetAdapterRdma

$SMB_IP =  $NTW_ID + $NTW_IP   

The script above assumes that your exiting SET switch is created with Minimum bandwidth mode equal to “Weight”.

Hope that helps!

[email protected]

About Charbel Nemnom 578 Articles
Charbel Nemnom is a Cloud Architect, Swiss Certified ICT Security Expert, Microsoft Most Valuable Professional (MVP), and Microsoft Certified Trainer (MCT), totally fan of the latest's IT platform solutions, accomplished hands-on technical professional with over 17 years of broad IT Infrastructure experience serving on and guiding technical teams to optimize the performance of mission-critical enterprise systems. Excellent communicator is adept at identifying business needs and bridging the gap between functional groups and technology to foster targeted and innovative IT project development. Well respected by peers through demonstrating passion for technology and performance improvement. Extensive practical knowledge of complex systems builds, network design, business continuity, and cloud security.

Be the first to comment

Leave a Reply

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