SMB Direct Requirements:
DMA NICs
Windows feature
QOS policy
Traffic classshell
RDMA (Remote Direct Memory Access) is based on Direct Memory Access服務器
Remote DMA, or RDMA, is a technology that allows two different computers with RDMA network adapters to write data from the memory of one machine to the memory of another without involving the processor or even the processor cache of either computer.
The data goes from RAM to NIC to NIC to RAM. In the beginning of this course I said that if you wanted to transfer larger files faster you needed to buy a faster NIC, this is a faster NIC.網絡
RDMA有三個實現版本,iWARP, RDMA over Converged Ethernet (RoCE)和Infiniband (IB)。因爲融合網絡架構的流行,iWARP和RoCE使用場景更加普遍。
表明iWARP的是Chelsio的T520-CR
表明RoCE的是Mellanox的ConnectX-3
二者都支持RDMA,且都是兩個萬兆接口。架構
運行powershell
安裝 Data-Center-Bridging
Install-WindowsFeature Data-Center-Bridgingapp
爲 SMB Direct 設置網絡 QoS 策略(445 is the port number for Microsoft file sharing, or SMB. the priority that I'm going to assign it is a 3.)
New-NetQosPolicy "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3ide
創建新的NetQosPolicy
Enable-NetQosFlowControl -Priority 3ui
針對其餘流量禁用流控制
Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7this
Now we can apply this policy to the correct adapter(將網絡 QoS 策略應用於目標適配器。)
Enable-NetAdapterQos -InterfaceAlias "Slot 2*"server
If you need to know your interface alias you can use the Get-NetIPInterface to list all of your network interfaces and it will show the interface alias for each one.
Get-NetIPInterfaceblog
建立流量類別併爲 SMB Direct 指定 30% 的最高帶寬。 設置類名稱將爲「SMB」 。And specify ETS as the Algorithm that will apply that.
New-NetQosTrafficClass "SMB" -Priority 3 -BandwidthPercentage 30 -Algorithm ETS
If your network adapter supports RDMA then all you need to do is make sure it's enabled on that NIC.
獲取網絡適配器列表來識別目標適配器(以查詢哪些是RDMA 適配器)
Get-NetIPInterface
And specifically I'm looking for the vEthernet with the name of the virtual switch that my VM connects to. And I'm going to enable RDMA for the vEthernet, or the virtual network adapter that connects my server to the virtual switch named Adapter 1
Enable-NetAdapterRDMA "vethernet (Adapter 1)"
Now if you find that after creating and enabling these policies that things stop working the way they should or situations get worse removing these policies uses command very similar to the ones used to create the objects.Remove-NetQosTrafficClass "SMB"Remove-NetQosPolicy "SMB"