01-IPCC配置
本章节下载: 01-IPCC配置 (249.31 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配置任务如下:
(1) 开启IPCC功能
(2) 对指定队列开启IPCC功能
(3) (可选)配置IPCC的工作模式
(5) (可选)配置NAK报文统计功能
IPCC功能仅对RoCEv2报文生效。
配置本功能的同时,需要对指定队列开启IPCC功能(通过ipcc queue命令),否则配置不生效。
IPCC功能是基于全局双向流的RoCEv2流量分析功能。如果IPCC和Netanalysis同时使能,则必须配置NetAnalysis功能的工作模式为双向模式,并且netanalysis rocev2 statistics命令不能配置acl参数。有关NetAnalysis功能的详细介绍,请参见“网络监控与管理配置指导”中的“NetAnalysis”。
(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 }
在RoCEv2组网中,当接收端服务器收到携带拥塞标记(ECN)的报文后,会向源端服务器发送CNP报文(Congestion Notification Packets,拥塞通知报文),以通知发送端服务器降低发送报文的速率,从而缓解拥塞。
开启本功能后会开始统计接口通过的CNP报文,统计信息可通过display cnp statistics命令查看。
当聚合接口及其成员口同时配置本功能,仅在成员口上统计通过的报文。如果聚合接口中部分成员口未配置本功能,则聚合口会统计未配置本功能的成员口上通过的报文。
仅支持接口入方向的CNP报文统计。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置CNP报文统计功能。
cnp statistics enable
缺省情况下,CNP报文统计功能处于关闭状态。
在RoCEv2组网中,当接收端服务器检测到收到了错误的数据包(例如,数据包丢失,损坏),会生成并发送NAK(Negative Acknowledgment,否定确认)报文给源端服务器。源端服务器收到NAK报文后,会根据NAK报文中的信息识别需要重传的数据包,并进行重传,以确保数据完整性和可靠性。
开启本功能后会开始统计接口通过的NAK报文,统计信息可通过display nak statistics命令查看。
当聚合接口及其成员口同时配置本功能,仅在成员口上统计通过的报文。如果聚合接口中部分成员口未配置本功能,则聚合口会统计未配置本功能的成员口上通过的报文。
仅支持接口入方向的NAK报文统计。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置NAK报文统计功能。
nak statistics enable
缺省情况下,NAK报文统计功能处于关闭状态。
可在任意视图下执行以下命令:
· 显示IPCC中设备主动发送的CNP报文统计信息
display ipcc statistics [ interface interface-type interface-number ]
· 显示CNP报文统计信息
display cnp statistics interface [ interface-type [ interface-number ] ]
· 显示NAK报文统计信息
display nak statistics interface [ interface-type [ interface-number ] ]
请在用户视图下执行以下命令:
· 清除CNP报文统计信息
reset cnp statistics interface [ interface-type [ interface-number ] ]
· 清除NAK报文统计信息
reset nak statistics interface [ interface-type [ interface-number ] ]
如图1-3所示,发送端服务器上部署了使用RoCEv2承载的存储业务,在Device的FourHundredGigE1/0/2接口上开启IPCC功能,准确控制发送端服务器发送RoCEv2报文的速率,确保网络中RoCEv2业务的低时延和高吞吐。
图1-3 IPCC功能配置组网图
(1) 配置IP地址
请按照图1-3配置各接口的IP地址和子网掩码,具体配置过程略。
(2) 配置IPCC功能
# 开启IPCC功能。
<Device> system-view
[Device] interface fourhundredgige 1/0/2
[Device-FourHundredGigE1/0/2] ipcc enable
[Device-FourHundredGigE1/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 400GE1/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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
