As mentioned in Where SMB Direct, RoCE, RDMA & DCB fit into the stack this post’s only function is to give you an overview of the configurations used in the demo blogs/videos. First we’ll configure one Windows Server 2012 R2 host. I hope it’s clear this needs to be done on ALL hosts involved. The NICs we’re configuring are the 2 RDMA capable 10GbE NICs we’ll use for CSV traffic, live migration and our simulated backup traffic. These are Mellanox ConnectX-3 RoCE cards we hook up to a DCB capable switch. The commands needed are below and the explanation is in the comments. Do note that the choice of the 2 policies, priorities and minimum bandwidths are for this demo. It will depend on your environment what’s needed.
#Install DCB on the hosts Install-WindowsFeature Data-Center-Bridging #Mellanox/Windows RoCE drivers don't support DCBx (yet?), disable it. Set-NetQosDcbxSetting -Willing $False #Make sure RDMA is enable on the NIC (should be by default) Enable-NetAdapterRdma –Name RDMA-NIC1 Enable-NetAdapterRdma –Name RDMA-NIC2 #Start with a clean slate Remove-NetQosTrafficClass -confirm:$False Remove-NetQosPolicy -confirm:$False #Tag the RDMA NIC with the VLAN chosen for PFC network Set-NetAdapterAdvancedProperty -Name "RDMA-NIC-1" -RegistryKeyword "VlanID" -RegistryValue 110 Set-NetAdapterAdvancedProperty -Name "RDMA-NIC-2" -RegistryKeyword "VlanID" -RegistryValue 120 #SMB Direct traffic to port 445 is tagged with priority 4 New-NetQosPolicy "SMBDIRECT" -netDirectPortMatchCondition 445 -PriorityValue8021Action 4 #Anything else goes into the "default" bucket with priority tag 1 :-) New-NetQosPolicy "DEFAULT" -default -PriorityValue8021Action 1 #Enable PFC (lossless) on the priority of the SMB Direct traffic. Enable-NetQosFlowControl -Priority 4 #Disable PFC on the other traffic (TCP/IP, we don't need that to be lossless) Disable-NetQosFlowControl 0,1,2,3,5,6,7 #Enable QoS on the RDMA interface Enable-NetAdapterQos -InterfaceAlias "RDMA-NIC1" Enable-NetAdapterQos -InterfaceAlias "RDMA-NIC2" #Set the minimum bandwidth for SMB Direct traffic to 90% (ETS, optional) #No need to do this for the other priorities as all those not configured #explicitly goes in to default with the remaining bandwith. New-NetQoSTrafficClass "SMBDirect" -Priority 4 -Bandwidth 90 -Algorithm ETS
We also show you in general how to setup the switch. Don’t sweat the exact syntax and way of getting it done. It differs between switch vendors and models (we used DELL Force10 S4810 and PowerConnect 8100 / N4000 series switches), it’s all very alike and yet very specific. The important thing is that you see how what you do on the switches maps to what you did on the hosts.
!Disable 802.3x flow control (global pause)- doesn't mix with DCB/PFC workinghardinit#configure workinghardinit(conf)#interface range tengigabitethernet 0/0 -47 workinghardinit(conf-if-range-te-0/0-47)#no flowcontrol rx on tx on workinghardinit(conf-if-range-te-0/0-47)# exit workinghardinit(conf)# interface range fortyGigE 0/48 , fortyGigE 0/52 workinghardinit(conf-if-range-fo-0/48-52)#no flowcontrol rx on tx off workinghardinit(conf-if-range-fo-0/48-52)#exit !Enable DCB & Configure VLANs workinghardinit(conf)#service-class dynamic dot1p workinghardinit(conf)#dcb enable workinghardinit(conf)#exit workinghardinit#copy running-config startup-config workinghardinit#reload !We use a <> VLAN per subnet workinghardinit#configure workinghardinit(conf)#interface vlan 110 workinghardinit (conf-if-vl-vlan-id*)#tagged tengigabitethernet 0/0-47 workinghardinit (conf-if-vl-vlan-id*)#tagged port-channel 3 workinghardinit(conf)#interface vlan 120 workinghardinit (conf-if-vl-vlan-id*)#tagged tengigabitethernet 0/0-47 workinghardinit (conf-if-vl-vlan-id*)#tagged port-channel 3 workinghardinit (conf-if-vl-vlan-id*)#exit !Create & configure DCB Map Policy workinghardinit(conf)#dcb-map SMBDIRECT workinghardinit(conf-dcbmap-profile-name*)#priority-group 0 bandwidth 90 pfc on workinghardinit(conf-dcbmap-profile-name*)#priority-group 1 bandwidth 10 pfc off workinghardinit(conf-dcbmap-profile-name*)#priority-pgid 1 1 1 1 0 1 1 1 workinghardinit(conf-dcb-profile-name*)#exit !Apply DCB map to the switch ports & uplinks workinghardinit(conf)#interface range ten 0/0 – 47 workinghardinit(conf-if-range-te-0/0-47)# dcb-map SMBDIRECT workinghardinit(conf-if-range-te-0/0-47)#exit workinghardinit(conf)#interface range fortyGigE 0/48 , fortyGigE 0/52 workinghardinit(conf-if-range-fo-0/48,fo-0/52)# dcb-map SMBDIRECT workinghardinit(conf-if-range-fo-0/48,fo-0/52)#exit workinghardinit(conf)#exit workinghardinit#copy running-config startup-config
With the hosts and the switches configured we’re ready for the demos in the next two blog posts. We’ll show Priority Flow Control (PFC) and Enhanced Transmission Selection (ETS) in action with some tips on how to test this yourselves.