PFC(Priority Flow Control)及PFC Storm介绍

文章目录

  • PFC
  • PFC Storm

PFC

PFC是一种流量控制机制,用于保证网络中的无损传输,常用于RDMA网络中,以下具体介绍其机制。

PFC(Priority Flow Control)及PFC Storm介绍_第1张图片

如图所示,发送方的出端口发送数据包给接收方的入端口。在发送方的出端口,数据包在至多八个队列中排队发送,每个队列对应于一个优先级(这八个队列的数据发送是互相独立的,可以分开控制)。在接收端口,报文在相应的入端口队列中进行缓冲。

一旦入端口队列的长度大于一个特定的阈值(XOFF),接收方发送一个PFC暂停帧给对应的上游出队列。在出队列收到暂停帧后,它停止发送报文。一个暂停帧携带哪个优先级的通道需要被暂停和暂停的时间信息。一旦入队列长度低于另一个阈值(XON),接收方就发送一个带有零暂停时间的暂停帧来恢复数据的传输。

入端口需要为每个优先级通道保留一部分的缓冲空间,称之为headroom。其至少为BW*RTT,即需要为on-flight的报文保留的缓冲空间(当接收方发送暂停帧时,on-flight的数据大小为BW*RTT/2;当暂停帧从接收方传输到发送方的过程中,发送方又发送了大小为BW*RTT的数据)。

PFC是链路层协议,用于控制两个直接在链路层相连的端口之间的数据传输

PFC Storm

PFC(Priority Flow Control)及PFC Storm介绍_第2张图片

介绍一种PFC Storm,起源于NIC的接收pipeline出现的bug,这个bug放慢了NIC的接收过程,接收缓冲区就会不断地被无法及时处理的报文填满,结果就是这个NIC不断地发送PFC暂停帧。PFC Storm形成流程如下:

  1. 服务器0的NIC不断地向其ToR交换机发送暂停帧
  2. ToR交换机暂停其所有端口的接收,包括所有到Leaf交换机的上游端口
  3. Leaf交换机暂停Spine交换机
  4. Spine交换机暂停其余的Leaf交换机
  5. 其余的Leaf交换机暂停它们的ToR交换机
  6. ToR交换机暂停连接到它们的服务器

在这种情况下,一个单独的出问题的NIC就可以阻塞整个网络的传输。

你可能感兴趣的:(RDMA,网络,服务器)