如何在RoCEv2无损网络中配置Windows Server 2016与交换机嵌入式组合

本文档提供了在RoCEv2无损网络上使用交换机嵌入式组合(SET)技术部署Windows Server 2016的详细步骤。

文档目录

Created on Aug 8, 2019

Introduction

本文档提供了在RoCEv2无损网络上使用SET技术部署Windows Server 2016的详细步骤。

交换机嵌入式组合(SET)是一种替代NIC组合的解决方案,可用于包含Hyper-V和Windows Server 2016中软件定义网络(SDN)堆栈的环境。SET将部分NIC组合功能集成到Hyper-V虚拟交换机中。SET允许您将1到8个物理以太网网卡组合成一个或多个基于软件的虚拟网卡。这些虚拟网卡在网络适配器故障时提供快速性能和容错能力。

表1:缩写

Definitions/Abbreviation Description
RoCE RDMA over Converged Ethernet
RoCEv2 Internet layer protocol which means that RoCE v2 packets can be routed
TOR Top of Rack Switch
vSwitch Hyper-V Virtual Switch
hNIC Host vNIC – Virtual NIC from vSwitch
pNIC Physical NIC
SET Switch Embedded Teaming

References

HowTo Configure Mellanox Spectrum Switch for Lossless RoCE

How To Configure MLAG on Mellanox 交换机

HowTo Configure MAGP on Mellanox 交换机

Solution Overview

Solution Logical Design

下图显示了一个示例配置。

image2019-8-8_14-2-34.png

Deployment Guide

Network / Fabric Deployment and Configuration

请使用此文档为NVIDIA Spectrum交换机配置无损RoCE。

请使用此文档为NVIDIA交换机配置IPL。

您必须为Host vNIC适配器中使用的每个VLAN ID配置MAGP。请使用此文档在NVIDIA交换机上配置MAGP。

Host Deployment and Configuration

Physical Host QoS configuration

  1. 开启数据中心桥接。

    Install-WindowsFeature Data-Center-Bridging
    

    Success Restart Needed Exit Code Feature Result


    True No Success {Data Center Bridging}

  1. 为SMB-Direct设置策略。

    New-NetQosPolicy "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3
    

    Name : SMB Owner : Group Policy (Machine) NetworkProfile : All Precedence : 127 JobObject : NetDirectPort : 445 PriorityValue : 3

  1. 为接口上的其他流量设置策略。

    New-NetQosPolicy "DEFAULT" -Default -PriorityValue8021Action 0
    

    Name : DEFAULT Owner : Group Policy (Machine) NetworkProfile : All Precedence : 127 Template : Default JobObject : PriorityValue : 0

  1. 为SMB开启流控制。

    Enable-NetQosFlowControl -priority 3
    Get-NetQosFlowControl
    

    Priority Enabled PolicySet IfIndex IfAlias


    0 False Global 1 False Global 2 False Global 3 True Global 4 False Global

创建SET模式虚拟交换机及主机虚拟网卡

  1. 创建交换机嵌入式组合模式的虚拟交换机
New-VMSwitch –Name "VSWSET" –NetAdapterName "pNIC1","pNIC2" -EnableEmbeddedTeaming $true -AllowManagementOS $true

输出示例:

Name     SwitchType NetAdapterInterfaceDescription
----     ---------- ------------------------------
VSWSET   External   Teamed-Interface
  1. 列出逻辑交换机中的物理适配器(含SET)
Get-VMSwitchTeam -Name VSWSET | FL

输出示例:

Name : VSWSET
Id : bff9d6c4-4259-4db2-8432-4870117f0da3
NetAdapterInterfaceDescription : {Mellanox ConnectX-4 VPI Adapter, Mellanox ConnectX-4 VPI Adapter #2}
TeamingMode : SwitchIndependent
LoadBalancingAlgorithm : Dynamic
  1. 为防止两个物理网卡对出口流量自动打上错误的VLAN ID,请移除ACCESS VLAN设置,并过滤与ACCESS VLAN ID不匹配的入口流量
Set-NetAdapterAdvancedProperty -Name "pNIC1" -RegistryKeyword VlanID -RegistryValue "0"
Set-NetAdapterAdvancedProperty -Name "pNIC2" -RegistryKeyword VlanID -RegistryValue "0"
  1. 创建管理网卡,以便为RDMA使用独立的主机虚拟网卡实例,并设置VLAN ID 101
Rename-VMNetworkAdapter -ManagementOS -Name "VSWSET" -NewName "MGMT"
Set-VMNetworkAdapterVlan -VMNetworkAdapterName "MGMT" -VlanId "101" -Access -ManagementOS
  1. 在管理主机虚拟网卡上设置优先级标记
Set-VMNetworkAdapter -ManagementOS -Name "MGMT" -IeeePriorityTag on
  1. 创建两个用于RDMA的主机虚拟网卡,并设置VLAN ID 102
Add-VMNetworkAdapter –SwitchName "VSWSET" –Name SMB1 –ManagementOS
Add-VMNetworkAdapter –SwitchName "VSWSET" –Name SMB2 –ManagementOS
Get-VMNetworkAdapter –ManagementOS

输出示例:

Name            InterfaceDescription                     ifIndex Status  MacAddress         LinkSpeed
----            --------------------                     ------- ------  ----------         ---------
vEthernet (SMB1) Hyper-V Virtual Ethernet Adapter #2     6       Up      00-1D-D8-B7-1C-11 200 Gbps
vEthernet (SMB2) Hyper-V Virtual Ethernet Adapter #3     18      Up      00-1D-D8-B7-1C-0E 200 Gbps
vEthernet (MGMT) Hyper-V Virtual Ethernet Adapter       16      Up      00-1D-D8-B7-1C-01 200 Gbps
Set-VMNetworkAdapterVlan -VMNetworkAdapterName "SMB1" -VlanId "102" -Access -ManagementOS
Set-VMNetworkAdapterVlan -VMNetworkAdapterName "SMB2" -VlanId "102" -Access -ManagementOS
Get-VMNetworkAdapterVlan -ManagementOS

输出示例:

VMName VMNetworkAdapterName Mode   VlanList
------ -------------------- ----   --------
       SMB1                 Access 102
       MGMT                 Access 101
       SMB2                 Access 102
  1. 由于专用于存储的虚拟网卡绑定到SET,需要创建虚拟网卡与物理网卡之间的关联,确保主机上某个虚拟网卡(存储虚拟网卡)的流量使用特定的物理网卡发送,从而通过更短的路径
Set-VMNetworkAdapterTeamMapping -ManagementOS -SwitchName VSWSET -VMNetworkAdapterName "SMB1" -PhysicalNetAdapterName "pNIC1"
Set-VMNetworkAdapterTeamMapping -ManagementOS -SwitchName VSWSET -VMNetworkAdapterName "SMB2" -PhysicalNetAdapterName "pNIC2"
  1. 在RDMA主机虚拟网卡上设置优先级标记(PCP模式),并启用RDMA
Set-VMNetworkAdapter -ManagementOS -Name "SMB1" -IeeePriorityTag on
Set-VMNetworkAdapter -ManagementOS -Name "SMB2" -IeeePriorityTag on
Enable-NetAdapterRdma -Name "vEthernet (SMB1)"
Enable-NetAdapterRdma -Name "vEthernet (SMB2)"

性能测试

请为每个启用RDMA的主机虚拟网卡分配IP地址,并使用TEST-RDMA.PS1 PowerShell脚本进行测试。

示例:

  1. 启用 RDMA(参数 -IsRoCE $true
C:\TESTS\Test-RDMA.PS1 -IfIndex 6 -IsRoCE $true -RemoteIpAddress 192.168.2.2 -PathToDiskspd C:\TESTS\Diskspd-v2.0.17\amd64fre\
  1. 禁用 RDMA(参数 -IsRoCE $False
C:\TESTS\Test-RDMA.PS1 -IfIndex 6 -IsRoCE $False -RemoteIpAddress 192.168.2.2 -PathToDiskspd C:\TESTS\Diskspd-v2.0.17\amd64fre\

完成。