《一种集群负载均衡调度方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种集群负载均衡调度方法及系统.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410816957.3(22)申请日 2014.12.24H04L 29/08(2006.01)(71)申请人 浪潮(北京)电子信息产业有限公司地址 100085 北京市海淀区上地信息路 2 号2-1号C栋1层(72)发明人 辛永欣(74)专利代理机构 北京安信方达知识产权代理有限公司 11262代理人 王康 李丹(54) 发明名称一种集群负载均衡调度方法及系统(57) 摘要本发明提供一种集群负载均衡调度方法及系统,上述方法包括以下步骤:获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得 IP 地址。
2、对应的二进制位数信息;根据预设的初始层级,获取当前的hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度 ;根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果;将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。本发明能够大量减少瀑布式散列的集群负载均衡调度算法中hash 运算的运算量,从而提高效率。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书4页 附图3页(10)申请公布号 CN 104468823 A(43)申请公布日 2015.03.。
3、25CN 104468823 A1/2 页21.一种集群负载均衡调度方法,其特征在于,包括以下步骤 :获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息 ;根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度 ;根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果 ;将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。2.根据权利要求 1 所述的方法,其特征在于,将所述折叠结果对当前掩码取余运算,获得。
4、当前的 hash 值即服务器索引值 ;根据所述服务器索引值,获取对应的服务器,若所述服务器满足预设条件,则确定所述服务器为目标服务器并由所述目标服务器对所述请求进行处理。3.根据权利要求 2 所述的方法,其特征在于,若所述服务器不满足预设条件,则继续增加层级,直到最大层级 N-1,如果到最大层级还找不到满足要求服务器则返回失败。4.根据权利要求 2 或 3 所述的方法,其特征在于,所述预设条件是指 :服务器的连接数目小于或等于 2 倍的权值。5.根据权利要求 1 所述的方法,其特征在于,获取业务请求中携带的 IP 地址信息并对所述 IP 地址信息按照预设的处理策略进行处理,获得 IP 地址对应。
5、的二进制位数信息的过程为 :获取业务请求中携带的 IP 地址信息后,删除分割符“.”,不足三位的域加 0 补足三位,获取 IP 整型值 ;通过整形二进制位数计算函数 calc_bit_len,获取 IP 整型值对应的二进制位数信息。6.根据权利要求 1 所述的方法,其特征在于,预设的初始层级为 0。7.根据权利要求 1 所述的方法,其特征在于,若折叠长度为 K,则先取 IP 地址对应的二进制位数的低 K 位加入到折叠结果中,然后将 IP 地址对应的二进制位数右移 K 位,如果 IP地址对应的二进制位数不为 0,则继续将 IP 地址对应的二进制位数的低 K 位加入到折叠结果中,直至 IP 地址对。
6、应的二进制位数为 0。8.根据权利要求 1 所述的方法,其特征在于,当前的 hash 掩码二进制位数为 K 即折叠长度,IP 地址对应的二进制位数为大于 2K 小于 3K,则根据获取的折叠长度 K,将 IP 地址对应的二进制串分成三段,三段右对齐按位相加即可得到折叠后的 IP 值即折叠结果。9.一种集群负载均衡调度系统,其特征在于,包括 IP 地址二进制位数获取模块、折叠长度获取模块、折叠结果获取模块、目标服务器确定模块 ;其中,所述 IP 地址二进制位数获取模块通过所述折叠长度获取模块与所述折叠结果获取模块相连 ;所述折叠长度获取模块通过所述折叠结果获取模块与所述目标服务器确定模块相连 ;所。
7、述 IP 地址二进制位数获取模块,用于获取业务请求中携带的 IP 地址信息并对所述IP 地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息并将所述IP 地址对应的二进制位数信息发送至所述折叠长度获取模块 ;所述折叠长度获取模块,用于根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度并将所述折叠长度发送权 利 要 求 书CN 104468823 A2/2 页3至所述折叠结果获取模块 ;所述折叠结果获取模块,用于根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果并将所述折叠结果发送至所述。
8、目标服务器确定模块 ;所述目标服务器确定模块,用于将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。权 利 要 求 书CN 104468823 A1/4 页4一种集群负载均衡调度方法及系统技术领域0001 本发明属于负载均衡领域,尤其涉及一种集群负载均衡调度方法及系统。背景技术0002 在集群计算中经常使用各种负载均衡算法,解决系统的可伸缩性和透明性问题,即通过负载均衡调度器将请求高效地分发到不同的服务器执行,使得由多台独立计算机组成的集群系统成为一台虚拟服务器,客户端应用程序与集群系统交互时,就像与一台高性能的服务器交互一样。0003 目前常见的。
9、负载均衡调度算法有轮叫调度、加权轮叫调度、最小连接调度、加权最小连接调度、基于局部性的最少链接、带复制的基于局部性最少链接、目标地址散列调度、源地址散列调度等,源地址散列调度是比较常见的静态调度算法,瀑布式散列的集群负载均衡调度算法是一种改进的源地址散列调度算法,在实际应用中,可以结合这种调度算法使用在防火墙集群中,从而保证整个系统有唯一的出入口。0004 但是,在瀑布式散列的集群负载均衡调度算法中,根据源 IP 地址乘上一个大素数再哈希当前层级的掩码,该算法的存在两个问题,问题一是当掩码位数远小于 IP 地址与大素数乘积的位数时,哈希运算只使用了IP地址与大素数乘积部分位,如此会使得hash。
10、结果冲突较高,需要增加层级避免,如掩码为 100 时,则 IP 地址与大素数乘积的后两位就决定了 hash 的结果,如果有两个 IP 地址,IP 地址与大素数乘积的后两位相同,则得到了相同的hash 值,此时就需增加瀑布层级来避免冲突,这样效率就降低了 ;问题二是 IP 地址和大素数的乘法运算属于两个大数的乘法运算,效率低。发明内容0005 本发明提供一种集群负载均衡调度方法及系统,以解决上述问题。0006 本发明提供一种集群负载均衡调度方法,包括以下步骤 :0007 获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息 ;000。
11、8 根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度 ;0009 根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果 ;0010 将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。0011 本发明还提供一种集群负载均衡调度系统,包括 IP 地址二进制位数获取模块、折叠长度获取模块、折叠结果获取模块、目标服务器确定模块 ;其中,所述 IP 地址二进制位数获取模块通过所述折叠长度获取模块与所述折叠结果获取模块相连 ;所述折叠长度获取模块通过所述折叠结果获取模块与。
12、所述目标服务器确定模块相连 ;0012 所述 IP 地址二进制位数获取模块,用于获取业务请求中携带的 IP 地址信息并对说 明 书CN 104468823 A2/4 页5所述 IP 地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息并将所述 IP 地址对应的二进制位数信息发送至所述折叠长度获取模块 ;0013 所述折叠长度获取模块,用于根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度并将所述折叠长度发送至所述折叠结果获取模块 ;0014 所述折叠结果获取模块,用于根据获取的折叠长度对 IP 地址对应的。
13、二进制位数进行折叠,获取折叠结果并将所述折叠结果发送至所述目标服务器确定模块 ;0015 所述目标服务器确定模块,用于将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。0016 本发明提供一种集群负载均衡调度方法及系统,能够大量减少瀑布式散列的集群负载均衡调度算法中 hash 运算的运算量,从而提高效率。附图说明0017 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 :0018 图 1 所示为本发明实施例 1 的集群负载均衡调度方法处理流程图 ;0。
14、019 图 2 所示为本发明实施例 2 的折叠方式示意图 ;0020 图 3 所示为本发明实施例 3 的集群负载均衡调度方法处理流程图 ;0021 图 4 所示为本发明实施例 4 的集群负载均衡调度系统结构图。具体实施方式0022 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。0023 图 1 所示为本发明实施例 1 的集群负载均衡调度方法处理流程图,包括以下步骤:0024 步骤 101 :获取业务请求中携带的 IP 地址信息并对所述 IP 地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息 ;。
15、0025 获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息的过程为 :0026 获取业务请求中携带的IP地址信息后,删除分割符“.”,不足三位的域加0补足三位,获取 IP 整型值 ;0027 通过整形二进制位数计算函数 calc_bi t_len,获取 IP 整型值对应的二进制位数信息。0028 例如 :IP 地址信息为 192.168.0.1 ;删除分割符“.”,不足三位的域加 0 补足三位( 第三个域补充两个 0 变成 000,第四个域补充两个 0 变成 001),转化后获得 IP 整型值192168000001。0029。
16、 calc_bit_len 为整形二进制位数计算函数,二进制位数为该整形值二进制表示中最左边的 1 所在的位数 :具体计算方法为,每次右移一位,并记录右移次数,如果最低位为 1则二进制长度等于右移次数,直到整形数值为 0 为止。例如传入整形数为 100,则其二进制说 明 书CN 104468823 A3/4 页6表示为“01100100”,最左边的 1 其所在的位数为 7( 从右往左数 ),则 100 的二进制位数为7 位。0030 步骤 102 :根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度 ;0031 预设的初始层。
17、级为 0。0032 步骤 103 :根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果 ;0033 如果折叠长度为K,则先取IP地址对应的二进制位数的低K位加入到折叠结果中,然后将 IP 地址对应的二进制位数右移 K 位,如果 IP 地址对应的二进制位数不为 0,则继续将 IP 地址对应的二进制位数的低 K 位加入到折叠结果中,直至 IP 地址对应的二进制位数为 0。0034 如图 2 所示,假设当前的 hash 掩码二进制位数为 K 即折叠长度,IP 地址对应的二进制位数为大于 2K 小于 3K,则根据获取的折叠长度 K,将 IP 地址对应的二进制串分成三段,三段右对齐按。
18、位相加即可得到折叠后的 IP 值即折叠结果。0035 步骤 104 :将所述折叠结果对当前掩码取余运算,获得当前的 hash 值即服务器索引值 ;0036 该 hash 算法使得 IP 地址对应二进制位数的全部位值都参与 hash 运算,而且避免了大素数乘法,效率大幅提高。0037 步骤 105 :根据所述服务器索引值,获取对应的服务器,若所述服务器满足预设条件,则确定所述服务器为目标服务器并由所述目标服务器对所述请求进行处理。0038 所述预设条件是指 :服务器的连接数目小于或等于 2 倍的权值。0039 若有一组服务器 S S0,S1,.,Sn-1,W(Si) 表示服务器 Si 的权值,C。
19、(Si) 表示服务器 Si 的当前连接数。ServerNode 是包含所有服务器的数组,长度为 N ;初始化时,将所有服务器顺序放置到 ServerNode 表中 ;若服务器的连接数目大于 2 倍的权值,则表示服务器已超载。0040 若所述服务器不满足预设条件,则继续增加层级,直到最大层级 N-1,如果到最大层级还找不到满足要求服务器则返回失败。0041 图 3 所示为本发明实施例 3 的集群负载均衡调度方法处理流程图,包括以下步骤:0042 步骤 301 :获取业务请求中携带的 IP 地址信息并对所述 IP 地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息 ;0043。
20、 步骤 302 :根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度 ;0044 步骤 303 :根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果 ;0045 步骤 304 :将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。0046 图 4 所示为本发明实施例 4 的集群负载均衡调度系统结构图,包括 IP 地址二进制位数获取模块、折叠长度获取模块、折叠结果获取模块、目标服务器确定模块 ;其中,所述说 明 书CN 104468823 A4/4 页7IP 地址。
21、二进制位数获取模块通过所述折叠长度获取模块与所述折叠结果获取模块相连 ;所述折叠长度获取模块通过所述折叠结果获取模块与所述目标服务器确定模块相连 ;0047 所述 IP 地址二进制位数获取模块,用于获取业务请求中携带的 IP 地址信息并对所述 IP 地址信息按照预设的处理策略进行处理,获得 IP 地址对应的二进制位数信息并将所述 IP 地址对应的二进制位数信息发送至所述折叠长度获取模块 ;0048 所述折叠长度获取模块,用于根据预设的初始层级,获取当前的 hash 掩码并计算当前的 hash 掩码对应的二进制位数并将所述二进制位数作为折叠长度并将所述折叠长度发送至所述折叠结果获取模块 ;004。
22、9 所述折叠结果获取模块,用于根据获取的折叠长度对 IP 地址对应的二进制位数进行折叠,获取折叠结果并将所述折叠结果发送至所述目标服务器确定模块 ;0050 所述目标服务器确定模块,用于将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。0051 本发明提供一种集群负载均衡调度方法及系统,能够大量减少瀑布式散列的集群负载均衡调度算法中 hash 运算的运算量,从而提高效率。0052 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 104468823 A1/3 页8图1说 明 书 附 图CN 104468823 A2/3 页9图2图3说 明 书 附 图CN 104468823 A3/3 页10图4说 明 书 附 图CN 104468823 A。