Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 CoS 调度行为和配置注意事项

许多因素会影响调度配置和带宽要求,包括:

  • 为转发类(每个转发类都映射到一个队列)或转发类集(优先级组)配置带宽时,交换机仅将这些数据视为配置的带宽。交换机不考虑前言和帧间差距 (IFG) 消耗的带宽。因此,在计算和配置转发类或转发类集的带宽要求时,请考虑前言和 IFG 以及计算中的数据。

  • 将转发类配置为在交换机上传输流量(而非仅使用默认转发类)时,还必须为用户配置的转发类定义调度策略。某些交换机支持增强型传输选择 (ETS) 分层端口调度,有些交换机支持直接端口计划,有些交换机支持这两种计划方法。

    对于 ETS 分层端口调度,使用 ETS 定义分层计划策略意味着:

    • 将调度器映射到调度器图中的转发类

    • 包括转发类集中的转发类

    • 将调度器图与流量控制配置文件相关联

    • 将流量控制配置文件连接到转发类集和接口

    在支持端口调度的交换机上,定义调度策略意味着:

    • 将调度器映射到调度器图中的转发类。

    • 将调度器图应用于一个或多个接口。

  • 在每个物理接口上,要么接口上使用的所有转发类都必须配置重写规则,要么接口上使用的转发类无法配置重写规则。在任何物理端口上,请勿将转发类与重写规则混用,也不得将转发类与未重写规则的转发类混在一起。

  • 对于同时携带内部 VLAN 标记和外部 VLAN 标记的数据包,重写规则仅重写外部 VLAN 标记。

  • 对于 ETS 分层端口调度,为转发类配置最小保证带宽 (transmit-rate) 不起作用,除非您还为流量控制配置文件中设置的转发类配置最小保证带宽 (guaranteed-rate)。

    此外,转发类集中转发类的传输速率之和不应超过转发类集的保证速率。(无法保证队列的最低带宽大于整个队列组保证的最低带宽。)如果配置的传输速率总和超过转发类集的保证速率,则提交检查失败,系统会拒绝配置。

  • 对于 ETS 分层端口调度,转发类设置保证速率的总和不能超过端口带宽总和。如果配置了总和超过端口带宽的保证速率,系统将发送一条系统日志消息,通知您配置无效。但是,系统不执行提交检查。如果提交的配置保证速率之和超过端口带宽,则分层计划程序的表现将不可预测。

  • 对于 ETS 分层端口调度,如果将一个转发类集配置为 guaranteed-rate 百分比,请将与该转发类集关联的所有传输速率配置为百分比。在这种情况下,如果任何传输速率配置为绝对值而非百分比,则配置无效,系统会发送一条 syslog 消息。

  • 如果要配置严格的高优先级队列(转发类),需要考虑以下几个因素:

    • 在 QFX5200、QFX3500 和 QFX3600 交换机上,以及 QFabric 系统上,您只能配置一个严格高优先级队列(转发类)。

      在 QFX5100 和 EX4600 交换机上,您只能将一个转发类集(优先级组)配置为严格高优先级。属于该严格高转发类集的所有队列随后都充当严格高队列。

      在 QFX10000 交换机上,您可以配置的严格高优先级队列数量没有限制。

    • 您无法为 QFX5200、QFX5100、EX4600、QFX3500 和 QFX3600 交换机以及 QFabric 系统上的严格高优先级队列配置最小保证带宽 (transmit-rate)。

      在 QFX5200 和 QFX10000 交换机上,您可以设置 transmit-rate 严格高优先级队列,对队列视为严格高优先级流量的流量设置限制。超过该 transmit-rate 流量的流量被视为尽力流量,并接收多余的带宽共享权重为“1”,即严格高优先级的队列可以在端口上共享的额外带宽比例。不严格高优先级队列的队列使用传输速率(默认)或配置的剩余速率来确定队列可以共享的额外端口带宽的比例(权重)。但是,您无法在严格高优先级队列上配置多余的速率,也不能在严格高优先级队列上更改 “1” 的多余的带宽共享权重。

      对于 ETS 分层端口调度,您无法为包含严格高优先级队列的转发类集配置最小保证带宽 (guaranteed-rate)。

    • 除 QFX10000 交换机外,仅对于 ETS 分层端口调度,您必须为严格高优先级队列创建单独的转发类集。在 QFX10000 交换机上,您可以在同一转发类集中混合使用严格优先级和低优先级队列。

    • 除 QFX10000 交换机外,对于 ETS 分层端口调度,只有一个转发类集可包含严格高优先级队列。在 QFX10000 交换机上,此限制不适用。

    • 除 QFX10000 交换机外,对于 ETS 分层端口调度,严格高优先级队列不能属于与不严格高优先级的队列相同的转发类。(在一个转发类集中,不能将严格高优先级的转发类与不严格高优先级的转发类混用。)在 QFX10000 交换机上,您可以在同一转发类集中混合使用严格优先级和低优先级队列。

    • 对于为单播和多播(组播、广播和目标查找失败)流量使用不同的转发类集的交换机上的 ETS 层次端口调度,严格高优先级队列不能属于多配置转发类集。

    • 在 QFX10000 系统上,建议始终在严格高优先级队列上配置传输速率,以防止它们使其他队列匮乏。如果不应用传输速率来限制严格高优先级队列可以使用的带宽,则严格高优先级队列可以使用所有可用端口带宽,使端口上的其他队列匮乏。

      在 QFX5200、QFX5100、EX4600、QFX3500 和 QFX3600 交换机上,以及 QFabric 系统上,建议始终对严格高优先级的队列应用整形速率,以防止其使其他队列匮乏。如果不应用整形速率来限制严格高优先级队列可以使用的带宽,则严格高优先级队列可以使用所有可用的端口带宽,使端口上的其他队列匮乏。

  • 在 QFabric 系统上,如果包含传出数据包的任何队列连续 12 秒未传输数据包,则端口会自动重置。队列无法连续 12 秒传输数据包可能是由于:

    • 一个占用所有端口带宽的严格高优先级队列

    • 多个队列占用了所有端口带宽

    • 任何队列或端口接收 基于连续基于优先级的流控制 (PFC) 或 802.3x 以太网 PAUSE 消息(接收的 PFC 和 PAUSE 消息分别阻止队列或端口因网络拥塞而传输数据包)

    • 阻止队列连续 12 秒获得端口带宽的其他情况

    如果原因是严格高优先级队列占用了所有端口带宽,请使用速率整形为严格高优先级队列配置最大速率,并阻止其使用所有端口带宽。要配置速率整形,请在 shaping-rate (rate | percent percentage) 层次结构级别包含该语句 [edit class-of-service schedulers scheduler-name] ,并将整形速率应用于严格高优先级时间表。建议始终对严格优先级的流量应用整形速率,以防止严格高优先级的队列使其他队列匮乏。

    如果多个队列占用了所有端口带宽,您可以使用调度器对队列进行速率整形,并阻止它们使用所有端口带宽。

  • 对于 1 Gbps 以下的传输速率,建议将传输速率配置为百分比,而不是固定速率。这是因为系统将固定利率转换为百分比,并可能将小的固定利率四舍五入为较低的百分比。例如,350 Mbps 的固定速率将四舍五入为 3%,而不是 3.5%。

  • 为队列或优先级组 (shaping-rate) 设置 100 Kbps 或以下的最大带宽时,流量整形行为仅在配置的 shaping-rate+/– 20% 内准确。

  • 在 QFX10000 交换机上,使用 [edit class-of-service interfaces lag-interface-name scheduler-map scheduler-map-name] 语句在 LAG 接口上配置速率整形 ([set class-of-service schedulers scheduler-name transmit-rate (rate | percentage) exact),可能会导致计划流量流接收的 LAG 链路带宽超出预期。

    您可以在调度器中配置速率整形,以设置分配给端口上特定输出队列上转发类的流量的最大带宽。例如,您可以使用调度器对分配给映射到队列 0 的最佳转发类的流量进行速率整形,然后使用调度器映射将调度器应用到接口,以便为映射到该端口上队列 0 的尽力流量设置最大带宽。使用选项时 exact ,尽力转发的流量只能占用传输速率指定的端口带宽。

    LAG 接口由两条或更多以太网链路捆绑在一起,作为单个接口运行。交换机可以将进入 LAG 接口的流量散列到 LAG 接口中的任何成员链路上。配置速率整形并将其应用于 LAG 接口时,交换机将速率整形应用于流量的方式取决于交换机将流量散列到 LAG 链路上的方式。

    为了说明链路散列如何影响交换机将整形速率应用于 LAG 流量的方式,让我们看一下具有两个成员链路(和xe-0/0/21)的 LAG 接口 ()。ae0xe-0/0/20在 LAG ae0上,我们为分配给best-effort转发类(映射到输出队列0)的2g流量配置速率整形。当转发类中的best-effort流量到达 LAG 接口时,交换机会将流量散列到两个成员链路之一上。

    如果交换机将所有 best-effort 流量散列到同一 LAG 链路上,则该链路上的最大流量将接收 2g 带宽。在这种情况下,LAG 上尽力流量的预期累计限制为 2g。

    但是,如果交换机将 best-effort 流量散列到两个 LAG 链路上,则 流量在每个 LAG 链路上接收的最大 2g 带宽,而不是 2g 作为整个 LAG 的累计总带宽,因此尽力流量在 LAG 上接收的最大值为 4g,而不是速率整形配置设置的 2g。当散列在多个 LAG 链路之间散列分配给输出队列(映射到一个转发类)的流量时,LAG 上的有效速率整形(累计最大带宽)为:

    (LAG 成员接口数)x(输出队列的速率整形)= 累计 LAG 速率整形

  • 在使用虚拟输出队列 (VOQ) 的交换机上,如果一个入口端口将流量转发至多个出口端口,并且其中至少有一个出口端口出现拥塞,则入口端口拥塞在出口端口拥塞期间可能会发生。如果发生这种情况,拥塞的出口端口可能会导致入口端口超过其入口缓冲区资源的公平分配。当入口端口超过其缓冲区资源分配时,将丢弃入口处的帧。入口端口帧丢失不仅会影响拥塞的出口端口,还会影响拥塞入口端口转发流量的所有出口端口。

    如果拥塞的入口端口丢弃了发往一个或多个不拥塞出口端口的流量,请配置加权随机早期检测 (WRED) 丢弃配置文件,并将其应用于导致拥塞的出口队列。丢弃配置文件可通过在出口处丢弃帧而不是在入口端口造成拥塞来防止拥塞的出口队列影响其他端口上的出口队列。

    注意:

    在支持无损传输的系统上,请勿为无损转发类(如默认 fcoeno-loss 转发类)配置丢弃配置文件。FCoE 和其他无损流量队列需要无损行为。使用基于优先级的流控制 (PFC) 来防止无损优先级上的帧丢弃。

  • 对于单播和多播流量使用不同的分类器并支持无损传输的系统上,在入口端口上,不会配置将同一 IEEE 802.1p 代码点映射到多播流量和无损单播流量(如默认无损 fcoeno-loss 转发类)的分类器。不应使用端口上用于多播流量的任何代码点将单播流量分类为同一端口上的无损转发类。

    如果多兆信息流和无损单播流量在端口上使用同一代码点,则多征流量的处理方式与无损流量处理方式相同。例如,如果对无损流量应用基于优先级的流控制 (PFC),则同一代码点的多配置流量也会暂停。在拥塞期间,将多配置流量与无损单播流量处理相同,可能会为多部署流量造成入口端口拥塞,并影响多配置流量使用的所有出口端口上的多配置流量。

    例如,以下配置可能导致多部署流的入口端口拥塞:

    1. 对于单播流量,IEEE 802.1p 代码点 011 可分为 fcoe 转发类:

    2. 对于多摄取流量,IEEE 802.1p 代码点 011 分为 mcast 转发类:

    3. 将带有代码点 011 的流量映射到 fcoe 转发类的单播分类器映射到接口 xe-0/0/1

    4. 将带有代码点 011 的流量映射到转发类的多 mcast 配置分类器映射到所有接口(多摄取流量映射到所有接口,不能映射到单个接口):

      由于同一代码点 (011) 会将单播流量映射到无损流量,并将多部署流量映射到多部署流量,因此在拥塞期间,多部署流量可能会遇到入口端口拥塞的情况。

    为避免入口端口拥塞,请勿将多配置流量使用的代码点映射到无损单播流量。例如:

    1. 将代码点 011 分类到转发类中 fcoe ,而不是将代码点 011 分类为 best-effort 转发类:

    2. 由于代码点 011 不会将单播流量映射到无损流量,因此在拥塞期间,多配置流量不会遇到入口端口拥塞。

    最佳做法是使用 IEEE 802.1p 代码点对单播流量进行分类,这些代码点也用于将多路摄取流量分类为尽力而为转发类。