PFC配置建议
建议在配置PFC功能之前,先对优先级进行规划,并结合队列调度功能,让不同的业务流量进入不同的队列进行转发,使协议报文以及需要无丢包的RoCEv2报文可以优先进行转发,让网络资源得以合理利用。
完成优先级规划后,再为需要无丢包传输的队列使能PFC。
优先级规划
- 队列7和6一般用于承载各种协议报文,为确保CNP报文的及时传递,CNP报文可以单独用队列6进行承载。
- 需要至少一个队列用来单独承载RoCEv2业务,映射到该队列的优先级需要使能PFC功能。推荐使用队列5、4和3来承载RoCEv2业务流量。
- 若为TCP/RoCE流量混跑场景,可以使用队列2和1来承载TCP业务流量。
- 推荐队列7和6采用SP调度(命令行为qos pq,也称为PQ调度模式),其他队列采用WDRR调度(命令行为qos drr),当采用WDRR调度时,推荐权重从大到小为:承载RoCEv2的队列>承载TCP的队列>0队列。
采用802.1p值
# 规划PFC功能基于802.1p值映射后的优先级进行反压,并规划RoCEv2的802.1p值为3,则根据表2-4可知,此时RoCEv2报文缺省走3队列。若Spine设备需要使用到报文的DSCP值时,可以在Leaf设备的上行接口上使能出方向的PHB(设备内部优先级)与DSCP值的映射功能。
<HUAWEI> system-view [~HUAWEI] interface 100ge 1/0/1 [~HUAWEI-100GE1/0/1] qos phb marking dscp enable
采用DSCP值
# 规划PFC功能基于DSCP映射后的优先级进行反压。已知服务器端RoCEv2的DSCP值为23、CNP报文的DSCP为24,期望RoCEv2由优先级3承载、CNP由优先级6承载,根据表2-5可知,缺省情况下的映射规则不满足期望。
则可以配置设备中的Diffserv Domain优先级映射模板如下,将RoCEv2的优先级映射为优先级3(走队列3),CNP报文的优先级映射为优先级6(走队列6)并配置为PQ调度。
<HUAWEI> system-view [~HUAWEI] diffserv domain ds1 [*HUAWEI-dsdomain-ds1] ip-dscp-inbound 23 phb af3 green //将RoCEv2的优先级映射为优先级3 [*HUAWEI-dsdomain-ds1] ip-dscp-inbound 24 phb cs6 green //将CNP报文的优先级映射为优先级6 [*HUAWEI-dsdomain-ds1] quit [*HUAWEI] interface 100ge 1/0/1 [*HUAWEI-100GE1/0/1] trust dscp //配置对报文按照DSCP优先级进行映射,缺省情况下,三层根据DSCP优先级对应的映射关系进行映射处理 [*HUAWEI-100GE1/0/1] trust upstream ds1 //在接口下应用Diffserv Domain优先级映射模板 [*HUAWEI-100GE1/0/1] qos pq 6 //配置接口队列6采用PQ调度,该配置为缺省配置,可以不配
DSCP值 |
设备内部优先级(服务等级) |
设备内部丢弃优先级(颜色) |
DSCP值 |
设备内部优先级(服务等级) |
设备内部丢弃优先级(颜色) |
---|---|---|---|---|---|
0 |
BE |
green |
32 |
AF4 |
green |
1 |
BE |
green |
33 |
AF4 |
green |
2 |
BE |
green |
34 |
AF4 |
green |
3 |
BE |
green |
35 |
AF4 |
green |
4 |
BE |
green |
36 |
AF4 |
yellow |
5 |
BE |
green |
37 |
AF4 |
green |
6 |
BE |
green |
38 |
AF4 |
red |
7 |
BE |
green |
39 |
AF4 |
green |
8 |
AF1 |
green |
40 |
EF |
green |
9 |
AF1 |
green |
41 |
EF |
green |
10 |
AF1 |
green |
42 |
EF |
green |
11 |
AF1 |
green |
43 |
EF |
green |
12 |
AF1 |
yellow |
44 |
EF |
green |
13 |
AF1 |
green |
45 |
EF |
green |
14 |
AF1 |
red |
46 |
EF |
green |
15 |
AF1 |
green |
47 |
EF |
green |
16 |
AF2 |
green |
48 |
CS6 |
green |
17 |
AF2 |
green |
49 |
CS6 |
green |
18 |
AF2 |
green |
50 |
CS6 |
green |
19 |
AF2 |
green |
51 |
CS6 |
green |
20 |
AF2 |
yellow |
52 |
CS6 |
green |
21 |
AF2 |
green |
53 |
CS6 |
green |
22 |
AF2 |
red |
54 |
CS6 |
green |
23 |
AF2 |
green |
55 |
CS6 |
green |
24 |
AF3 |
green |
56 |
CS7 |
green |
25 |
AF3 |
green |
57 |
CS7 |
green |
26 |
AF3 |
green |
58 |
CS7 |
green |
27 |
AF3 |
green |
59 |
CS7 |
green |
28 |
AF3 |
yellow |
60 |
CS7 |
green |
29 |
AF3 |
green |
61 |
CS7 |
green |
30 |
AF3 |
red |
62 |
CS7 |
green |
31 |
AF3 |
green |
63 |
CS7 |
green |
使能PFC
由于RoCEv2业务流量需要无丢包传输,所以需要为RoCEv2流量规划单独的优先级,并基于该流量优先级使能PFC功能。
# 若规划使用优先级3来承载网络中的RoCEv2流量,则需要在各个接口下针对优先级3使能PFC,并使能PFC功能基于DSCP映射后的优先级进行反压。
<HUAWEI> system-view [~HUAWEI] dcb pfc mypfc //创建一个PFC模板 [*HUAWEI-dcb-pfc-mypfc] priority 3 //使能优先级3的PFC功能 [*HUAWEI-dcb-pfc-mypfc] quit [*HUAWEI] interface 100ge 1/0/1 [*HUAWEI-100GE1/0/1] dcb pfc enable mypfc mode manual //配置接口下PFC的模式为强制模式 [*HUAWEI-100GE1/0/1] quit [*HUAWEI] dcb pfc dscp-mapping enable slot 1 //使能PFC功能基于DSCP映射后的优先级进行反压 [*HUAWEI] commit
重要注意事项:
- 当用户同时配置优先级映射和PFC功能时,对于已经使能PFC功能的优先级队列,请谨慎修改这些优先级在DiffServ域的优先级映射关系,否则可能导致PFC功能失效。
以下场景可能导致在队列拥塞时仍然无法触发PFC反压,功能不生效:
PFC反压触发门限配置过高。
队列缓存门限配置过低。
缓存管理的突发模式配置为低时延缓存模式。
查看PFC配置结果
<HUAWEI> display dcb pfc buffer Xon: PFC backpressure stop threshold Xoff: PFC backpressure threshold Hdrm: Headroom buffer threshold Guaranteed: PFC guaranteed buffer threshold The actual PFC backpressure stop threshold is the higher value between the value of xon and the difference between the value of xoff and the value of xon-offset. C:cells B:bytes K:kilobytes M:megabytes D:dynamic alpha ------------------------------------------------------------------------------------ Interface Queue Guaranteed Xon Xon-Offset Xoff Hdrm ------------------------------------------------------------------------------------ 100GE1/0/1 3 10(C) 50(C) 20(C) 85(C) 168(C) ------------------------------------------------------------------------------------