3. DSCP-BASEDPFC
在本小节中,我们测试了原始的基于VLAN的PFC面对的问题,并提出了基于DSCP的PFC方案。基于VLAN的PFC暂停帧中,VLAN TAG中包含了数据包优先级和VID,但是优先级和VID在部署中引发了两个严重的问题,因此提出了基于DSCP的PFC方案。
暂停帧是一个二层帧,并没有VLAN标签,数据包的VLAN标签有四部分,TPID被固定为0x8100,DEI(Drop Eligible Indicator丢弃符合条件的指标),PCP(Priority Code Point)包含数据包的优先级,VID(VLAN identifier)是数据包的VLAN ID。
尽管我们只需要PCP,但是PCP和VID是不可分离的,因此,为了支持PFC, 我们必须在服务器端和交换机端都配置VLAN。为了使得交换机端口支持VLAN,我们需要把面向交换机端口的服务器设置为trunk模式(支持VLAN标记的数据包),而不是access模式(发送和接收的都是没有标记的数据包)。基本的PFC功能都是使用这种配置,但是会引发两个问题。
第一,交换机的trunk模式和操作系统提供的服务有不利的交互。OS provisioning是一个基本服务,当服务器OS需要更新或者安装,或者当服务器需要被修复和供应的时候,需要运行这个基本服务。在我们的数据中心中,OS provisioning必须自动完成。我们使用PXE boot来安装OS。当服务器经过PXE boot的时候,它的NIC没有VLAN配置,结果就是不能发送和接收带有VLAN标签的数据包,但是由于面向服务器端口配置成