CN104767826B - 基于端的故障容忍的分布式数据中心负载均衡方法 - Google Patents
基于端的故障容忍的分布式数据中心负载均衡方法 Download PDFInfo
- Publication number
- CN104767826B CN104767826B CN201510198276.XA CN201510198276A CN104767826B CN 104767826 B CN104767826 B CN 104767826B CN 201510198276 A CN201510198276 A CN 201510198276A CN 104767826 B CN104767826 B CN 104767826B
- Authority
- CN
- China
- Prior art keywords
- path
- congestion
- ack
- pid
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于端的故障容忍的分布式数据中心负载均衡方法,在源主机端维护具有自衰老机制的路径拥塞表;该方法包括基于端的路径状态评估和自适应的负载均衡;基于端的路径状态评估利用至少包含TCP数据流中的ACK到达时间和ACK确认的数据量的信息来评估当前路径的拥塞程度,利用TCP中的快重传和RTO超时事件来及时地获取故障路径的信息,将获取到的路径拥塞程度和故障信息插入到主机的拥塞表中;自适应负载均衡以TCP流中拥塞窗口为基本负载单元,利用主机拥塞表中的路径状态执行双向细粒度负载均衡机制。本发明无需特殊硬件支持,能够在大规模的数据中心中快速有效地部署,低开销、易部署,有效提高了数据中心中的通讯性能。
Description
技术领域
本发明涉及数据中心中流量负载均衡方法,具体是一种基于端的分布式负载均衡机制。
背景技术
对于计算的可扩展性需求和规模效应所带来的巨大收益推动了数据中心技术的发展。当前的数据中心典型地包含成千上万级别的主机。通过采用Fat-tree,BCube等拓扑结构,数据中心网络为应用通讯提供了丰富的路径冗余。尽管这种路径富余从理论上提高了数据中心的对剖带宽,其实际性能仍然极大地依赖于底层的负载均衡机制。如果不能提供有效利用路径多样性的机制,数据中心网络通讯的整体性能仍会收到很大的影响。当前典型数据中心多借助于Equal-Cost-Multipath(ECMP)的技术来实现流量负载均衡。由于ECMP技术是一种将数据流和传输路径进行随机映射的方式,其不能有效地感知路径上的负载情况。这种负载均衡的盲目性可能导致大量的流冲突,从而极大地影响网络的整体性能。尽管当前已经提出部分适应性的负载均衡策略来改善ECMP的缺点,但其不适用于产生网络故障的场景,或者需要特定的硬件支持。
发明内容
发明目的:本发明为了解决现有的数据中心负载均衡技术的不足,提供了一种基于端的故障容忍的分布式数据中心负载均衡方法。
技术方案:为解决上述技术问题,本发明提供的基于端的故障容忍的分布式数据中心负载均衡方法,该方法在源主机端维护具有自衰老机制的路径拥塞表,所述路径拥塞表记录了从该源主机出发可达的所有路径的拥塞程度;该方法包括基于端的路径状态评估和自适应的负载均衡,所述基于端的路径状态评估通过路径拥塞表为自适应的负载均衡提供实时选路指导,所述基于端的路径状态评估调用自适应的负载均衡为每个基本负载单元选路;
所述基于端的路径状态评估包括:利用至少包含TCP数据流中的ACK到达时间和ACK确认的数据量的信息来评估当前路径的拥塞程度;利用TCP中的快重传和RTO超时事件来及时地获取故障路径的信息;将获取到的路径拥塞程度和故障信息插入到当前主机的拥塞表中;
所述自适应的负载均衡包括:以TCP流中的拥塞窗口作为基本负载单元,利用主机拥塞表中的路径状态执行双向的细粒度负载均衡机制,包括防止路径震荡的正向数据段路由机制,以及反向ACK路由机制。
优选的,所述自适应的负载均衡包括以下步骤:
在TCP层检测当前的TCP拥塞窗口,使用源路由技术控制每个基本负载单元的发送路径的步骤;
在发送数据段之前,记录当前发送的拥塞窗口的起始序列号Seqbeg、终止序列号Seqend及其发送路径pid为元组(Seqbeg,Seqend,pid)的步骤;
当发送ACK报文时,从当前的主机拥塞表中选取具有最小拥塞程度的路径作为其发送路径的步骤。
优选的,所述基于端的路径状态评估包括以下步骤:
1)在源主机发送每个拥塞窗口前,调用自适应的负载均衡为当前的负载单元选路,并记录当前发送的拥塞窗口为元组(Seqbeg,Seqend,pid);
2)目的主机接收到数据段之后,回复ACK对当前接收到的数据段进行确认;
3)如果源主机未接收到新的ACK从而产生RTO超时或者触发快重传,则进入步骤7);否则进入步骤4);
4)源主机接收到ACK报文后,根据其确认号ackno查找满足Seqbeg≤ackno≤Seqend的元组,得到当前ACK确认的数据的发送路径pid,并同时在缓存中删除所有满足条件Seqend≤ackno的元组;
5)源主机根据接收到的ACK的到达时间和所确认的数据评估路径pid上的拥塞程度CL(pid);
6)将源主机针对路径pid的评估结果CL(pid)插入到其自身所维护的路径拥塞表中,结束;
7)从TCP层获取当前最高的数据确认号acknohigh,在主机端缓存的元组中查找满足条件Seqbeg≤acknohigh≤Seqend的元组,并根据该元组获取当前发生故障的路径ID为pid;
8)将故障路径的拥塞值设为CLm,并将其插入到该主机的拥塞表中,其中CLm表示当前该路径正发生严重拥塞或者发生链路错误,结束。
优选的,所述路径拥塞表具有的自衰老机制为:一旦拥塞表中的某条路径的拥塞信息超过预设时间段未被更新,该路径的拥塞程度将会逐渐的降为0。
具体的,所述在TCP层检测当前的TCP拥塞窗口,使用源路由技术控制每个基本负载单元的发送路径的步骤包括:在TCP层检测当前的TCP拥塞窗口,并将每个拥塞窗口内的数据作为一个基本的负载单元,针对每个基本的负载单元,首先从当前主机的拥塞表中随机的选取一半路径放入备选路径集,然后从备选路径集中选取具有最小拥塞程度的路径作为当前负载单元的发送路径。
优选的,所述源主机根据接收到的ACK的到达时间和所确认的数据评估路径pid上的拥塞程度的步骤中,所述评估方法为:
其中,CL(pid)为路径pid上的拥塞值,tsi表示接收到第i个ACK的时间戳,acknoi表示接收到的第i个ACK报文的确认号。
有益效果:本发明通过基于端的路径状态感知和路由选择,借助端的灵活性来实时地监测路径拥塞状态,可以快速的对数据中心的流量突发做出响应;能够针对网络故障做出响应处理,避免了错误路径上所产生的持续丢包现象,有效地提高了数据中心中的通讯性能;能够实时的避免网络热点并且无需特殊硬件支持,从而能够在大规模的数据中心中快速有效地部署。综上,本发明提供了一种低开销、易部署的基于端的故障容忍的分布式数据中心流量负载均衡方法,有效地提高了数据中心中的通讯性能。
附图说明
图1是实施例的系统架构图;
图2是实施例的流程图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,本实施列对本发明不构成限定。
使用本实施例提供的基于端的故障容忍的分布式数据中心负载均衡方法的负载均衡机制主要在主机的网络栈中实现,其具体实现的系统架构图如图1所示,该机制在逻辑上处于TCP层的上层,其利用TCP层提供的相应信息对当前路径状态进行评估,并且针对TCP数据流进行实时的流量负载均衡。
该方法在每台主机上维护具有自衰老机制的路径拥塞表,所述路径拥塞表记录了从该源主机出发可达的所有路径的拥塞程度;所述路径拥塞表具有的自衰老机制为:一旦拥塞表中的某条路径的拥塞信息超过预设时间段未被更新,该路径的拥塞程度将会逐渐的降为0。当然,所述预设时间段的数值可根据实际应用情况进行设定和调整。
如图2所示,本发明其主要包含两个模块,基于端的拥塞评估模块和自适应的负载均衡模块,分别对应本实施例提供的负载均衡方法中的基于端的路径状态评估和自适应的负载均衡。所述基于端的路径状态评估通过路径拥塞表为自适应的负载均衡提供实时选路指导,所述基于端的路径状态评估调用自适应的负载均衡为每个基本负载单元选路。
上述自适应的负载均衡模块利用主机拥塞表中的路径状态执行双向的细粒度负载均衡机制,其主要功能流程包括:
在TCP层检测当前的TCP拥塞窗口,使用源路由技术控制每个基本负载单元的发送路径的步骤,其使用的防止路径震荡的正向数据段路由机制具体为:将每个拥塞窗口内的数据作为一个基本的负载单元,针对每个基本的负载单元,首先从当前主机的拥塞表中随机的选取一半路径放入备选路径集,然后从备选路径集中选取具有最小拥塞程度的路径作为当前负载单元的发送路径;
在发送数据段之前,记录当前发送的拥塞窗口的起始序列号Seqbeg、终止序列号Seqend及其发送路径pid为元组(Seqbeg,Seqend,pid)的步骤;
当发送ACK报文时,该模块从当前的主机拥塞表中选取具有最小拥塞程度的路径作为其发送路径的步骤,即实现保证性能的反向ACK路由机制。
上述基于端的路径状态评估模块的主要功能流程如下:
1)在源主机发送每个拥塞窗口前,调用自适应的负载均衡为当前的负载单元选路,并记录当前发送的拥塞窗口为元组(Seqbeg,Seqend,pid);
2)目的主机接收到数据段之后,回复ACK对当前接收到的数据段进行确认;
3)如果源主机未接收到新的ACK从而产生RTO超时或者触发快重传,则进入步骤7);否则进入步骤4);
4)源主机接收到ACK报文后,根据其确认号ackno查找满足Seqbeg≤ackno≤Seqend的元组,得到当前ACK确认的数据的发送路径pid,并同时在缓存中删除所有满足条件Seqend≤ackno的元组;
5)源主机根据接收到的ACK的到达时间和所确认的数据评估路径pid上的拥塞程度CL(pid),所述评估方法为:
其中,CL(pid)为路径pid上的拥塞值,tsi表示接收到第i个ACK的时间戳,acknoi表示接收到的第i个ACK报文的确认号;
6)将源主机针对路径pid的评估结果CL(pid)插入到其自身所维护的路径拥塞表中,所述路径拥塞表记录了从该源主机出发可达的所有路径的拥塞程度,结束。
7)利用TCP中的快重传和RTO超时事件来及时地获取故障路径的信息:从TCP层获取当前最高的数据确认号acknohigh,在主机端缓存的元组中查找满足条件Seqbeg≤acknohigh≤Seqend的元组,并根据该元组获取当前发生故障的路径ID为pid;
8)将故障路径的拥塞值设为CLm,并将其插入到该主机的拥塞表中,其中CLm表示当前该路径正发生严重拥塞或者发生链路错误,结束。当然,CLm的数值可根据实际应用环境预先设定和调整。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出以上实施列对本发明不构成限定,相关工作人员在不偏离本发明技术思想的范围内,所进行的多样变化和修改,均落在本发明的保护范围内。
Claims (4)
1.一种基于端的故障容忍的分布式数据中心负载均衡方法,其特征在于:
该方法在源主机端维护具有自衰老机制的路径拥塞表,所述路径拥塞表记录了从该源主机出发可达的所有路径的拥塞程度;该方法包括基于端的路径状态评估和自适应的负载均衡,所述基于端的路径状态评估通过路径拥塞表为自适应的负载均衡提供实时选路指导,所述基于端的路径状态评估调用自适应的负载均衡为每个基本负载单元选路;
所述基于端的路径状态评估包括:利用至少包含TCP数据流中的ACK到达时间和ACK确认的数据量的信息来评估当前路径的拥塞程度;利用TCP中的快重传和RTO超时事件来及时地获取故障路径的信息;将获取到的路径拥塞程度和故障信息插入到当前主机的拥塞表中;
所述自适应的负载均衡包括:以TCP流中的拥塞窗口作为基本负载单元,利用主机拥塞表中的路径状态执行双向的细粒度负载均衡机制,包括防止路径震荡的正向数据段路由机制和反向ACK路由机制;
其中,所述自适应的负载均衡包括以下步骤:
在TCP层检测当前的TCP拥塞窗口,使用源路由技术控制每个基本负载单元的发送路径的步骤;
在发送数据段之前,记录当前发送的拥塞窗口的起始序列号Seqbeg、终止序列号Seqend及其发送路径pid为元组(Seqbeg,Seqend,pid)的步骤;
当发送ACK报文时,从当前的主机拥塞表中选取具有最小拥塞程度的路径作为其发送路径的步骤;
所述基于端的路径状态评估包括以下步骤:
1)在源主机发送每个拥塞窗口前,调用自适应的负载均衡为当前的负载单元选路,并记录当前发送的拥塞窗口为元组(Seqbeg,Seqend,pid);
2)目的主机接收到数据段之后,回复ACK对当前接收到的数据段进行确认;
3)如果源主机未接收到新的ACK从而产生RTO超时或者触发快重传,则进入步骤7);否则进入步骤4);
4)源主机接收到ACK报文后,根据其确认号ackno查找满足Seqbeg≤ackno≤Seqend的元组,得到当前ACK确认的数据的发送路径pid,并同时在缓存中删除所有满足条件Seqend≤ackno的元组;
5)源主机根据接收到的ACK的到达时间和所确认的数据评估路径pid上的拥塞程度CL(pid);
6)将源主机针对路径pid的评估结果CL(pid)插入到其自身所维护的路径拥塞表中,结束;
7)从TCP层获取当前最高的数据确认号acknohigh,在主机端缓存的元组中查找满足条件Seqbeg≤acknohigh≤Seqend的元组,并根据该元组获取当前发生故障的路径ID为pid;
8)将故障路径的拥塞值设为CLm,并将其插入到该主机的拥塞表中,其中CLm表示当前该路径正发生严重拥塞或者发生链路错误,结束。
2.根据权利要求1所述的基于端的故障容忍的分布式数据中心负载均衡方法,其特征在于:所述路径拥塞表具有的自衰老机制为:一旦拥塞表中的某条路径的拥塞信息超过预设时间段未被更新,该路径的拥塞程度将会逐渐的降为0。
3.根据权利要求1所述的基于端的故障容忍的分布式数据中心负载均衡方法,其特征在于:所述在TCP层检测当前的TCP拥塞窗口,使用源路由技术控制每个基本负载单元的发送路径的步骤包括:在TCP层检测当前的TCP拥塞窗口,并将每个拥塞窗口内的数据作为一个基本的负载单元,针对每个基本的负载单元,首先从当前主机的拥塞表中随机的选取一半路径放入备选路径集,然后从备选路径集中选取具有最小拥塞程度的路径作为当前负载单元的发送路径。
4.根据权利要求1所述的基于端的故障容忍的分布式数据中心负载均衡方法,其特征在于:所述源主机根据接收到的ACK的到达时间和所确认的数据评估路径pid上的拥塞程度的步骤中,评估方法为:
<mrow>
<mi>C</mi>
<mi>L</mi>
<mrow>
<mo>(</mo>
<mi>p</mi>
<mi>i</mi>
<mi>d</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>ts</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>ts</mi>
<mi>i</mi>
</msub>
</mrow>
<mrow>
<mo>(</mo>
<msub>
<mi>ackno</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>ackno</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
<mo>*</mo>
<mn>8</mn>
</mrow>
</mfrac>
</mrow>
其中,CL(pid)为路径pid上的拥塞值,tsi表示接收到第i个ACK的时间戳,acknoi表示接收到的第i个ACK报文的确认号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510198276.XA CN104767826B (zh) | 2015-04-23 | 2015-04-23 | 基于端的故障容忍的分布式数据中心负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510198276.XA CN104767826B (zh) | 2015-04-23 | 2015-04-23 | 基于端的故障容忍的分布式数据中心负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104767826A CN104767826A (zh) | 2015-07-08 |
CN104767826B true CN104767826B (zh) | 2017-11-28 |
Family
ID=53649424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510198276.XA Active CN104767826B (zh) | 2015-04-23 | 2015-04-23 | 基于端的故障容忍的分布式数据中心负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104767826B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9985890B2 (en) | 2016-03-14 | 2018-05-29 | International Business Machines Corporation | Identifying a local congestion control algorithm of a virtual machine |
US10425338B2 (en) | 2016-03-14 | 2019-09-24 | International Business Machines Corporation | Virtual switch-based congestion control for datacenter networks |
CN105959235B (zh) * | 2016-07-21 | 2019-02-12 | 中国工商银行股份有限公司 | 分布式数据处理系统及方法 |
CN108683602B (zh) * | 2018-07-13 | 2022-05-13 | 深圳致星科技有限公司 | 一种数据中心网络负载均衡方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404622A (zh) * | 2008-11-07 | 2009-04-08 | 重庆邮电大学 | 基于多径负载均衡的无线互联网拥塞控制方法及控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8125907B2 (en) * | 2008-06-12 | 2012-02-28 | Talari Networks Incorporated | Flow-based adaptive private network with multiple WAN-paths |
-
2015
- 2015-04-23 CN CN201510198276.XA patent/CN104767826B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404622A (zh) * | 2008-11-07 | 2009-04-08 | 重庆邮电大学 | 基于多径负载均衡的无线互联网拥塞控制方法及控制器 |
Non-Patent Citations (2)
Title |
---|
一种基于多径负载均衡的无线互联网TCP 拥塞控制策略;周扬眉等;《通信技术》;20090228;第42卷(第02期);118-120 * |
多路径路由网络负载均衡算法研究;秦光;《计算机仿真》;20111130;第28卷(第11期);118-121 * |
Also Published As
Publication number | Publication date |
---|---|
CN104767826A (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190140956A1 (en) | Load balancing method, apparatus, and device | |
CN104767826B (zh) | 基于端的故障容忍的分布式数据中心负载均衡方法 | |
CN102263697B (zh) | 一种聚合链路流量分担方法和装置 | |
CN102065000B (zh) | 网络拥塞控制方法、装置及系统 | |
CN111669418B (zh) | 数据通信方法、数据同步方法、系统、装置、网关设备、服务器及基站设备 | |
CN103618678A (zh) | 自适应多链路聚合的方法、装置及系统 | |
WO2023284447A1 (zh) | 云边协同的数据传输方法、服务器及存储介质 | |
CN202841192U (zh) | 一种支持广域网的高速、可靠的单向传输系统 | |
US20140211630A1 (en) | Managing packet flow in a switch faric | |
CN101489263A (zh) | 一种数据传输控制方法、装置及系统 | |
JP7092813B2 (ja) | パケット伝送方法及び装置 | |
GB2578415A (en) | Methods and systems for transmitting information packets through tunnel groups at a network node | |
CN101060497A (zh) | 一种流量工程隧道的建立方法和装置 | |
EP4149066A1 (en) | Communication method and apparatus | |
CN102984091A (zh) | 抖动缓冲器 | |
CN115776443A (zh) | 网络优化策略的确定方法、装置及系统 | |
CN106027404A (zh) | 一种基于自适应补偿编码的网络性能优化方法及装置 | |
CN110324255B (zh) | 一种面向数据中心网络编码的交换机/路由器缓存队列管理方法 | |
CN103391164B (zh) | 一种基于线性网络编码的报文发送冗余度动态调整方法 | |
CN113014512B (zh) | 基于n:m连接动态映射的网络连接加速转发方法 | |
CN113162863B (zh) | 基于轮盘算法的公平多路径路由方法 | |
EP4164187A1 (en) | Load balancing method, apparatus and system | |
CN106341348B (zh) | 一种面向tcp业务的流量控制方法及接入网网元 | |
CN101616052B (zh) | 一种隧道控制方法和装置 | |
CN109714078B (zh) | 数据上行传输的信令交互方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |