首页 / 专利库 / 电脑编程 / 算法 / 负载均衡方法、装置及设备

负载均衡方法、装置及设备

阅读:1059发布:2020-06-15

专利汇可以提供负载均衡方法、装置及设备专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种负载均衡方法、装置及设备,属于网络技术领域。所述方法包括:在接收到 服务器 发送的一个报文后,判断该报文是否为一个Flowlet的首报文;若该报文为所述Flowlet的首报文,则根据该报文的目的地址确定目的交换机;在存储的等价路径权重表中,确定与该目的交换机关联的至少一条等价路径的权重值,该等价路径权重表中存储了所述至少一条等价路径与权重值之间的对应关系;根据所述至少一条等价路径的权重值,将该报文调度到相应的等价路径上传输。本发明交换机在接收到服务器发送的报文后,进行Flowlet检测,且直接根据本地存储的等价路径权重表作基于Flowlet的负载均衡,无需交换机实时获取各个路径的负载情况,大大降低了负载均衡 算法 的复杂度,效果佳。,下面是负载均衡方法、装置及设备专利的具体信息内容。

1.一种负载均衡方法,其特征在于,所述方法包括:
在接收到服务器发送的一个报文后,判断所述报文是否为一个子流Flowlet的首报文;
若所述报文为所述Flowlet的首报文,则根据所述报文的目的地址确定目的交换机;
在存储的等价路径权重表中,确定与所述目的交换机关联的至少一条等价路径的权重值,所述等价路径权重表中存储了所述至少一条等价路径与权重值之间的对应关系;
获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
2.根据权利要求1所述的方法,其特征在于,所述判断所述报文是否为一个Flowlet的首报文,包括:
根据所述报文的五元组信息进行哈希计算,得到哈希值;
在存储的Flowlet表中,确定与所述哈希值匹配的Flowlet条目;
若所述Flowlet条目中的有效位信息为第一数值,则确定所述报文为所述Flowlet的首报文,将所述五元组信息、当前时间作为最近活跃时间更新至所述Flowlet条目中,并将所述有效位信息由第一数值更新为第二数值;
其中,一个Flowlet条目中至少包括一个Flowlet的五元组信息、最近活跃信息、出端口信息和有效位信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述Flowlet条目中的有效位信息为所述第二数值,则确定所述报文为所述Flowlet的非首报文,根据所述Flowlet条目中的出端口信息确定第二指定等价路径;
将所述报文调度到所述第二指定等价路径上传输,并将所述Flowlet条目中的最近活跃时间更新为当前时间。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定与所述随机数匹配的第一指定等价路径后,将所述第一指定等价路径的路径标识作为出端口信息,保存在Flowlet表的对应Flowlet条目中。
5.根据权利要求1至4中任一权利要求所述的方法,其特征在于,所述方法还包括:
若所述至少一条等价路径的链路状态发生变化,则向控制器发送链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的第三指定等价路径,以使所述控制器根据所述链路状态变更消息,重新计算所述至少一条等价路径的权重值,得到新等价路径权重表;
接收所述控制器发送的所述新等价路径权重表,并存储所述新等价路径权重表。
6.根据权利要求2至4中任一权利要求所述的方法,其特征在于,所述方法还包括:
对于所述Flowlet表中的每一个Flowlet条目,周期性计算当前时间与最近活跃时间之间的差值;
若所述差值大于预设时间阈值,则将所述Flowlet条目设置为无效状态。
7.一种负载均衡方法,其特征在于,所述方法还包括:
对于一个源交换机,计算所述源交换机与各个目的交换机之间多条等价路径的权重值,得到所述源交换机的等价路径权重表;
向所述源交换机下发所述等价路径权重表,以使所述源交换机在接收到服务器发送的一个报文且判断出所述报文为一个Flowlet的首报文后,根据所述报文的目的地址确定目的交换机,在所述等价路径权重表中确定与所述目的交换机关联的至少一条等价路径的权重值,获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
8.根据权利要求7所述的方法,其特征在于,所述计算所述源交换机与各个目的交换机之间多条等价路径的权重值,包括:
对于一个目的交换机,确定所述源交换机与所述目的交换机之间的各条等价路径,所述等价路径包括所述源交换机至中转交换机之间的第一链路路径、以及所述中转交换机至所述目的交换机之间的第二链路路径;
对于一条等价路径,根据所述第一链路路径和所述第二链路路径的链路状态,计算所述等价路径的权重值。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述源交换机发送的链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的等价路径;
根据所述链路状态变更消息,重新计算各个源交换机与各个目的交换机之间多条等价路径的权重值,得到新等价路径权重表;
向各个源交换机发送匹配的新等价路径权重表。
10.一种负载均衡装置,其特征在于,所述装置包括:
判断模,用于在接收到服务器发送的一个报文后,判断所述报文是否为一个子流Flowlet的首报文;
确定模块,用于若所述报文为所述Flowlet的首报文,则根据所述报文的目的地址确定目的交换机;
所述确定模块,还用于在存储的等价路径权重表中,确定与所述目的交换机关联的至少一条等价路径的权重值,所述等价路径权重表中存储了所述至少一条等价路径与权重值之间的对应关系;
调度模块,用于获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;
根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
所述判断模块,用于根据所述报文的五元组信息进行哈希计算,得到哈希值;在存储的Flowlet表中,确定与所述哈希值匹配的Flowlet条目;若所述Flowlet条目中的有效位信息为第一数值,则确定所述报文为所述Flowlet的首报文;
更新模块,用于当所述报文为所述Flowlet的首报文时,将所述五元组信息、当前时间作为最近活跃时间更新至所述Flowlet条目中,并将所述有效位信息由第一数值更新为第二数值;其中,一个Flowlet条目中至少包括一个Flowlet的五元组信息、最近活跃信息、出端口信息和有效位信息。
12.根据权利要求11所述的装置,其特征在于,所述判断模块,还用于若所述Flowlet条目中的有效位信息为所述第二数值,则确定所述报文为所述Flowlet的非首报文;
所述确定模块,还用于当所述报文为所述Flowlet的非首报文时,根据所述Flowlet条目中的出端口信息确定第二指定等价路径;
所述调度模块,还用于当所述报文为所述Flowlet的非首报文时,将所述报文调度到所述第二指定等价路径上传输;
所述更新模块,还用于当所述报文为所述Flowlet的非首报文时,将所述Flowlet条目中的最近活跃时间更新为当前时间。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
保存模块,用于在确定与所述随机数匹配的第一指定等价路径后,将所述第一指定等价路径的路径标识作为出端口信息,保存在Flowlet表的对应Flowlet条目中。
14.根据权利要求10至13中任一权利要求所述的装置,其特征在于,所述装置还包括:
发送模块,用于若所述至少一条等价路径的链路状态发生变化,则向控制器发送链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的第三指定等价路径,以使所述控制器根据所述链路状态变更消息,重新计算所述至少一条等价路径的权重值,得到新等价路径权重表;
接收模块,用于接收所述控制器发送的所述新等价路径权重表,并存储所述新等价路径权重表。
15.根据权利要求11至13中任一权利要求所述的装置,其特征在于,所述装置还包括:
计算模块,用于对于所述Flowlet表中的每一个Flowlet条目,周期性计算当前时间与最近活跃时间之间的差值;
设置模块,用于若所述差值大于预设时间阈值,则将所述Flowlet条目设置为无效状态。
16.一种负载均衡装置,其特征在于,所述装置还包括:
计算模块,用于对于一个源交换机,计算所述源交换机与各个目的交换机之间多条等价路径的权重值,得到所述源交换机的等价路径权重表;
发送模块,用于向所述源交换机下发所述等价路径权重表,以使所述源交换机在接收到服务器发送的一个报文且判断出所述报文为一个Flowlet的首报文后,根据所述报文的目的地址确定目的交换机,在所述等价路径权重表中确定与所述目的交换机关联的至少一条等价路径的权重值,获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
17.根据权利要求16所述的装置,其特征在于,所述计算模块,用于对于一个目的交换机,确定所述源交换机与所述目的交换机之间的各条等价路径,所述等价路径包括所述源交换机至中转交换机之间的第一链路路径、以及所述中转交换机至所述目的交换机之间的第二链路路径;对于一条等价路径,根据所述第一链路路径和所述第二链路路径的链路状态,计算所述等价路径的权重值。
18.根据权利要求16所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收所述源交换机发送的链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的等价路径;
所述计算模块,还用于根据所述链路状态变更消息,重新计算各个源交换机与各个目的交换机之间多条等价路径的权重值,得到新等价路径权重表;
所述发送模块,还用于向各个源交换机发送匹配的新等价路径权重表。
19.一种交换机,其特征在于,包括:发送器、接收器、存储器和处理器,所述存储器、所述发送器和所述接收器分别与所述处理器连接,所述存储器存储有程序代码,所述处理器用于调用程序代码,执行以下操作:
在通过所述接收器接收到服务器发送的一个报文后,判断所述报文是否为一个子流Flowlet的首报文;若所述报文为所述Flowlet的首报文,则根据所述报文的目的地址确定目的交换机;在存储的等价路径权重表中,确定与所述目的交换机关联的至少一条等价路径的权重值,所述等价路径权重表中存储了所述至少一条等价路径与权重值之间的对应关系;获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
20.一种控制器,其特征在于,包括:发送器、接收器、存储器和处理器,所述存储器、所述发送器和所述接收器分别与所述处理器连接,所述存储器存储有程序代码,所述处理器用于调用程序代码,执行以下操作:
对于一个源交换机,计算所述源交换机与各个目的交换机之间多条等价路径的权重值,得到所述源交换机的等价路径权重表;通过所述发送器向所述源交换机下发所述等价路径权重表,以使所述源交换机在接收到服务器发送的一个报文且判断出所述报文为一个Flowlet的首报文后,根据所述报文的目的地址确定目的交换机,在所述等价路径权重表中确定与所述目的交换机关联的至少一条等价路径的权重值,获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。

说明书全文

负载均衡方法、装置及设备

技术领域

[0001] 本发明涉及网络技术领域,特别涉及一种负载均衡方法、装置及设备。

背景技术

[0002] 随着网络技术的不断发展,数据中心网络越来越广泛地被服务提供商和企业所创建。在基于数据中心网络进行流量传输时,常常会发生下述两种流量拥塞情况。在图1A中,由于传统的负载均衡方法如ECMP(Equal-Cost MultiPath,等价多路径)方式仅能做到对流数的负载均衡,因此可能会出现图1A所示的多条大象流凑巧映射到同一条链路的情况,导致汇聚流量超过端口容量,引起流量拥塞,这种拥塞称为Local Collision(局部冲突)。在图1B中,由于Leaf交换机各自做负载均衡,没有一个全局的信息,因此可能会出现图1A所示的多个Leaf交换机上发往同一个Leaf交换机的多条大象流,发送到同一个中转交换机(比如Spine交换机)的情况,导致下行流量拥塞,这种拥塞称为Downstream Collision(下游冲突)。因此,为了防止上述两种拥塞情况的发生,如何对网络流量进行负载均衡成为了本领域技术人员关注的一个焦点。
[0003] 参见图2,现有技术在进行负载均衡时主要逻辑如下:源Leaf交换机检测Flowlet(子流),其中位于一个滑动窗口内的报文作为一个Flowlet一起发送。对于每个新的Flowlet,源Leaf交换机总是选择最小负载路径。其中,路径的负载情况通过下述步骤得到:(1)源Leaf交换机将拥塞信息字段(包括LBTag和CE)封装到每个报文的overlay(覆盖)头中。其中,LBTag表示源Leaf交换机的端口号,CE表示路径拥塞度量值;CE在经过Spine交换机时更新,并在到达目的Leaf交换机后暂存到Congestion-From-Leaf表中。(2)目的Leaf交换机在接收到上述报文后,向源Leaf交换机发送反向报文,具体目的Leaf交换机将拥塞信息字段(包括FB_LBTag和FB_Metric)封装到反向报文的overlay头中。其中,FB_LBTag表示目的Leaf交换机的端口号,FB_Metric表示拥塞度量值。源Leaf交换机在接收到反向报文后,将反向报文存放到Congestion-To-Leaf表中。这样,源Leaf交换机便可以根据本地上行链路和反馈回来的下行链路的拥塞情况,遍历获取最小负载路径的出端口,以为Flowlet决策最佳路径。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005] 由于需要目的Leaf交换机返回给源Leaf交换机所有的下行链路负载信息,且需遍历获取最小负载路径对应的出端口,因此该种负载均衡方法的复杂度过高,负载均衡效果欠佳。

发明内容

[0006] 为了解决现有技术的问题,本发明实施例提供了一种负载均衡方法、装置及设备。所述技术方案如下:
[0007] 针对控制器来讲,首先会根据网络拓扑、端口状态、链路带宽等信息,计算各条等价多路径的权重,具体为:对于一个源交换机,控制器计算所述源交换机与各个目的交换机之间多条等价路径的权重值,得到所述源交换机的等价路径权重表,所述等价路径权重表中存储了所述多条等价路径与权重值之间的对应关系;向所述源交换机下发所述等价路径权重表。这样每一个源交换机中都会存储有一个与自身匹配的等价路径权重表。
[0008] 其中,所述控制器在计算所述源交换机与各个目的交换机之间多条等价路径的权重值时,通常采取下述方式实现:对于一个目的交换机,确定所述源交换机与所述目的交换机之间的各条等价路径,所述等价路径包括所述源交换机至中转交换机之间的第一链路路径、以及所述中转交换机至所述目的交换机之间的第二链路路径;对于一条等价路径,根据所述第一链路路径和所述第二链路路径的链路状态,计算所述等价路径的权重值。
[0009] 在另一个实施例中,一个源交换机在接收到服务器发送的一个报文后,首先进行Flowlet检测,判断所述报文是否为一个Flowlet的首报文。其中,在判断所述报文是否为一个Flowlet的首报文时,可采取下述方式实现:
[0010] 根据所述报文的五元组信息进行哈希计算,得到哈希值;在存储的Flowlet表中,确定与所述哈希值匹配的Flowlet条目;若所述Flowlet条目中的有效位信息为第一数值,则确定所述报文为所述Flowlet的首报文;若所述Flowlet条目中的有效位信息为所述第二数值,则确定所述报文为所述Flowlet的非首报文;其中,一个Flowlet条目中至少包括一个Flowlet的五元组信息、最近活跃信息、出端口信息和有效位信息。
[0011] 针对所述报文为所述Flowlet的首报文的情况,源交换机会根据所述报文的目的地址确定目的交换机;在存储的等价路径权重表中,确定与所述目的交换机关联的至少一条等价路径的权重值;根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输。
[0012] 在本发明实施例中,所述根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输,包括:
[0013] 获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
[0014] 需要说明的是,在确定与所述随机数匹配的第一指定等价路径后,源交换机还会将所述第一指定等价路径的路径标识作为出端口信息,保存在Flowlet表的对应Flowlet条目中。此外,源交换机还会将所述五元组信息、当前时间作为最近活跃时间更新至所述Flowlet条目中,并将所述有效位信息由第一数值更新为第二数值。
[0015] 针对所述报文为所述Flowlet的非首报文的情况,源交换机根据所述Flowlet条目中的出端口信息确定第二指定等价路径;将所述报文调度到所述第二指定等价路径上传输,并将所述Flowlet条目中的最近活跃时间更新为当前时间。
[0016] 在另一个实施例中,若与所述目的交换机关联的至少一条等价路径的链路状态发生变化,则源交换机向控制器发送链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的第三指定等价路径,以使所述控制器根据所述链路状态变更消息,重新计算各个源交换机与各个目的交换机之间多条等价路径的权重值,得到新等价路径权重表,并向各个源交换机发送匹配的新等价路径权重表。这样每一个源交换机在接收到所述控制器发送的新等价路径权重表后,存储所述新等价路径权重表用以替换之前存储的等价路径权重表。
[0017] 在另一个实施例中,对于自身存储的Flowlet表中每一个Flowlet条目,源交换机会周期性计算当前时间与记录的最近活跃时间之间的差值;若所述差值大于预设时间阈值,则源交换机将所述Flowlet条目设置为无效状态,以方便进行Flowlet检测。
[0018] 本发明实施例提供的技术方案带来的有益效果是:
[0019] 交换机在接收到服务器发送的报文后进行Flowlet检测,之后交换机直接根据本地存储的等价路径权重表作基于Flowlet的负载均衡,其中所述等价路径权重表中存储了至少一条等价路径与权重值之间的对应关系;比如在检测到当前接收到的报文为一个Flowlet的首报文后,直接根据该报文的目的地址确定目的交换机,并在存储的等价路径权重表中确定与所述目的交换机关联的至少一条等价路径的权重值,进而根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输,从而在无需交换机实时获取各个路径的负载情况下实现了负载均衡,大大降低了负载均衡算法的复杂度,效果较佳。附图说明
[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1A是本发明背景技术提供的一种负载均衡方法的逻辑示意图;
[0022] 图1B是本发明背景技术提供的一种负载均衡方法的逻辑示意图;
[0023] 图2是本发明背景技术提供的一种负载均衡方法的逻辑示意图;
[0024] 图3是本发明实施例提供的一种流传输过程的逻辑示意图;
[0025] 图4是本发明实施例提供的一种Flowlet在Leaf-Spine架构数据中心网络中传输的逻辑示意图;
[0026] 图5是本发明实施例提供的一种交换机的结构示意图;
[0027] 图6是本发明实施例提供的一种控制器的结构示意图;
[0028] 图7是本发明实施例提供的一种负载均衡方法的流程图
[0029] 图8是本发明实施例提供的一种负载均衡方法的系统示意图;
[0030] 图9是本发明实施例提供的一种等价路径权重表的示意图;
[0031] 图10是本发明实施例提供的一种三级Clos架构数据中心网络的示意图;
[0032] 图11是本发明实施例提供的一种负载均衡方法的流程图;
[0033] 图12是本发明实施例提供的一种负载均衡装置的结构示意图;
[0034] 图13是本发明实施例提供的一种负载均衡装置的结构示意图。

具体实施方式

[0035] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0036] 在对本发明实施例进行详细地解释说明之前,先对Flowlet的原理进行一下解释说明。
[0037] 如图3所示,在进行TCP(Transmission Control Protocol,传输控制协议)流传输时,如果保证前后两个报文之间的传输时间间隔大于两条路径延时的差值,那么这两个报文便可以通过不同的路径发送,而不用担心引起乱序。具体来说,在分开点(Diverging Point)通过上面一条路径传输报文1后,经过两条路径延时的差值时长后,再通过下面一条路径传输报文2。这样可保证在报文1到达汇聚点(Converging Point)之后,报文2再到达聚集点,不会引起报文之间的乱序。由于TCP流天然存在Burst(突发)特性,即TCP流总是将位于一个滑动窗口内的报文作为一个Burst一起发送,然后等待ACK(Acknowledge ment,确认字符)。在接收到ACK后再发送下一个窗口内的报文,这样的话两个Burst之间便天然存在一个较大的时间间隔,这个时间间隔可以保证这两个Burst通过不同的路径传输,在达到汇聚点时并不会乱序,这样一个Burst称之为一个子流(Flowlet)。
[0038] 需要说明的是,Flowlet也并不一定是由一个滑动窗口内的多个报文组成,还可能由多个滑动窗口内的报文组成,甚至可能是一个滑动窗口内的报文被分成几个Flowlet,这和判断Flowlet的传输时间间隔有关,这个传输时间间隔越短,原始的一条流被分成的Flowlet数越多;这个传输时间间隔越长,原始的一条流被分成的Flowlet数越少。这个传输时间间隔并不是越长越好,也不是越短越好,会有一个临界值,用这个临界值区分Flowlet,不但需保证Flowlet数足够多,还需保证Flowlet通过不同路径发送到汇聚点后还不会乱序。
[0039] 图4说明了Flowlet在Leaf-Spine架构数据中心网络中的基本原理。以Leaf1对第一个Leaf交换机进行标识,以Leaf4对第四个Leaf交换机进行标识为例,在图4中,报文1和报文2分别通过图中粗线所示的两条路径从Leaf1发送到Leaf4。分别以d1和d2对两条路径的延时进行标识,则需保证报文1和报文2之间的发送时间间隔Gap≥|d1-d2|,这样报文1便会先于报文2达到Leaf4,从而保证两个报文之间不会乱序。
[0040] 图5是本发明实施例提供的一种交换机的结构示意图,参见图5,包括:发送器501、接收器502、存储器503和处理器504,存储器503、发送器501和接收器502分别与处理器504连接,存储器503存储有程序代码,处理器504用于调用程序代码,执行以下操作:
[0041] 在通过接收器502接收到服务器发送的一个报文后,判断所述报文是否为一个Flowlet的首报文;若所述报文为所述Flowlet的首报文,则根据所述报文的目的地址确定目的交换机;在存储的等价路径权重表中,确定与所述目的交换机关联的至少一条等价路径的权重值,所述等价路径权重表中存储了所述至少一条等价路径与权重值之间的对应关系;根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输。
[0042] 在另一个实施例中,处理器504用于调用程序代码,执行以下操作:
[0043] 获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
[0044] 在另一个实施例中,处理器504用于调用程序代码,执行以下操作:
[0045] 根据所述报文的五元组信息进行哈希计算,得到哈希值;在存储的Flowlet表中,确定与所述哈希值匹配的Flowlet条目;若所述Flowlet条目中的有效位信息为第一数值,则确定所述报文为所述Flowlet的首报文,将所述五元组信息、当前时间作为最近活跃时间更新至所述Flowlet条目中,并将所述有效位信息由第一数值更新为第二数值;其中,一个Flowlet条目中至少包括一个Flowlet的五元组信息、最近活跃信息、出端口信息和有效位信息。
[0046] 在另一个实施例中,处理器504用于调用程序代码,执行以下操作:
[0047] 若所述Flowlet条目中的有效位信息为所述第二数值,则确定所述报文为所述Flowlet的非首报文,根据所述Flowlet条目中的出端口信息确定第二指定等价路径;将所述报文调度到所述第二指定等价路径上传输,并将所述Flowlet条目中的最近活跃时间更新为当前时间。
[0048] 在另一个实施例中,处理器504用于调用程序代码,执行以下操作:
[0049] 在确定与所述随机数匹配的第一指定等价路径后,将所述第一指定等价路径的路径标识作为出端口信息,保存在Flowlet表的对应Flowlet条目中;
[0050] 在另一个实施例中,处理器504用于调用程序代码,执行以下操作:
[0051] 若所述至少一条等价路径的链路状态发生变化,则通过发送器501向控制器发送链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的第三指定等价路径,以使所述控制器根据所述链路状态变更消息,重新计算所述至少一条等价路径的权重值,得到新等价路径权重表;通过接收器502接收所述控制器发送的所述新等价路径权重表,并存储所述新等价路径权重表。
[0052] 在另一个实施例中,处理器504用于调用程序代码,执行以下操作:
[0053] 对于所述Flowlet表中的每一个Flowlet条目,周期性计算当前时间与最近活跃时间之间的差值;若所述差值大于预设时间阈值,则将所述Flowlet条目设置为无效状态。
[0054] 本发明实施例提供的交换机,在接收到控制器下发的等价路径权重表并进行存储后,若接收到服务器发送的报文,则进行Flowlet检测并直接根据本地存储的等价路径权重表和Flowlet表作基于Flowlet的负载均衡,为当前接收到的报文选择待传输的等价路径,无需交换机实时获取各个路径的负载情况,仅需在链路状态发送变化时重新计算一次等价路径权重即可,大大降低了负载均衡算法的复杂度,效果较佳。
[0055] 图6是本发明实施例提供的一种控制器的结构示意图,参见图6,包括:发送器601、接收器602、存储器603和处理器604,存储器603、发送器601和接收器602分别与处理器604连接,存储器603存储有程序代码,处理器604用于调用程序代码,执行以下操作:
[0056] 对于一个源交换机,计算该源交换机与各个目的交换机之间多条等价路径的权重值,得到该源交换机的等价路径权重表;通过发送器601向该源交换机下发等价路径权重表,以使该源交换机在接收到服务器发送的一个报文且判断出该报文为一个Flowlet的首报文后,根据该报文的目的地址确定目的交换机,在等价路径权重表中确定与该目的交换机关联的至少一条等价路径的权重值,根据至少一条等价路径的权重值,将该报文调度到相应的等价路径上传输。
[0057] 在另一个实施例中,处理器604用于调用程序代码,执行以下操作:
[0058] 对于一个目的交换机,确定该源交换机与该目的交换机之间的各条等价路径,所述等价路径包括该源交换机至中转交换机之间的第一链路路径、以及中转交换机至该目的交换机之间的第二链路路径;对于一条等价路径,根据第一链路路径和第二链路路径的链路状态,计算该等价路径的权重值。
[0059] 在另一个实施例中,处理器604用于调用程序代码,执行以下操作:
[0060] 通过接收器602接收该源交换机发送的链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的等价路径;根据链路状态变更消息,重新计算各个源交换机与各个目的交换机之间多条等价路径的权重值,得到新等价路径权重表;通过发送器601向各个源交换机发送匹配的新等价路径权重表。
[0061] 本发明实施例提供的控制器,在根据整网链路信息,分别为两两交换机之间的各条等价路径设置权重值,并将对应的等价路径权重表下发至每一个交换机后,若交换机接收到服务器发送的报文,则进行Flowlet检测并直接根据本地存储的等价路径权重表和Flowlet表作基于Flowlet的负载均衡,以为当前接收到的报文选择待传输的等价路径,无需交换机实时获取各个路径的负载情况,仅需在链路状态发送变化时重新计算一次等价路径权重即可,大大降低了负载均衡算法的复杂度,效果较佳。
[0062] 图7是本发明实施例提供的一种负载均衡方法的流程图,本发明实施例的主要思路有两个,一个是使用Flowlet来打散大象流;另一个是在Flowlet的基础上实现通过WCMP(Weighted Cost MultiPath,带权重非等价多路径)方法来作负载均衡。以二级Clos的Leaf-Spine架构数据中心网络为例,参见图7,本发明实施例提供的方法流程包括:
[0063] 701、控制器计算Leaf-Spine架构中两两Leaf交换机之间各条等价路径的权重,生成等价路径权重表,并下发等价路径权重表至各个Leaf交换机。
[0064] 如图8所示,控制器会根据网络拓扑、端口状态、链路带宽等链路状态,计算出两两Leaf交换机之间各条等价路径的权重。需要说明的是,两两Leaf交换机之间各条等价路径指代的含义是,对于一个源Leaf交换机,计算该源Leaf交换机与各个目的Leaf交换机之间的全部等价路径。在图8中,两两Leaf交换机之间各条等价路径,包括Leaf#1与Leaf#2之间的3条等价路径、Leaf#1与Leaf#3之间的3条等价路径,Leaf#2与Leaf#1之间的3条等价路径、Leaf#2与Leaf#3之间的3条等价路径,以及Leaf#3与Leaf#1之间的3条等价路径、Leaf#3与Leaf#2之间的3条等价路径。
[0065] 以源Leaf交换机为Leaf#1,目的Leaf交换机为Leaf#2为例,参加图8,二者之间总共存在三条等价路径,分别为Leaf#1→Spine#1→Leaf#2,Leaf#1→Spine#2→Leaf#2和Leaf#1→Spine#3→Leaf#2。其中,对于第一条等价路径Leaf#1→Spine#1→Leaf#2,由于其链路Leaf#1→Spine#1、Spine#1→Leaf#2的链路带宽都是40G,因此将该条等价路径的权重设置为4。对于第二条等价路径Leaf#1→Spine#2→Leaf#2,由于其链路Leaf#1→Spine#2、Spine#2→Leaf#2的链路带宽都是40G,因此将该条等价路径的权重也设置为4。对于第三条等价路径Leaf#1→Spine#3→Leaf#3,由于其链路Leaf#1→Spine#3、Spine#3→Leaf#2的链路带宽都是40G,因此将该条等价路径的权重也设置为4。
[0066] 以源Leaf交换机为Leaf#1,目的Leaf交换机为Leaf#3为例,参加图8,二者之间总共存在三条等价路径,分别为Leaf#1→Spine#1→Leaf#3,Leaf#1→Spine#2→Leaf#3和Leaf#1→Spine#3→Leaf#3。其中,对于第一条等价路径Leaf#1→Spine#1→Leaf#3,由于Spine#1→Leaf#3这段链路处于失效状态,因此该条链路down,将该条等价路径的权重设置为0。对于第二条等价路径Leaf#1→Spine#2→Leaf#3,由于Spine#2-->Leaf#3这段链路的链路带宽为10G,因此将该条等价路径的权重设置为1。对于第三条等价路径Leaf#1→Spine#3→Leaf#3,由于其链路Leaf#1→Spine#3、Spine#3→Leaf#3的链路带宽都是40G,因此将该条等价路径的权重设置为4。
[0067] 对于Leaf#1来说,在计算出Leaf#1与Leaf#2之间3条等价路径的权重值、Leaf#1与Leaf#3之间3条等价路径的权重值之后,便可得到图8所示的与Leaf#1关联的等价路径权重表。其中,横轴表示路径号、纵轴表示目的Leaf交换机号。而对于Leaf#2和Leaf#3来说,也可按照上述方式计算各条等价路径的权重值,得到图8所示的与Leaf#2关联的等价路径权重表和与Leaf#3关联的等价路径权重表。控制器在得到上述等价路径权重表后,将与Leaf#1关联的等价路径权重表发送至Leaf交换机Leaf#1,将与Leaf#2关联的等价路径权重表发送至Leaf交换机Leaf#2,将与Leaf#3关联的等价路径权重表发送至Leaf交换机Leaf#3。
[0068] 702、对于一个源Leaf交换机,接收服务器发送的报文并检测Flowlet,每接收到一个报文,判断该报文是否为一个Flowlet的首报文;若该报文为该Flowlet的非首报文,则执行下述步骤703;若该报文为该Flowlet的首报文,则执行下述步骤704。
[0069] 在本发明实施例中,使用Flowlet来打散大象流。其中,源交换机在检测Flowlet时有不同的实现方式,一种实现方式是为每条流维护一个流表。在接收到报文后,计算当前报文的到达时间与前一个报文的到达时间之间的时间差值;如果该时间差值超过判定Flowlet的预设时间阈值,则当前接收到的是一个新的Flowlet;另一种实现方式是维护一个Flowlet表,通过Flowlet表项超时机制,即如果一个Flowlet表项不活动时间超过预设时间阈值,那么下一个报文到达后,判断出对应Flowlet的valid bit为0,这说明接收到的报文是一个新Flowlet的首包,更具体的说明请参见后续描述部分。在本发明实施例中实际采用第二种方式,第二种方式的好处是需要维护的表项数远少于第一种方式。
[0070] 源Leaf交换机每接收到一个报文,都会根据该报文的五元组信息进行哈希计算,并在存储的Flowlet表中确定与得到的哈希值匹配的Flowlet条目。其中,若根据该报文的五元组信息进行哈希计算得到的哈希值,与Flowlet表中任一Flowlet条目的五元组信息的哈希值计算结果一致,则将该Flowlet条目确定为与得到的哈希值匹配的Flowlet条目。
[0071] 若该Flowlet条目中的有效位信息(Valid Bit)为第一数值,则确定该报文为该Flowlet的首报文;若该Flowlet条目中的有效位信息为第二数值,则确定该报文为该Flowlet的非首报文。其中,第一数值通常为0,第二数值通常为1。五元组信息通常包括:Src IP(Source Internet Protocol,源网络协议地址)、Dst IP(Destination IP,目的IP地址)、Src Port(源端口)、Dst Port(目的端口)、Protocol(控制协议)。此外,Flowlet表包含的内容具体如下述表1所示:
[0072] 表1
[0073]
[0074] 在表1中,一个Flowlet对应一个条目。对于一个Flowlet条目来说,前五列元素为五元组信息,最近活跃时间(Last Active Time)用于记录最后一次使用一条Flowlet条目的时间,出端口信息(Outport)指示用于传输报文的等价路径信息。Valid Bit的取值为0或1,用于指示当前Flowlet条目记录的Flowlet是否处于有效状态。如果有效位信息的取值为
0,则证明当前Flowlet条目记录的Flowlet处于无效状态,这个Flowlet已经超时。
[0075] 703、若该报文为该Flowlet的非首报文,源Leaf交换机根据存储的Flowlet表中与其关联Flowlet条目中的出端口信息确定等价路径A,将该报文调度到等价路径A上传输,并将与其关联Flowlet条目中的最近活跃时间更新为当前时间。
[0076] 针对该种情况,由于源Leaf交换机在接收到该Flowlet的首报文时,已经在Flowlet表中建立好与其关联Flowlet条目,因此在接收到该Flowlet的非首报文时,该Flowlet条目中已经至少包括五元组信息、最近活跃时间、出端口信息和有效位信息了,且有效位信息的取值为1。由于该Flowlet条目中包括出端口信息,因此直接将该出端口信息指示的等价路径A确定为传输该报文的等价路径,将该报文调度到等价路径A上进行传输,同时将该Flowlet条目中的Last Active Time更新为当前时间。
[0077] 704、若该报文为该Flowlet的首报文,则源Leaf交换机根据该报文的目的地址确定目的Leaf交换机,在存储的等价路径权重表中,确定与目的Leaf交换机关联的至少一条等价路径;根据至少一条等价路径的权重值,将该报文调度到等价路径B上传输。
[0078] 由于该报文为该Flowlet的首报文,因此这是一个新的Flowlet,Flowlet表中除了有效位信息(取值为0)之外的其他信息均为之前已超时的Flowlet的相关信息,因此还需源Leaf交换机将该报文的五元组信息、当前时间作为最近活跃时间保存到Flowlet表中对应的Flowlet条目中,同时将有效位信息由第一数值更新为第二数值,也即由0更新为1。之后,源Leaf交换机再根据控制器下发的等价路径权重表,计算将该报文调度到哪一个等价路径上进行传输。其中,等价路径B的具体确定过程如下:
[0079] 源Leaf交换机获取与目的Leaf交换机之间每一条等价路径的权重值,计算每一条等价路径的权重值之和,并产生一个数值范围位于零至该权重值之和之间的随机数;根据该随机数的数值,在与目的Leaf交换机之间的全部等价路径中,确定与该随机数匹配的等价路径B,将该报文调度到等价路径B上传输。
[0080] 以报文从Leaf#1发送到Leaf#3为例,由图8可知,Leaf#1至Leaf#3的三条等价路径的权重值分别为0、1、4,因此各条等价路径的权重值之和为5。对于每个新的Flowlet(即Flowlet中的首包),产生一个范围在1~5的随机数;如果随机数的值为1,将该报文调度到Leaf#1→Spine#2→Leaf#3这条等价路径上(即图8中Leaf#1的第2个出端口);如果随机数为2~5,则将该报文调度到Leaf#1→Spine#3→Leaf#3这条等价路径上(即图8中Leaf#1的第3个出端口),这样便可保证Leaf#1至Leaf#3的三条等价路径上Flowlet的数目比例为0∶1∶4,实现了负载均衡。
[0081] 需要说明的是,在确定等价路径B后,将等价路径B的路径标识作为出端口信息保存在Flowlet表的对应Flowlet条目中。这样对于该Flowlet的后续报文(即非Flowlet首包),则可直接读取该Flowlet条目中的出端口信息进行报文发送。
[0082] 此外,当两两Leaf交换机之间的各条等价路径中链路状态变化时,比如端口down或up,关联的Leaf交换机会将端口down或up的情况上报控制器,由控制器根据端口down或up的情况,根据步骤701中类似的方式重新计算两两Leaf交换机之间的各条等价路径的权重值,并将权重值发生变化的部分下发给涉及到的Leaf交换机。假设如8中Spine#1→Leaf#3链路恢复正常,则各个Leaf交换机的等价路径权重表将变为图9所示。与图8对照可知,在Spine#1→Leaf#3链路恢复正常后,与Leaf#1关联的等价路径权重表、与Leaf#2关联的等价路径权重表、与Leaf#3关联的等价路径权重表均发生了变化,因此分别向三个Leaf交换机下发新等价路径权重表。
[0083] 需要说明的是,Leaf交换机会周期性地扫描Flowlet表中所有Flowlet条目,对于Flowlet已超时的表项,会将该表项设置为无效状态。其中,Flowlet已超时的表项指代当前时间减去表项中Last Active Time大于某个预设时间阈值的表项。也即,Leaf交换机对于Flowlet表中的每一个Flowlet条目,周期性计算当前时间与该Flowlet条目中记录的最近活跃时间之间的差值;若该差值大于预设时间阈值,则将该Flowlet条目设置为无效状态。
[0084] 此外,本发明实施例提及的负载均衡方法同样可运用于三级Clos的Fat-tree架构数据中心网络。其中三级Clos的Fat-tree架构实际上由多个二级Clos叠加而成。如图10所示的三级Clos Fat-tree架构,两个POD(Pool Of Device,设备池)分别对应一个二级Clos,即TOR(Top OfRack,架顶交换机)#1、TOR#2、AGG(Aggregation,汇聚交换机)#1、AGG#2组成一个二级Clos,TOR#3、TOR#4、AGG#3、AGG#4组成另外一个二级Clos,同时第二层的AGG#1、AGG#2、AGG#3、AGG#4和Spine#1、Spine#2又组成1个二级Clos,分别运行本发明所述方案,可达到非常好的负载均衡效果。
[0085] 本发明实施例提供的方法,控制器根据整网链路信息,分别为两两交换机之间的各条等价路径设置权重值,并将对应的等价路径权重表下发至每一个交换机,且交换机在接收到服务器发送的报文后,进行Flowlet检测,这样交换机可直接根据本地存储的等价路径权重表和Flowlet表作基于Flowlet的负载均衡,无需交换机实时获取各个路径的负载情况,仅需在链路状态发送变化时重新计算一次等价路径权重即可,大大降低了负载均衡算法的复杂度,效果较佳。
[0086] 图11是本发明实施例提供的一种负载均衡方法的流程图。以交换机执行该方法的度为例,参见图11,本发明实施例提供的方法流程包括:
[0087] 1101、在接收到服务器发送的一个报文后,判断该报文是否为一个Flowlet的首报文;若该报文为一个Flowlet的首报文,则执行下述步骤1102。
[0088] 1102、若该报文为一个Flowlet的首报文,则根据该报文的目的地址确定目的交换机。
[0089] 1103、在存储的等价路径权重表中,确定与该目的交换机关联的至少一条等价路径的权重值,该等价路径权重表中存储了至少一条等价路径与权重值之间的对应关系。
[0090] 1104、根据至少一条等价路径的权重值,将该报文调度到相应的等价路径上传输。
[0091] 本发明实施例提供的方法,交换机在接收到服务器发送的报文后进行Flowlet检测,之后交换机直接根据本地存储的等价路径权重表作基于Flowlet的负载均衡,其中所述等价路径权重表中存储了至少一条等价路径与权重值之间的对应关系;比如在检测到当前接收到的报文为一个Flowlet的首报文后,直接根据该报文的目的地址确定目的交换机,并在存储的等价路径权重表中确定与所述目的交换机关联的至少一条等价路径的权重值,进而根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输,从而在无需交换机实时获取各个路径的负载情况下实现了负载均衡,大大降低了负载均衡算法的复杂度,效果较佳。
[0092] 在另一个实施例中,所述根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输,包括:
[0093] 获取所述至少一条等价路径中每一条等价路径的权重值;
[0094] 计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;
[0095] 根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;
[0096] 将所述报文调度到所述第一指定等价路径上传输。
[0097] 在另一个实施例中,所述判断所述报文是否为一个Flowlet的首报文,包括:
[0098] 根据所述报文的五元组信息进行哈希计算,得到哈希值;
[0099] 在存储的Flowlet表中,确定与所述哈希值匹配的Flowlet条目;
[0100] 若所述Flowlet条目中的有效位信息为第一数值,则确定所述报文为所述Flowlet的首报文,将所述五元组信息、当前时间作为最近活跃时间更新至所述Flowlet条目中,并将所述有效位信息由第一数值更新为第二数值;
[0101] 其中,一个Flowlet条目中至少包括一个Flowlet的五元组信息、最近活跃信息、出端口信息和有效位信息。
[0102] 在另一个实施例中,该方法还包括:
[0103] 若所述Flowlet条目中的有效位信息为所述第二数值,则确定所述报文为所述Flowlet的非首报文,根据所述Flowlet条目中的出端口信息确定第二指定等价路径;
[0104] 将所述报文调度到所述第二指定等价路径上传输,并将所述Flowlet条目中的最近活跃时间更新为当前时间。
[0105] 在另一个实施例中,该方法还包括:
[0106] 在确定与所述随机数匹配的第一指定等价路径后,将所述第一指定等价路径的路径标识作为出端口信息,保存在Flowlet表的对应Flowlet条目中。
[0107] 在另一个实施例中,该方法还包括:
[0108] 若所述至少一条等价路径的链路状态发生变化,则向控制器发送链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的第三指定等价路径,以使所述控制器根据所述链路状态变更消息,重新计算所述至少一条等价路径的权重值,得到新等价路径权重表;
[0109] 接收所述控制器发送的所述新等价路径权重表,并存储所述新等价路径权重表。
[0110] 在另一个实施例中,该方法还包括:
[0111] 对于所述Flowlet表中的每一个Flowlet条目,周期性计算当前时间与最近活跃时间之间的差值;
[0112] 若所述差值大于预设时间阈值,则将所述Flowlet条目设置为无效状态。
[0113] 上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
[0114] 图12是本发明实施例提供的一种负载均衡装置的结构示意图。参见图12,该装置包括:判断模1201、确定模块1202、调度模块1203。
[0115] 判断模块1201,用于在接收到服务器发送的一个报文后,判断所述报文是否为一个Flowlet的首报文;
[0116] 确定模块1202,用于若所述报文为所述Flowlet的首报文,则根据所述报文的目的地址确定目的交换机;
[0117] 所述确定模块1202,还用于在存储的等价路径权重表中,确定与所述目的交换机关联的至少一条等价路径的权重值,所述等价路径权重表中存储了所述至少一条等价路径与权重值之间的对应关系;
[0118] 调度模块1203,用于根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输。
[0119] 在另一个实施例中,所述调度模块1203,用于获取所述至少一条等价路径中每一条等价路径的权重值;计算所述每一条等价路径的权重值之和,产生一个数值范围位于零至所述权重值之和之间的随机数;根据所述随机数的数值,在所述至少一条等价路径中,确定与所述随机数匹配的第一指定等价路径;将所述报文调度到所述第一指定等价路径上传输。
[0120] 在另一个实施例中,该装置还包括:
[0121] 所述判断模块1201,用于根据所述报文的五元组信息进行哈希计算,得到哈希值;在存储的Flowlet表中,确定与所述哈希值匹配的Flowlet条目;若该Flowlet条目中的有效位信息为第一数值,则确定所述报文为所述Flowlet的首报文;
[0122] 更新模块1204,用于当所述报文为所述Flowlet的首报文时,将所述五元组信息、当前时间作为最近活跃时间更新至所述Flowlet条目中,并将所述有效位信息由第一数值更新为第二数值;其中,一个Flowlet条目中至少包括一个Flowlet的五元组信息、最近活跃信息、出端口信息和有效位信息。
[0123] 在另一个实施例中,所述判断模块1201,还用于若所述Flowlet条目中的有效位信息为所述第二数值,则确定所述报文为所述Flowlet的非首报文;
[0124] 所述确定模块1202,还用于当所述报文为所述Flowlet的非首报文时,根据所述Flowlet条目中的出端口信息确定第二指定等价路径;
[0125] 所述调度模块1203,还用于当所述报文为所述Flowlet的非首报文时,将该报文调度到所述第二指定等价路径上传输;更新模块1204,还用于当所述报文为所述Flowlet的非首报文时,将该Flowlet条目中的最近活跃时间更新为当前时间。
[0126] 在另一个实施例中,该装置还包括:
[0127] 保存模块1205,用于在确定与所述随机数匹配的第一指定等价路径后,将所述第一指定等价路径的路径标识作为出端口信息,保存在Flowlet表的对应Flowlet条目中。
[0128] 在另一个实施例中,该装置还包括:
[0129] 发送模块1205,用于若所述至少一条等价路径的链路状态发生变化,则向控制器发送链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的第三指定等价路径,以使所述控制器根据所述链路状态变更消息,重新计算所述至少一条等价路径的权重值,得到新等价路径权重表;
[0130] 接收模块1206,用于接收所述控制器发送的所述新等价路径权重表,并存储所述新等价路径权重表。
[0131] 在另一个实施例中,该装置还包括:
[0132] 计算模块1207,用于对于所述Flowlet表中的每一个Flowlet条目,周期性计算当前时间与最近活跃时间之间的差值;
[0133] 设置模块1208,用于若所述差值大于预设时间阈值,则将所述Flowlet条目设置为无效状态。
[0134] 本发明实施例提供的装置,在接收到控制器下发的等价路径权重表并进行存储后,若接收到服务器发送的报文,则进行Flowlet检测并直接根据本地存储的等价路径权重表和Flowlet表作基于Flowlet的负载均衡,为当前接收到的报文选择待传输的等价路径,无需交换机实时获取各个路径的负载情况,仅需在链路状态发送变化时重新计算一次等价路径权重即可,大大降低了负载均衡算法的复杂度,效果较佳。
[0135] 图13是本发明实施例提供的一种负载均衡装置的结构示意图。参见图13,该装置包括:计算模块1301和发送模块1302。
[0136] 计算模块1301,用于对于一个源交换机,计算所述源交换机与各个目的交换机之间多条等价路径的权重值,得到所述源交换机的等价路径权重表;
[0137] 发送模块1302,用于向所述源交换机下发所述等价路径权重表,以使所述源交换机在接收到服务器发送的一个报文且判断出所述报文为一个Flowlet的首报文后,根据所述报文的目的地址确定目的交换机,在所述等价路径权重表中确定与所述目的交换机关联的至少一条等价路径的权重值,根据所述至少一条等价路径的权重值,将所述报文调度到相应的等价路径上传输。
[0138] 在另一个实施例中,所述计算模块1301,用于对于一个目的交换机,确定所述源交换机与所述目的交换机之间的各条等价路径,所述等价路径包括所述源交换机至中转交换机之间的第一链路路径、以及所述中转交换机至所述目的交换机之间的第二链路路径;对于一条等价路径,根据所述第一链路路径和所述第二链路路径的链路状态,计算所述等价路径的权重值。
[0139] 在另一个实施例中,该装置还包括:
[0140] 接收模块1303,用于接收所述源交换机发送的链路状态变更消息,所述链路状态变更消息指示了链路状态发生变化的等价路径;
[0141] 所述计算模块1301,还用于根据所述链路状态变更消息,重新计算各个源交换机与各个目的交换机之间多条等价路径的权重值,得到新等价路径权重表;
[0142] 所述发送模块1302,还用于向各个源交换机发送匹配的新等价路径权重表。
[0143] 本发明实施例提供的装置,在根据整网链路信息,分别为两两交换机之间的各条等价路径设置权重值,并将对应的等价路径权重表下发至每一个交换机后,若交换机接收到服务器发送的报文,则进行Flowlet检测并直接根据本地存储的等价路径权重表和Flowlet表作基于Flowlet的负载均衡,以为当前接收到的报文选择待传输的等价路径,无需交换机实时获取各个路径的负载情况,仅需在链路状态发送变化时重新计算一次等价路径权重即可,大大降低了负载均衡算法的复杂度,效果较佳。
[0144] 需要说明的是:上述实施例提供的负载均衡装置在进行负载均衡时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的负载均衡装置与负载均衡方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0145] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0146] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈