logo好方法网

数据中心网络流量负载的均衡方法


技术摘要:
本发明公开了一种数据中心网络流量负载的均衡方法,主要解决现有技术存在小流阻塞和哈希碰撞的问题。其方案是:发送端主机根据数据流已发送字节量区分大流和小流;对于小流,交换机以数据包粒度为每一个数据包随机选择输出端口转发,保证小流的完成时间;对于大流,发  全部
背景技术:
数据中心在世界各地广泛建设和发展,已成为社会各行业必需的基础设施,在人 们日常生活中产生深刻影响。思科对全球数据中心流量统计分析显示,数据中心内部流量 占比高达71.5%,可以看出,作为数据中心内部专用网络的数据中心网络承载巨额流量,性 能受到很大挑战,由此成为各界研究和关注的热点。数据中心网络需要一种有效的负载均 衡方法来提高链路利用率,以支持从大数据到云计算等应用程序。 目前,数据中心网络常用的负载均衡方法为等价多路径路由策略ECMP。开放式最 短路径优先OSPF、中间系统到中间系统ISIS等各种路由协议也已明确支持ECMP。ECMP通过 对数据包报头中的字段进行简单的哈希运算选择下一跳地址,将一条流映射到其中一条等 价路径上。ECMP是一种静态的,随机的,主动的方法,可在交换机中逐条运行,部署简单,因 此得到广泛应用。 ECMP在实际应用中主要存在以下两个问题。 第一,ECMP对链路状态无感知,在极端情况下,所有输入流会被分配到同一路径而 其他路径处于闲置状态,这种情况称为哈希碰撞,如图1所示。图1中大流1和大流2,交换机 A1为两条大流选择了相同的路径C3-A8,形成瓶颈,即哈希碰撞。发生哈希碰撞后,碰撞路径 无法同时满足多条流的带宽需求,进而产生拥塞,降低了网络性能。 第二,ECMP不区分大小流,当小流和大流共用一条路径时,小流大概率会在输出端 口处排在大流后面,这种情况称为小流阻塞,如图2所示。图2中ECMP不区分大小流,当小流1 和大流共用一条路径时,小流1的概率会在输出端口处排在大流后面,形成小流阻塞。由于 大流多由数据备份,数据存储等对带宽需求量大的应用产生,单条流字节数较高,在交换机 缓冲区占用空间较大,导致队列较长,而小流多为在线游戏等即时通讯类应用产生,单条流 字节数较少,对时延要求较高。一旦发生小流阻塞,小流会经历较长的排队时延,增加小流 的完成时间,恶化网络性能。 因此,需要设计一种有效的负载均衡方法,以满足数据中心网络性能需求。理想的 负载均衡方法应该是能感知链路状态,并根据感知的结果对大小流区分调度,尽可能将流 适当地分配到多条等价路径上,实现负载均衡。 现有的一些数据中心网络负载均衡方法,如前述的ECMP和其他方法如随机包扩散 RPS、数字反转跳变法DRB对链路状态无感知;拥塞感知均衡CONGA,逐跳链路利用率感知负 载均衡架构HULA实现了链路状态感知,但这些方法依赖于定制硬件实现,可部署性差;动态 流调度法Hedera、大小流区分调度法DiffFlow、自适应大小流区分调度法Freeway等方法实 现了大小流区分调度,但存在调度周期过长,可扩展性差等问题。 此外,现有方案还提供了不同的负载均衡方法,例如流切片重路由,集中式流量调 4 CN 111585911 A 说 明 书 2/6 页 度等。流切片是对数据流的切分,若一条流两个连续到达的数据包之间的时间间隔超过预 设的时间间隔,即可认为第二个数据包及其之后的数据包为一条流切片,但流切片缺乏及 时性,无法避免链路上短时间内的流量不均;而集中式流量调度方法受限于集中控制器的 性能,缺乏灵活性。
技术实现要素:
本发明的目的在于针对上述现有技术的不足,提出一种数据中心网络流量负载的 均衡方法,以缓解数据中心网络中当字节量不同的数据流共存时引发的小流阻塞和哈希碰 撞问题,降低小流的完成时间,提高大流的吞吐量。 为实现上述目的,本发明的技术方案为:发送端主机根据流已发送字节量区分大 流和小流,对任意一条数据流,若其已发送字节量小于阈值T,则认为是小流,否则认为是大 流;对于小流,边缘层交换机以数据包粒度为每个新到达的数据包随机选择出端口;对于大 流,发送端主机将流转变为字节量为S的流切片,边缘层交换机随机选择一个候选输出端 口,将这个输出端口的队列长度与该流上一个流切片选用的输出端口的当前队列长度作比 较,选择队列长度最小的输出端口作为当前流切片的下一跳出端口。具体步骤包括如下: (1)初始化 在边缘层交换机新建流切片转发表; 在主机端初始化传输控制层缓冲区的剩余字节量TB、大小流区分阈值T、数据包大 小流标志位Sl_Tag、流切片大小S、流切片标志位Tag、各数据流上一个流切片的流切片标志 位P_Tag; 在交换机端初始化数据包的五元组哈希值Hash_Value、流切片的输出端口P、字节 计数器SC,并储存在转发表中; (2)对每个新生成的数据包,发送端主机获取其序列号Sq,并计算Sq与当前剩余字 节量TB的和Q,并将其与大小流区分阈值T进行比较: 若Q超过阈值T,则判定该数据包所属流为大流,将传输控制协议TCP首部保留字段 的数据包大小流标志位Sl_Tag置为1,执行(3); 否则,判定该数据包所属流为小流,将数据包大小流标志位Sl_Tag置0,执行(4); (3)更新字节计数器SC为字节计数器SC与当前数据包的字节大小之和W,判断其是 否超过流切片大小S: 若W超过S,则在当前流切片的TCP首部的流切片标志位与上一个流切片的TCP首部 流切片标志位取反,更新流切片标志位P_Tag,同时对字节计数器SC复位,执行(4); 否则,将当前流切片的TCP首部的流切片标志位,设为与上一个流切片的TCP首部 流切片标志位相同,执行(4); (4)边缘层交换机检测是否有新数据包到达,若有,执行(5),否则,继续监测; (5)交换机判断当前到达的数据包的大小流标志位Sl_Tag是否为0: 若是,则判该数据包所属流为小流,为该数据包随机选择一输出端口转发,执行 (4); 否则,执行(6); (6)交换机计算数据包的五元组哈希值Hash_Value,遍历流切片转发表,查找表中 5 CN 111585911 A 说 明 书 3/6 页 是否存在与Hash_Value相等的条目: 若存在,则执行(7); 否则,表明该数据包所属流为新流且为新流的第一个数据包,则要新建转发表条 目,并将转发表条目的流切片标志位Tag值置为该数据包流切片标志位的值,执行(8); (7)读取数据包流切片标志位的值,并将其与该转发表条目的流切片标志位Tag项 的当前值比较: 若两者相等,则该数据包属于当前流突发,将其转发到该转发表条目输出端口项 指示的输出端口; 若两者不相等,则将转发表条目的流切片标志位Tag值更新为该数据包流切片标 志位的值,执行(8); (8)边缘层交换机从候选输出端口中随机选取一个,判断其端口队列长度是否小 于当前数据包所属流的上一个流切片输出端口P的端口队列长度: 若是,则使用队列长度最小的输出端口转发数据包,并将流切片转发表中对应条 目的流切片输出端口项的值改为当前数据包所用输出端口号,返回(4); 否则,使用当前数据包所属流的上一个流切片的输出端口,即对应条目的流切片 输出端口P,转发该数据包,返回(4)。 本发明与现有技术相比,具有如下优点: 1.本发明由于将小流以数据包粒度传输,将大流切分为多条流切片并为每条流切 片选择负载较轻的路径传输,有效缓解ECMP方法因对链路状态无感知和不区分不同大小的 流传输,引发哈希碰撞和小流阻塞,导致负载均衡效果较差的问题,达到了更好的负载均衡 效果。 2.本发明只改变数据包在边缘层交换机的路由方式,无需对原有的网络协议进行 其他修改,保证原网络协议的友好性。 3.本发明由于将大小流识别,流切片切分功能在终端主机实现,流信息获取更容 易,实时性更强,精度更高,可扩展性更高。 4.本发明由于只需对主机端和边缘层交换机的相关底层软件进行修改,无需定制 专用硬件,无需更改现有主机或交换机的硬件,具备在现有真实的数据中心网络中进行部 署的能力。 附图说明 图1为发生哈希碰撞的数据中心网络; 图2为发生小流阻塞的数据中心网络; 图3为本发明的实现流程图; 图4为本发明的仿真测试环境图,其中图4(a)为仿真测试用网络拓扑互联规则图, 图4(b)为Web-search流量模式字节量累积分布函数图。 图5为本发明的性能测试图,其中图5(a)为不同网络负载下,流平均完成时间示意 图;图5(b)为不同网络负载下,流的归一化吞吐率示意图。 6 CN 111585911 A 说 明 书 4/6 页
分享到:
收藏