本文节选自《DetectingTroubleshooting, and PreventingCongestion in Storage Networks 存储网络中拥塞处理》
MAC Address Learning
学习连接到远程VTEP 的设备的MAC 地址有两种常见方法。第一种方法使用基于组播的泛洪学习机制。第二种方法使用多协议边界网关协议(MPBGP)以太网VPN(EVPN)。无论VTEP 如何学习MAC 地址,数据路径保持不变,因此拥塞管理也保持不变。
Lossless Traffic over VXLAN
VXLAN 可根据IP 标头中的DSCP 字段对流量进行分类,并将其分配到无损队列,从而传输无损流量。前面有关第3 层PFC 的章节详细介绍了这一方案。
根据以太网CoS 字段对流量进行分类以实现第2 层PFC 的分类方案不足以通过VXLAN 传输无损流量,因为IEEE 802.1Q VLAN 标头不会在VXLAN 隧道中保留,因此会丢失CoS 值。
VXLAN Encapsulation
如图7-25 所示,入口VTEP 会将原始IP 报头中的DSCP 值复制到VXLAN 封装数据包的外部报头中。对于没有IP 报头的第2 层帧,外部数据包的DSCP 字段来自表7-1 中说明的CoS 到DSCP 映射。
VXLAN Decapsulation
如图7-25 所示,出口VTEP 会将外部VXLAN 数据包中的DSCP 值复制到解封装报头的IP 报头中。这被称为统一模式,是Cisco Nexus 9000 交换机的默认行为。如果需要,DSCP 字段值可以从内部IP 包头复制到解封装数据包。这称为管道模式。
Figure 7-25DSCP and ECN values during VXLAN encapsulation and decapsulation
Congestion Notification over VXLAN
在入口VTEP,入口数据包的ECN 值被复制到VXLAN 封装数据包的外部报头。在出口VTEP,ECN 值总是从外部VXLAN 数据包复制到解封装报头的IP 报头,而不管是统一模式还是管道模式。
Flow Control and Congestion Notification with VXLAN
对于VXLAN 来说,无损流量有两个考虑因素。首先是实现无损网络功能的逐跳流量控制(PFC)。这是强制性的。第二个可选考虑因素是,当检测到入口和出口VTEP 之间出现拥塞时,通知终端设备(ECN)。
请参见图7-26。目标-1(源)向主机-1(目的)发送流量。通过将无损流量分类为CS3 的DSCP 值并将其分配到无损队列,使用PFC 启用了逐跳流量控制。由于入口VTEP-1 会将原始数据包中的DSCP 值复制到外层报头,因此将CS3 标记的流量分配到脊柱交换机上的无损队列可在流量被封装到VXLAN 隧道时实现无损行为。
在出口VTEP-6 上,外部报头中的DSCP 值会被复制到解封装数据包中。因此,将CS3 标记的流量分配到所有设备上的无损队列可实现无损行为。这与非VXLAN 环境或非路由第2 层网络的行为相同。与VXLAN 的唯一区别在于如何将流量分类以分配到无损队列。
Figure 7-26PFC and ECN with VXLAN
对于拥塞通知,入口VTEP-1 会将原始报头中的ECN 值保留到封装数据包中。如果骨干交换机(或VXLAN 隧道路径中的任何交换机)发生拥塞,它会在外报头中用CE 标志(b'11')标记有ECN 功能的数据包(b'01'或b'10')。骨干交换机可能不知道IP 数据包属于VXLAN 隧道,也不知道数据包中还有另一个IP 报头。
因此,它们只标记外部报头。出口VTEP 会将外部报头中的ECN 值复制到解封装数据包中。当目的地收到这个CE 标记的数据包时,它会根据上层协议(如RCM)的功能做出反应。
Congestion Management in VXLAN
如上一节所述,将流量分类并分配到无损队列可保持流量的无损行为。这种配置必须在所有设备上保持一致,以保持端到端的无损行为。
Note the following points:请注意以下几点:
1. 了解拥塞:启用PFC 后,拥塞会在VXLAN 中蔓延,如前几节所述。当出口VTEP(或叶子交换机)的队列开始填满时,它会通过发送"暂停"帧来减缓不丢弃类中的入口流量。因此,骨干交换机会减慢该流量类中的所有流量,无论其是否采用VXLAN 封装。回顾一下,对于PFC 来说,数据包中添加多少报头并不重要。它只是使用DSCP 字段对流量进行分类和流量控制。拥塞扩散的最终状态与图7-8 中的解释类似。
2. 检测拥塞:拥塞检测方法与前一节中的解释类似。检测命令应考虑到VTEP 上的DSCP-CoS 映射。
3. 拥塞故障排除:拥塞故障排除方法仍与前一节所述类似。在查找拥塞源的同时,要关注交换端口或接口上的流量类别。特别是在骨干交换机上,不要被IP 地址误导,因为VXLAN 封装数据包的外层报头中包含入口和出口VTEP 的IP 地址。在同一VXLAN 隧道中传输多个流量(源IP 和目的IP)。因此,应重点监控无丢弃流量类的流量和暂停帧,而不是流量。
4. 拥塞预防:前面介绍的拥塞预防功能也适用于VXLAN。如果终端设备支持基于ECN 值的操作,那么无论VXLAN 底层网络如何,它都能发挥同样的作用。例如,RoCEv2 流量可通过VXLAN 传输,如果终端设备支持RCM,它也可与VXLAN 一起工作。
Summary
默认情况下,以太网通过丢弃帧(称为有损以太网)来处理拥塞,并依靠上层协议(如TCP)重传丢失的数据包。相反,无损以太网使用逐跳流量控制机制,通过发送暂停帧来减慢或停止传输。以太网链路上的所有流量都可以使用LLFC 进行流量控制。或者,PFC 可以选择性地只对特定流量类别进行流量控制。PFC 允许在同一链路上传输无损和有损流量,为融合以太网网络奠定了基础。
此外,ETS 为不同流量类别提供最低带宽保证,DCBX 简化了终端设备和交换机的配置。通过使用OSI 模型第2 层以太网VLAN 标头中的PCP/CoS 字段对流量进行分类,可以启用PFC。这种第2 层PFC 适用于FCoE 和RoCE。另外,对于RoCEv2(可路由RoCE),可在第3 层使用IP 标头中的DSCP 字段对流量进行分类,从而启用PFC。
无损以太网网络容易出现与光纤通道结构类似的拥塞,因为两者都使用逐跳流量控制。由于慢排空、链路利用率过高、比特错误或缺乏足够的缓冲区,拥塞也会在无损类中蔓延。同样的拥塞检测、故障排除和预防方法也适用于无损以太网网络。但无损以太网交换机可能不会报告所有相关指标。
值得注意的例子是TxWait 和RxWait 指标,在撰写本文时,Cisco Nexus 9000 交换机和UCS 服务器上还没有提供这些指标。下一个办法是使用暂停帧数来检测拥塞情况。但是,由于这些指标不会以时间和日期戳存储在交换机上,因此使用外部监控平台可以简化拥塞检测和故障排除。
在使用融合以太网网络时,有损类中的流量可能会影响无损类中的流量,这取决于问题是如何出现的。无论使用专用还是共享存储网络,都要监控每个端口级别和每个类别级别的流量利用率和拥塞指标。
利用暂停超时和PFC 看门狗可以实现无损以太网网络拥塞恢复。这些功能可在超时间隔后无法发送到目的地时丢弃帧,从而帮助释放缓冲区,使受害设备摆脱拥塞影响。
如果终端设备支持RoCEv2 拥塞管理,RoCEv2 网络还能通过向终端设备发出网络拥塞通知而获益,从而降低发送方的流量速率。无论采用哪种预防机制,都不应将这些机制作为长期解决方案。监控网络,找到根本原因,并尽快做出修正。
最后,请注意许多无损以太网网络相对较新。随着网络的发展和/或成熟,拥塞会变得更加严重。由于光纤通道Fabric 已大规模使用了几十年,因此必须从中吸取经验教训,并将这些知识应用到无损以太网网络中,以主动预防拥塞问题。
审核编辑:刘清
-
以太网
+关注
关注
40文章
5361浏览量
170974 -
交换机
+关注
关注
20文章
2615浏览量
99184 -
DSCP
+关注
关注
0文章
2浏览量
1339 -
存储网络
+关注
关注
0文章
31浏览量
8085 -
VxLAN
+关注
关注
0文章
23浏览量
3835
原文标题:以太网存储网络的拥塞管理连载(七)
文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论