请选择 进入手机版 | 继续访问电脑版

数据中心桥接协议解析

2017-7-4 01:50 129 0
0
摘要: ​声明:本文由UESTC计算机科学与组网系Du Jiong 学生 提供。简介iSCSI协议受益于DCB,因为它在数据包丢弃时消除了丢弃的数据包和TCP / IP协议的退避算法,从而平滑了iSCSI流量的响应时间。在融合以太网上有一种称为 ...

​声明:本文由UESTC计算机科学与组网系Du Jiong 学生 提供。


简介

iSCSI协议受益于DCB,因为它在数据包丢弃时消除了丢弃的数据包和TCP / IP协议的退避算法,从而平滑了iSCSI流量的响应时间。在融合以太网上有一种称为RoCE或RDMA的协议。RoCE要求DCB创建的无损网络结构实现一致的低延迟和高带宽。这基本上是通过以太网运行的InfiniBand API。Microsoft最新版本的文件服务协议,SMB Direct和Hyper-V Live Migration可以使用RoCE,并且还有一个称为iSER的iSCSI扩展,它用作为iSCSI数据流的RDMA替代TCP / IP。本文主要简介数据中心-云存储项目中常用的DCB(Data Center Bridging,数据中心桥接)协议。



概述

在企业中,传统数据中心通常会使用不同的技术来实现不同数据流量的传输,例如LAN(Local Area Network,以太网)技术用来实现IP流量的传输,SAN(Storage Area Network,存储网络)技术用来实现光纤通道存储流量的传输,除此之外,还会用InifiniBand技术来为高性能集群计算提供支持。此时,虽然通过不同的技术解决了数据中心业务需求,但是以上技术的结合使用也导致了企业将面临如下问题,并且随着数据中心规模的逐步增大,问题的严重性也日益增加;首先存在服务器兼容问题,不同的服务器需要多个专用适配器,同时也需要不同的布线系统;其次是设备统一管理问题,由于多套网络无法统一管理,因此需要不同的维护人员,这将导致设备的部署、配置、管理都会很困难。最后是设备成本问题,以上技术的结合使用导致机房需要支持更多的设备,随之而来的则是服务器的电费预算将上升,并且对于服务器的制冷要求也会增加。


以上只是硬件问题,不同的技术在满足QoS(Quality of Service,服务质量)的需求上也存在较大差异。例如,LAN流量允许丢包,只需要设备提供尽力而为的服务,丢包和乱序问题则由两端的主机来处理,不需要网络节点做过多的干预;SAN流量对丢包敏感,且要求报文在传输过程中是有序的;IPC(Inter-Process Communication,进程间通信)则对低延时要求很高。


多网融合是解决上述问题的方向,即将采用多种技术的网络整合成统一技术的网络。而随着以太网IP技术的高速发展,使用以太网来统一承载上述各种流量在数据中心得到了广泛应用;此外,为了进一步满足各种流量(尤其是SAN流量)的QoS需求,在传统以太网的基础上产生了DCB协议。


DCB协议是一组由IEEE 802.1工作组定义的以太网增强协议,广泛应用于现有的数据中心网络中。DCB协议充分利用了传统以太网的优势,通过增添多种关键扩展功能来为数据中心网络提供无损数据传输、低延时和物理链路带宽共享的功能。DCB协议的主要特性有:PFC(Priority-based Flow Control,基于优先级的流量控制)、ETS(Enhanced Transmission Selection,增强流量选择)、DCBX(Data Center Bridging Capabilities Exchange Protocol,数据中心桥接交换协议)和ECN(Explicit Congestion Notification,显示拥塞通告)。


PFC

PFC是一种对IEEE802.3定义的流控机制的增强技术,主要用于消除链路阻塞而导致的丢包。PFC属于DCB的一部分,适用于DCB网络中点到点的全双工链路。在传统的以太网流控机制中,当下游设备发现接收能力小于上游设备的发送能力时,会主动发一个Pause帧给上游设备,要求暂停流量的发送,上游设备等待一定时间后再继续发送数据。此时虽然能够解决流控问题,但是该机制是将链路上所有的流量都暂停,即流量暂停是针对整个接口,这与数据中心的链路共享机制发生了冲突。因为链路共享机制有两个要求:(1)一种类型的突发流量不能影响其他类型流量的转发;(2)一种类型的流量大量积压在队列中不能抢占其他类型的流量的缓存资源。所以,为了解决现有以太网流控机制和链路共享之间的冲突,产生了PFC机制。


PFC是一种基于优先级的流量控制机制。PFC可以在一条以太网物理链路上创建8个独立的虚拟通道,并为每条虚拟通道指定一个优先等级,允许单独暂停和重启其中任意一条虚拟通道,同时不影响其他通道的流量。其工作机制如下图所示。

Device A发送接口分成了8个优先级队列,Device B接收接口分成了8个接收缓存,两者一一对应。当Device B的端口上某个接收缓存即将产生拥塞时,向Device A发送一个反压信号“STOP”,Device A收到该信号后停止发送对应优先级队列的报文。“反压信号”实际上就是PFC帧,其具体报文格式如下图所示。

报文中各字段的定义如下表所示。

由此可见,PFC机制下流量暂停只针对某一个或几个优先级队列,不针对整个端口进行中断。这样将会使得每个队列都能单独进行暂停或重启,而不影响其他队列上的流量,从而实现了多种流量对链路的共享。而对于非PFC控制的优先级队列,系统则不进行反压处理,在发生拥塞时直接丢弃报文。


ETS

ETS是DCB的另一个重要组成部分,它主要是通过灵活的层次化调度来实现对QoS的高需求。ETS提供两级调度,分别为基于PG(Priority Group,优先级组)的调度和基于优先级的调度;ETS的调度流程如下图所示,即:首先,接口对PG进行第一级调度,然后针对PG内的不同优先级队列进行第二级调度。通过采用ETS技术,可以为网络中不同类型的流量提供不同的服务和带宽。

在ETS中定义了3个优先级组PG0、PG1和PG15,分别代表LAN流量、SAN流量和IPC流量。ETS协议根据不同流量的QoS需求规定了不同的调度方式。IEEE 802.1Qaz中定义了三种ETS调度算法:WRR(Weighted Round Robin,基于权重的轮询)算法、SP(Strict Priority,严格优先级)算法和CBS(Credit-Based Shaper,令牌整形调度)算法;ETS协议对三个优先级组PG0、PG1、PG15常见的调度方式是SP算法和WRR算法,其中PG15采用的是SP算法,主要是由于PG15承载的是IPC流量,对延时要求很高;PG0和PG1则采用了WRR算法,其主要承载的是LAN流量和SAN流量。同时,用户可以根据自身的实际需求对优先级组PG0、PG1、PG15等划分不同的带宽。

下面简要介绍SP算法和WRR算法。


SP算法

如图所示,SP算法要求严格按照优先级来发送队列中的报文,优先发送高优先级队列中的报文,当高优先级队列为空时,再发送低优先级队列中的报文,在图1-4中的8个队列中,队列7优先级最高,队列0优先级最低,所以先发送队列7中的报文,最后发送队列0的报文。根据以上原理,SP算法常用于通过将关键业务报文放入高优先级队列,从而保证这些业务的正常运行的场景。

WRR算法

WRR算法是一种常用的轮询调度算法,该算法先给每个队列分配一定的权重,然后在队列之间进行轮流调度。每个队列的权重决定了调度到该队列时可以发送的数据量。通过轮询,WRR算法保证每个队列都能得到调度,避免出现低优先级队列饿死的情况。WRR算法的工作过程如下图所示。


DCBX

在数据中心网络融合场景下,为实现上述以太网增强协议,链路两端的PFC和ETS的参数配置需要保持一致,因此对于PFC和ETS的参数需要进行配置。但是如果这些配置单纯依靠管理员手动设置,不仅工作量庞大而且极易出错。因此提出了DCBX协议,DCBX协议是一种链路发现协议,主要是为链路两端的设备发现并交换DCB配置信息提供了通信方式。


DCBX协议作为信息的载体,运行在点对点的链路上,用于通告本机的PFC、ETS等参数的配置信息,同时,它也期望接收对端发送的配置的信息用以引导本机配置。DCBX将需要交互的DCB配置信息封装到LLDP(Link Layer Discovery Protocol,链路层发现协议)中的TLV中,借由LLDP来进行链路两端设备的DCB配置交换。下面以DCB的PFC参数为例,简要说明LLDP承载DCBX的实现过程。

如上图所示,端口Port A和Port B已经开启了LLDP功能和DCBX功能。主要信息交互流程如下:首先,Port A的LLDP模块根据自己的报文发送周期定期地向Port B发送携带DCBX TLV的LLDP报文;然后,Port B收到LLDP报文后解析出DCBX TLV,将Port A的PFC参数通知给DCBX模块;最后,DCBX模块将Port A参数和本地的PFC参数进行比较,协商一致后生成配置文件,保证两端配置一致。DCBX的TLV结构定义如下图所示。

其中,Type字段固定为127,OUI字段固定为0x0080c2,Subtype字段为DCBX TLV承载的消息类型,包括ETS Configuration TLV、ETS Recommendation TLV和PFC Configuration TLV,其具体内容如下表所示。

ECN

传统的TCP/IP网络中,网络拥塞控制算法都是用包丢失作为指示信息,通知端系统网络中发生了拥塞,进而通过降低发送方的发送速率来减轻拥塞程度。

而ECN则采用了一种完全不同的方法,其核心思想是通过路由器标记IP头部的特定比特位来反映网络拥塞状况。当标记报文到达目的地址后,接收方使用下一个ACK通知发送方有拥塞发生,最后,发送方做出响应,缩小拥塞窗口,降低发送速率。

根据上图IP首部信息可知,ECN拥塞控制主要用到了IP首部TOS域中的最后两位,称作为ECN域,其字段定义如下表所示。当一个支持ECN的主机发送数据包时首先将ECN域设置为01或10,如果在该数据包的传输路径上的路由器支持ECN并且监测到拥塞信息,它将会把ECN域设置为11,表示网络出现拥塞。而如果ECN域已经被标记为11,下游路由器不会修改其值。

此外,ECN仍然需要传输层协议的支持。TCP使用6位保留位的后两位来支持ECN。其字段定义如下图所示。其中,ECE(ECN-Echo)标志位有两个作用:(1)在TCP三次握手中表明TCP端是否支持ECN;(2)在传输数据时表明接收到的TCP段的IP首部的ECN被设置为11,即出现了拥塞。CWR标志位为发送端缩小拥塞窗口标志,用来通知接收端它已经收到设置了ECE标志的ACK,并减小了发送窗口。当接收端收到CWR标志的包时,停止在接下来的ACK中设置ECE标志。


总结

DCB协议是一组由IEEE 802.1工作组定义的以太网增强协议,广泛应用于现有的数据中心网络中。DCB协议充分利用了传统以太网的优势,通过增添多种关键扩展功能来为数据中心网络提供无损数据传输、低延时和物理链路带宽共享的功能。


特别声明:更多详细内容请关注SSD PK 社区(www.pkssd.com)转载本文请务必保留原文所有内容,注明出处并包括本行及二维码。尊重知识,感谢您的阅读和支持!


每天一个段子:生物课讲基因工程,讲到代孕时,一二货问:老师,那可以把人的胚胎给猩猩代孕么?老师答曰:理论上是可以的,但你愿意你孩子从猩猩肚子里生出来么,以后你孩子问你他是从哪里来的你怎么回答?后排阴暗角落传来:来自星星“猩猩”的你…


注:本文由SSD PK社区提供,如有错误和不足之处欢迎在留言中批评指正,如果您喜欢本文,也可以分享给你的朋友。转载本文请务必保留原文出处,更多热门请关注SSD PK 社区网,www.pkssd.com是有关SSD最专业的社区网,提供全球有关SSD的最新热门资讯、各大厂商产品热门评测,最新前沿技术动态、有关企业级SSD选型以及最佳实践。


鲜花

握手

雷人

路过

鸡蛋
分享到

最新评论

    admin

    管理员
    这个人很懒什么都没写!
    • 37

    • 文章
    • 0

    • 收听
    • 0

    • 听众

    热门文章

    SSD社区微信公众号

    SSD社区微信公众号

    扫我关注
    返回顶部