As promised this is a bonus post that will take us into a bit deeper dive on the core Networking stack of Windows Server 2016. Specifically, the new SET Team and RDMA Configurations required for Storage Spaces Direct.

Configuring Datacenter Bridging

 

The following Windows PowerShell script provides an example of how to enable and configure Data Center Bridging (DCB) for SMB Direct on S2DNode1:


#  
# Turn on DCB  
Install-WindowsFeature Data-Center-Bridging  
#  
# Set a policy for SMB-Direct   
New-NetQosPolicy "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3  
#  
# Turn on Flow Control for SMB  
Enable-NetQosFlowControl  -Priority 3  
#  
# Make sure flow control is off for other traffic  
Disable-NetQosFlowControl  -Priority 0,1,2,4,5,6,7  
#  
# Apply policy to the target adapters  
Enable-NetAdapterQos  -Name "Ethernet 3", “Ethernet 4”  
#  
# Give SMB Direct 30% of the bandwidth minimum  
New-NetQosTrafficClass "SMB"  -Priority 3  -BandwidthPercentage 30  -Algorithm ETS 

 

 

You can complete the installation of the DataCenter Bridging on the remaining nodes by running the following PowerShell command.


Invoke-Command -ComputerName S2DNode2 -ScriptBlock {
#  
# Turn on DCB  
Install-WindowsFeature Data-Center-Bridging  
#  
# Set a policy for SMB-Direct   
New-NetQosPolicy "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3  
#  
# Turn on Flow Control for SMB  
Enable-NetQosFlowControl  -Priority 3  
#  
# Make sure flow control is off for other traffic  
Disable-NetQosFlowControl  -Priority 0,1,2,4,5,6,7  
#  
# Apply policy to the target adapters  
Enable-NetAdapterQos  -Name "Ethernet 3","Ethernet 4"  
#  
# Give SMB Direct 30% of the bandwidth minimum  
New-NetQosTrafficClass "SMB"  -Priority 3  -BandwidthPercentage 30  -Algorithm ETS 

} 

 

Configuring the SET Team

 

A switch-embedded team must be created at the time the Hyper-V switch is created.

When creating the Hyper-V switch using the New-VMSwitch PowerShell cmdlet, the “EnableEmbeddedTeaming” option must be selected.

 

Below is a screen shot of the network adapter configuration prior to building out the networking stack.

Base Networking Configuration

 

Note: You must ensure that you purchase a supported network adapter for your configuration. RDMA over Converged Ethernet is what you want to look for and we personally recommend the: ConnectX®-3 Pro EN Single/Dual-Port Adapters 10/40/56GbE Adapters w/ PCI Express 3.0. More information can be found at Mellanox’s website: http://www.mellanox.com/page/products_dyn?product_family=162&mtag=connectx_3_pro_en_card

 

To build the SET Team you can run the following PowerShell command

New-VMSwitch -Name TeamedvSwitch02 -NetAdapterName "Ethernet 3","Ethernet 4" -EnableEmbeddedTeaming $true

 

You can complete the installation of the SET Team on the remaining nodes by running the following PowerShell command.

Invoke-Command -ComputerName S2DNode2 -ScriptBlock {


New-VMSwitch -Name TeamedvSwitch02 -NetAdapterName "Ethernet 3","Ethernet 4" -EnableEmbeddedTeaming $true 

} 

 

The result of the creation of the new SET Team looks like this in the Networking Control Panel.

SET Team created

 

Note: Remember that all configurations of the SET Teams are done through SCVMM or PowerShell. When you look at Server Manager you will see that NIC Teaming is disabled because this is only a view for LBFO Teaming.

 

 

Creating RDMA Enabled Virtual Adapters

 

Now that a SET Team has been created we need to create the RDMA enabled Virtual Adapters. This is what S2D will use its core network communications.

 

Below is a screen shot of RDMA Enabled Virtual Adapters post-configuration. I thought I would show you the finished product before showing the script to create them.

That is right under the screen shot.

 

RDMA Virtual Adapters Created

Add-VMNetworkAdapter -SwitchName TeamedvSwitch02 -Name SMB_4 -managementOS  
Add-VMNetworkAdapter -SwitchName TeamedvSwitch02 -Name SMB_3 -managementOS  
Enable-NetAdapterRDMA "vEthernet (SMB_3)","vEthernet (SMB_4)"   

 
 

You can complete the installation of the RDMA enabled Virtual Adapters on the remaining nodes by running the following PowerShell command.

Invoke-Command -ComputerName S2DNode2 -ScriptBlock {

Add-VMNetworkAdapter -SwitchName TeamedvSwitch02 -Name SMB_3 -managementOS  
Add-VMNetworkAdapter -SwitchName TeamedvSwitch02 -Name SMB_4 -managementOS  
Enable-NetAdapterRDMA "vEthernet (SMB_3)","vEthernet (SMB_4)"  

} 
 

 

 

Verifying RDMA Enabled Virtual Adapters

 

To verify that the RDMA Enabled Virtual Adapters have been created properly you can run the following PowerShell command. The below PowerShell commands will allow us to see if the configurations have been enabled or not on our Virtual Network Adapters.

Get-NetOffloadGlobalSetting | select networkdirect
Get-NetAdapterRdma 
Get-NetAdapterHardwareInfo 

 

Verifying the RDMA Configurations

 

Viewing RDMA Performance Counters

 

There are specific performance counters that can be viewed for RDMA. Let’s have a look at those.

RDMA Performance Counters

 

 

Lastly, we need to ensure that the nodes are listening on the RDMA Interfaces by using Netstat.    

netstat.exe -xan | ? {$_ -match "445"} 

 

Viewing SMB Direct Connections using Netstat

 

Hopefully this has helped fill in some of the blanks for you on the Networking Configuration with RDMA and SET Teams used for Storage Spaces Direct.

In Part 6 of this Blog Series we will actually build our Failover CLuster and enable Storage Spaces Direct.

Thanks,

 

Cristal

 

Cristal Kawula

Cristal Kawula is the co-founder of MVPDays Community Roadshow and #MVPHour live Twitter Chat. She was also a member of the S2D Technical Advisory board and is the President of TriCon Elite Consulting. Cristal is also only the 2nd woman in the world to receive the prestigious Veeam Vanguard award.

 

BLOG: http://www.checkyourlogs.net

Twitter: @supercristal1