02-IPCC配置
本章节下载: 02-IPCC配置 (234.95 KB)
目 录
IPCC(Intelligent Proactive Congestion Control,智能主动拥塞控制)是一种以网络设备为核心的主动拥塞控制技术。IPCC功能在ECN功能基础上进行改进,可以智能识别设备端口的拥塞状态,主动发送CNP(Congestion Notification Packets,拥塞通知报文),准确控制服务器发送RoCEv2(RDMA over Converged Ethernet version 2)报文的速率,既可以确保拥塞时的及时降速,又可以避免拥塞已经缓解时的过度降速,最终确保网络的低时延和高吞吐。有关ECN功能的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。
IPCC功能仅对RoCEv2报文生效,RoCEv2是基于UDP协议封装的,报文格式如图1-1所示。
图1-1 RoCEv2报文格式
· Ethernet header:以太报文头,包括源MAC地址和目的MAC地址等信息。
· IP header:IP报文头,包括源IP地址和目的IP地址等信息。
· UDP header:UDP报文头,包括源端口号和目的端口号,其中RoCEv2报文的目的端口号为4791。
· Payload:消息负载。
· CRC和FCS:分别对应冗余检测和帧校验。
· InfiniBand Base Transport Header:InfiniBand传输层的头部字段,包含了RoCEv2报文的关键信息,IPCC功能涉及的主要字段如下。
¡ Opcode:表示RoCEv2的报文类型,具体类型如下。
- ConnectMsg:表示CM建链报文,此报文用于建立RoCEv2连接。建立RoCEv2连接后,本端和远端才能传递数据报文。
- Send:表示Send报文,此类报文用于发送端向远端请求传递数据,发送端不指定接收端存储数据的地址。
- Write:表示Write报文,此类报文用于发送端向远端请求写入数据,发送端会在报文中指定接收端存储数据的地址、key(关键值)和数据长度
- Read:表示Read报文,此类报文用于发送端向远端请求读取数据,发送端会在报文中会指定远端请求读取数据的地址、key和数据长度。
- ACK:表示ACK报文,远端每接收到一个RoCEv2报文后,均会反馈的应答消息。
以上Send、Write和Read类型的RoCEv2报文也被称为RoCEv2数据报文。
¡ Dest QP(Destination Queue Pair):目的QP,用来标识一条RoCEv2流。相当于RoCEv2报文中的目的端口,是用来建立RoCEv2流表的关键信息。
IPCC通常部署在数据中心网络场景中,在转发设备接收报文的接口上开启IPCC功能,可以实现智能主动拥塞控制。IPCC工作原理如图1-2所示。
图1-2 IPCC工作原理图
IPCC的工作过程包含以下几个步骤:
(1) 建立RoCEv2流表
转发设备上开启了IPCC功能的接口会对经过的RoCEv2数据报文进行复制并上送设备CPU处理:
a. 首先根据RoCEv2建链报文中的四元组信息关键值(RoCEv2流的客户端IP地址、RoCEv2流的服务器端IP地址、客户端的QP值、服务器端QP值)形成流表项,从而建立一个RoCEv2流表。
b. 再根据RoCEv2数据报文将流表与设备的转发接口关联。
通过上述步骤持续维护RoCEv2流表,就可以获知每条RoCEv2流的地址信息和转发路径。
(2) 智能计算拥塞通知报文数量
转发设备对接口中开启了IPCC功能的队列的队列长度进行检测,根据队列的拥塞状态智能计算主动发送的拥塞通知报文数量:
¡ 当队列长度增加时:如果此时队列缓存占用率较小,需要发送少量拥塞通知报文;如果此时队列缓存占用率较大,需要发送较多的拥塞通知报文,快速缓解队列拥塞,降低转发时延。
¡ 当队列长度减少时:如果此时队列缓存占用率较小,无需发送拥塞通知报文,防止降速造成吞吐下降;如果此时队列缓存占用率较大,需要发送少量拥塞通知报文,在尽量保证吞吐和时延性能的情况下缓解队列拥塞。
(3) 构造并发送拥塞通知报文
转发设备按照计算出的报文数目和RoCEv2流表中的地址信息构造拥塞通知报文,并向发送端主动发送拥塞通知报文,发送端收到拥塞通知报文后降低RoCEv2报文的发送速率。
IPCC功能需要安装License才能使用。当License到期或被卸载后,所有的IPCC功能将无法正常使用,请重新安装有效的License。关于License的详细介绍请参见“基础配置指导”中的“License管理”。
IPCC配置任务如下:
(1) 开启IPCC功能
(2) 对指定队列开启IPCC功能
(3) (可选)配置IPCC的工作模式
IPCC功能仅对RoCEv2报文生效。
配置本功能的同时,需要对指定队列开启IPCC功能(通过ipcc queue命令),否则配置不生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启IPCC功能。
ipcc enable
缺省情况下,IPCC功能处于关闭状态。
开启了本功能后,转发设备会对开启了IPCC功能的指定队列的队列长度进行检测,根据队列的拥塞状态智能计算出主动发送的拥塞通知报文数量,接着按照计算出的报文数目和RoCEv2流表中获取到的构造拥塞通知报文所需的字段信息来构造拥塞通知报文,向RoCEv2数据报文发送端主动发送拥塞通知报文,发送端收到拥塞通知报文后降低RoCEv2报文的发送速率。
在配置本功能的同时,需要通过ipcc enable命令开启指定接口的IPCC功能,否则配置不生效。
(1) 进入系统视图。
system-view
(2) 配置对指定队列开启IPCC功能。
ipcc queue queue-id
缺省情况下,未对任何队列开启IPCC功能。
当IPCC工作在高吞吐模式时,设备将更注重提升RoCEv2流量的吞吐,适用于转发流量较大且对传输时延不敏感的业务。对于流量规模不大且对时延较敏感的业务,建议配置为低时延模式。
(1) 进入系统视图。
system-view
(2) 配置IPCC的工作模式。
ipcc mode { high-throughput | low-latency }
在完成上述配置后,在任意视图下执行display命令可以显示配置后IPCC的运行情况,通过查看显示信息验证配置的效果。
表1-1 IPCC显示和维护
操作 |
命令 |
显示IPCC中设备主动发送的CNP报文统计信息 |
display ipcc statistics [ interface interface-type interface-number ] |
如图1-3所示,发送端服务器上部署了使用RoCEv2承载的存储业务,在Device的HundredGigE1/0/2接口上开启IPCC功能,准确控制发送端服务器发送RoCEv2报文的速率,确保网络中RoCEv2业务的低时延和高吞吐。
图1-3 IPCC功能配置组网图
(1) 配置IP地址
请按照图1-3配置各接口的IP地址和子网掩码,具体配置过程略。
(2) 配置IPCC功能
# 开启IPCC功能。
<Device> system-view
[Device] interface hundredgige 1/0/2
[Device-HundredGigE1/0/2] ipcc enable
[Device-HundredGigE1/0/2] quit
# 配置对队列4开启IPCC功能。
[Device] ipcc queue 4
# 配置IPCC的工作模式为低时延模式。
[Device] ipcc mode low-latency
# 查看设备主动发送的CNP报文统计信息。
<Device> display ipcc statistics
Total statistics:
RoCEv2 flow entries: 1
Interface statistics of HGE1/0/2
CNP number: 3
RoCEv2 flow entries: 1
Flow information:
---------------------------------------------
DIP SIP DQP
---------------------------------------------
12.110.2.2 11.110.2.2 2090
----------------------------------------------
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!