一种服务器数据资源负载均衡处理方法及设备.pdf

上传人:Y0****01 文档编号:1094722 上传时间:2018-03-31 格式:PDF 页数:17 大小:531.82KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910169498.3

申请日:

2009.09.17

公开号:

CN102025753A

公开日:

2011.04.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20090917|||公开

IPC分类号:

H04L29/08; H04L12/56

主分类号:

H04L29/08

申请人:

阿里巴巴集团控股有限公司

发明人:

常国斌

地址:

英属开曼群岛大开曼岛

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司 11291

代理人:

郭润湘

PDF下载: PDF下载
内容摘要

本发明公开了一种服务器数据资源负载均衡处理设备,包括:确定提供数据资源服务的服务器的顺序;根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。采用本发明实施例中提供的技术方案,不仅能够同时兼顾容量平衡、负载平衡,而且实现方式简单可靠,比较通用。

权利要求书

1: 一种服务器数据资源负载均衡处理方法,其特征在于,包括如下步骤 : 设定提供数据资源服务的服务器的先后顺序 ; 确定所述每一台服务器的负载度 ; 如果当前服务器的负载度不为 0,并且当前服务器在上一轮服务器的轮循中提供过服 务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值 ; 否则,由当前服务器提供服务 ; 依次判断每一台服务器的负载度,确定提供服务的服务器。
2: 如权利要求 1 所述的方法,其特征在于,确定所述每一台服务器的负载度,包 括: 根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台服务 器的负载度,所述服务器存储的数据量越大其相应的负载度越大。
3: 如权利要求 1 所述的方法,其特征在于,确定所述每一台服务器的负载度,还包 括 :根据服务器的数量确定相差率,所述服务器的数量越少其相差率越大,所述相差率 用于在服务器的数量较少时降低负载度的取值。
4: 如权利要求 1 所述的方法,其特征在于,确定所述每一台服务器的负载度,包 括: 根据服务器数量确定相差率,所述相差率为 :当 I_sum_server > 10 时,I_diff_rate = 1 ;当 I_sum_server <= 10,I_diff_rate = 6-round(I_sum_server/2),其中,I_sum_server 为服务器数量, I_diff_rate 为相差率, round 为进行四舍五入运算 ; 确定每台服务器上的数据量 ; 确定每台服务器的负载度,所述负载度为 :Jack = round(round((I_count/I_sum_ count)*100)/I_diff_rate),其中, Jack 为负载度, I_count 为每台服务器上的数据数量, I_ sum_count 为所有服务器上的数据量总和。
5: 如权利要求 1 所述的方法,其特征在于,进一步包括 : 在满足设定的时间间隔后,重新确定负载度,当 1 台以上报务器报告忙碌状态时, 将所有服务器的负载度数值置 0。
6: 如权利要求 1 或 2 或 3 所述的方法,其特征在于,进一步包括 : 为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组 ; 在确定提供数据资源服务的服务器的顺序时,进一步包括 : 同一组的两台服务器的顺序尽量远隔。
7: 如权利要求 6 所述的方法,其特征在于,所述同一组的两台服务器的顺序尽量远 隔,进一步包括 : 由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数 据服务的顺序提供数据服务。
8: 如权利要求 1 所述的方法,其特征在于,所述将该服务器的负载度减少预定的值, 所述预定的值为 1。
9: 一种服务器数据资源负载均衡处理设备,其特征在于,包括 : 顺序确定模块,用于设定提供数据资源服务的服务器的先后顺序 ; 负载度确定模块,用于确定所述每一台服务器的负载度 ; 2 均衡模块,用于如果当前服务器的负载度不为 0,并且当前服务器在上一轮服务器的 轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度 减少预定的值 ;否则,由当前服务器提供服务 ;依次判断每一台服务器的负载度,确定 提供服务的服务器。
10: 如权利要求 9 所述的设备,其特征在于,所述负载度确定模块包括 : 相差率确定单元,用于根据服务器数量确定相差率,所述相差率为 :当 I_sum_ server > 10 时, I_diff_rae = 1 ;当 I_sum_server <= 10, I_diff_rate = 6-round(I_sum_ server/2),其中, I_sum_server 为服务器数量, I_diff_rae 为相差率, round 为进行四舍五 入运算 ; 数据量确定单元,用于确定每台服务器上的数据量 ; 负 载 度 确 定 单 元, 用 于 确 定 每 台 服 务 器 的 负 载 度, 所 述 负 载 度 为 :Jack = round(round((I_count/I_sum_count)*100)/I_diff_rate),其中, Jack 为负载度, I_count 为 每台服务器上的数据数量, I_sum_count 为所有服务器上的数据量总和。
11: 如权利要求 9 所述的设备,其特征在于,所述负载度确定模块进一步包括 : 置零单元,用于在满足设定的时间间隔后,重新确定负载度,当 1 台以上报务器报 告忙碌状态时,将所有服务器的负载度数值置 0。
12: 如权利要求 9 所述的设备,其特征在于,所述负载度确定模块进一步用于在到达 到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进 来时,重新确定每台服务器的负载度。
13: 如权利要求 9 至 12 任一所述的设备,其特征在于,所述顺序确定模块进一步用于 为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组 ;在确定提供数 据资源服务的服务器的顺序时,使同一组的两台服务器的顺序尽量远隔。
14: 如权利要求 9 所述的设备,其特征在于,所述均衡模块进一步用于采用并发方式 在多核 CPU 处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供 数据资源服务的服务器。

说明书


一种服务器数据资源负载均衡处理方法及设备

    【技术领域】
     本发明涉及数据处理技术,特别涉及一种服务器数据资源负载均衡处理方法及设备。 背景技术 在分配服务器资源时,通常需要保证各台服务器数据存储量比较均衡,又能防 止某几台负载高,当一台忙碌的时候还能正常工作。
     但是现有技术中,对于同时兼顾容量平衡、负载平衡的算法比较少见和复杂, 如果考虑到还需要满足各种特殊的软件需求,则这样的技术方案更少。
     因此,现有技术的不足在于 :没有一种通用的、简便的能够实现服务器资源平 衡的技术方案。
     发明内容
     本发明所解决的技术问题在于提供了一种服务器数据资源负载均衡处理方法及 本发明实施例中提供了一种服务器数据资源负载均衡处理方法,包括如下步设备。
     骤: 设定提供数据资源服务的服务器的先后顺序 ;
     确定所述每一台服务器的负载度 ;
     如果当前服务器的负载度不为 0,并且当前服务器在上一轮服务器的轮循中提供 过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的 值 ;否则,由当前服务器提供服务 ;
     依次判断每一台服务器的负载度,确定提供服务的服务器。
     较佳地,确定所述每一台服务器的负载度,包括 :
     根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台 服务器的负载度,所述服务器存储的数据量越大其相应的负载度越大。
     根据服务器的数量确定相差率,所述服务器的数量越少其相差率越大,所述相 差率用于在服务器的数量较少时降低负载度的取值。
     较佳地,确定所述每一台服务器的负载度,具体包括 :
     根据服务器数量确定相差率,所述相差率为 :当 I_sum_server > 10 时, I_diff_ rate = 1 ;当 I_sum_server <= 10,I_diff_rate = 6-round(I_sum_server/2),其中,I_sum_ server 为服务器数量, I_diff_rate 为相差率, round 为进行四舍五入运算 ;
     确定每台服务器上的数据量 ;
     确 定 每 台 服 务 器 的 负 载 度, 所 述 负 载 度 为 :Jack = round(round((I_count/I_ sum_count)*100)/I_diff_rate),其中, Jack 为负载度, I_count 为每台服务器上的数据数 量, I_sum_count 为所有服务器上的数据量总和。
     较佳地,进一步包括 :
     在满足设定的时间间隔后,重新确定负载度,当 1 台以上报务器报告忙碌状态 时,将所有服务器的负载度数值置 0。
     较佳地,进一步包括 :
     为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组 ;
     在确定提供数据资源服务的服务器的顺序时,进一步包括 :
     同一组的两台服务器的顺序尽量远隔。
     较佳地,所述同一组的两台服务器的顺序尽量远隔,进一步包括 :
     由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提 供数据服务的顺序提供数据服务。
     本发明实施例中还提供了一种服务器数据资源负载均衡处理设备,包括 :
     顺序确定模块,用于设定提供数据资源服务的服务器的先后顺序 ;
     负载度确定模块,用于确定所述每一台服务器的负载度 ;
     均衡模块,用于如果当前服务器的负载度不为 0,并且当前服务器在上一轮服 务器的轮循中未提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器 的负载度减少预定的值 ;否则,由当前服务器提供服务 ;依次判断每一台服务器的负载 度,确定提供服务的服务器。
     较佳地,所述负载度确定模块包括 :
     相差率确定单元,用于根据服务器数量确定相差率,所述相差率为 :当 I_sum_ server > 10 时, I_diff_rate = 1 ;当 I_sum_server <= 10, I_diff_rate = 6-round(I_sum_ server/2),其中,I_sum_server 为服务器数量,I_diff_rate 为相差率,round 为进行四舍五 入运算 ;
     数据量确定单元,用于确定每台服务器上的数据量 ;
     负 载 度 确 定 单 元, 用 于 确 定 每 台 服 务 器 的 负 载 度, 所 述 负 载 度 为 :Jack = round(round((I_count/I_sum_count)*100)/I_diff_rate),其中, Jack 为负载度, I_count 为 每台服务器上的数据数量, I_sum_count 为所有服务器上的数据量总和 ;
     较佳地,所述负载度确定模块进一步包括 :
     置零单元,在满足设定的时间间隔后,重新确定负载度,当 1 台以上服务器报 告忙碌状态时,将所有服务器的负载度数值置 0。
     较佳地,所述负载度确定模块进一步用于在到达到系统指定的循环次数时,或 者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的 负载度。
     较佳地,所述顺序确定模块进一步用于为每台服务器增加一个互为数据资源备 份的服务器,并将二者分为一组 ;在确定提供数据资源服务的服务器的顺序时,使同一 组的两台服务器的顺序尽量远隔。
     较佳地,所述均衡模块进一步用于采用并发方式在多核 CPU 处理器上根据服务 器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。
     本发明有益效果如下 :
     由于本发明在实施过程中,在确定提供数据资源服务的服务器的顺序后,将根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务 器。 由此可见,采用本发明实施例中提供的技术方案,不仅能够同时兼顾容量平衡、负 载平衡,而且实现方式简单可靠,比较通用。 附图说明
     图 1 为本发明实施例中服务器数据资源负载均衡处理方法实施流程示意图 ;
     图 2 为本发明实施例中实施数据资源负载均衡服务器组结构示意图 ;
     图 3 为本发明实施例中分组后的服务器数据资源负载均衡处理方法实施流程示 意图 ;
     图 4 为本发明实施例中每一服务器的 Jack 计算示意图 ;
     图 5 为服务器数据资源负载均衡处理设备结构示意图。 具体实施方式
     下面结合附图对本发明的具体实施方式进行说明。
     图 1 为服务器数据资源负载均衡处理方法实施流程示意图,如图所示,在负载 均衡处理过程中可以包括如下步骤 : 步骤 101、设定提供数据资源服务的服务器的先后顺序 ;
     步骤 102、确定所述每一台服务器的负载度 ;
     步骤 103、如果当前服务器的负载度不为 0,并且当前服务器在上一轮服务器的 轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该当前服务器的负 载度减少预定的值 ;否则,由当前服务器提供服务 ;
     步骤 104、依次判断每一台服务器的负载度,确定提供服务的服务器。
     本方案中,提供数据资源服务的服务器是指该服务器为外部设备提供数据存储 服务,本发明提供的技术方案目的在于使若干这样的服务器能够在为外部设备提供数据 存储服务时,能够保证各台服务器数据存储量比较均衡,又能防止某几台服务器提供存 储服务时负载过高。
     在确定提供数据资源服务的服务器的顺序,该顺序满足在服务器按所述顺序提 供数据资源服务时,同一时间下有一台服务器提供数据资源服务即可,即,只需要能够 保证不同时出现两台服务器面临任务分配就行。 下面的实施例中将会以最简单的 “环 状” 这一个顺序进行说明,该实施例中,将参与提供数据资源服务的服务器排成一个环 状的顺序,可以参见图 2,按该顺序,每一服务器依次提供服务,显然,在同一时间下只 可能有一台服务器提供数据资源服务。
     实施中,还可以进一步包括 :
     为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组 ;
     在确定提供数据资源服务的服务器的顺序时,进一步包括 :将同一组的两台服 务器的顺序尽量远隔。
     下面对具体实施的方式说明。
     为便于从整体上理解本发明实施例中提供的技术方案,下面以另一形式的实例 来说明本发明实施例提供的技术方案的实施流程。 该实例中,每一台服务器都配置了互
     为备份的服务器,且将其尽量远隔。 即,首先由主服务器顺序提供数据服务,然后由备 份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。
     图 2 为实施数据资源负载均衡服务器组结构示意图,图中用以示例的有 4 组共 八台服务器,当然,按本发明实施例提供的技术方案,实际实施时并不必只有八台服务 器,同时将每台服务器排成队列,其中分属于同一组的间隔尽量远隔,则如图所示,可 以包括 :
     处理服务器 100,该服务器用于按处理服务器数据资源负载均衡处理方法对各服 务器资源进行负载均衡,当然,其他具有类似数据处理、判断能力的硬件、软件或者硬 软件结合的功能实体也能实施。
     服务器 131(101),服务器 133(102),服务器 135(103),服务器 137(104),服务 器 132(101),服务器 134(102),服务器 136(103),服务器 138(104),其中,括号内为其 所属的组代号。
     该 例 中, 假 设 有 4 组 服 务 器 :101 组 (131-132)、102 组 2(133-134)、103 组 3(135-136)、104 组 4(137-138),对于每组两台机器做数据同步复制,即,如 101 组,被 增加进 131 的数据将会由同步机制复制到 132。 同理,对于增加至 132 的记录数据会被自 动同步到 131,此为一组机器。 其它 3 组相同情况。 实施中,如实施例中所示,可以按组划分服务器,每组服务器由奇数和偶数服 务器组成,奇数服务器存储和返回的数据主键是奇数,偶数服务器存储和返回的数据主 键是偶数。 同时,同一组服务器中,奇偶数据实时互相备份。
     分组的目的是为了分散数据存储,因为每组内两台服务器数据相互备份,可以 提高系统存储容量,并增加系统的可靠性,因为组内两台机器数据互备,当一台机器出 现问题,另一台机器立即能提供数据服务。
     实施中,由于系统结构设计中,相同一组数据需要彼此复制,为了减少复制过 程对系统整体性能影响,所以采用远隔策略。
     图 3 为分组后的服务器数据资源负载均衡处理方法实施流程示意图,如图所 示,在上述图 2 结构的服务器组中,在对数据资源进行负载均衡处理时,可以包括如下 步骤 :
     步骤 301、获取所有能提供服务的服务器列表 ;
     本步骤中,具体可以是将服务器 131、服务器 133、服务器 135、服务器 137、服 务器 132、服务器 134、服务器 136、服务器 138 列表,表示可以由表中的以上服务器提供 服务。
     步骤 302、按数据服务器的奇偶数确定服务器提供服务的先后顺序 ;
     本步骤中,如图将服务器按环状的顺序排列,即 :服务器 131 与服务器 132、服 务器 133 与服务器 134、服务器 135 与服务器 136、服务器 137 与服务器 138,其目的在于 使一族的服务器尽量远隔。
     由于在实施中采用了一组服务器中的两台服务器同步复制的机制,所以在顺序 编号时后,如果在按服务器编号的奇偶数来排列,它们自然就会出现尽量远隔的效果。 比如 :服务器 131、服务器 132、服务器 133、服务器 134、服务器 135、服务器 136、服 务器 137、服务器 138 时按顺序编号的,但是,服务器 131 与服务器 132 是一组、服务器
     133 与服务器 134 是一组、服务器 135 与服务器 136 是一组、服务器 137 与服务器 138 是 一组,所以采用编号的奇偶来排列时就会出现 :服务器 131、服务器 133、服务器 135、 服务器 137,然后是服务器 132、服务器 134、服务器 136、服务器 138,可以看出,同一 组的服务器出现了尽量远隔的效果,例如 :在同一组的服务器 131 与服务器 132 之间,间 隔了 3 台服务器,其他组的情况也一样。 当然,实施中还可以采用其他的排列方式,本 实施例仅是列举了较为方便的一种方式。
     步骤 303、按服务器组号确定服务器提供服务的先后顺序 ;
     本步骤中,如图 2 所示,在实施例中具体的编号为组 101、102、103、104,本 实施例中便可以具体按服务器组号的大小进行排列。 如图按组 101、102、103、104 排 列,即 :服务器 131(101),服务器 133(102),服务器 135(103),服务器 137(104),服务 器 132(101),服务器 134(102),服务器 136(103),服务器 138(104),其中,括号内为组 号。
     当然,实施中还可以采用其他的排列方式,本实施例仅是列举了较为方便的一 种方式。
     步骤 304、计算相差率 ; 其中,在确定相差率时,可以按照以下方式确定 :当 I_sum_server > 10 时, I_ diff_rate = 1 ;当 I_sum_server <= 10, I_diff_rate = 6-round(I_sum_server/2),其中, I_sum_server 为服务器数量,I_diff_rate 为相差率,round 为进行四舍五入运算 ;那么,图 2 中所示为 8 台服务器,其相差率为 :I_diff_rate = 6-round(8/2),再进一步 :I_diff_rate = 2。
     步骤 305、计算处于忙碌的计算机数量 ;
     步骤 306、计算总数据量 ;
     如图所示,总数据量为 :服务器 131 的 10000+ 服务器 133 的 15000+ 服务器 135 的 11000+ 服务器 137 的 12000 = 48000。
     在上述实施过程中,对应图 2 中的结构,实施是由处理服务器 100 进行处理。
     图 4 为每一服务器的 Jack 计算示意图,如图所示,在计算出总数据量后,对每 一台服务器可以按以下步骤实施,具体的,就是分别对服务器 131、服务器 133、服务器 135、服务器 137、服务器 132、服务器 134、服务器 136、服务器 138 按以下步骤实施 :
     步骤 401、判断处于忙碌的计算机数量是否为 0,是则转入步骤 402,否则转入 步骤 403 ;
     步骤 402、赋值 Jack 为 :当前服务器数据量占总数据量的百分比除以相差率, 其中, Jack 为负载度 ;
     以 服 务 器 131 为 例, Jack = round(round((I_count/I_sum_count)*100)/I_ diff_rate), 即 :Jack = round(round((10000/48000)*100)/2), 进 一 步 的, Jack = round(round10.4166),进一步的, Jack = 10 ;
     按此方式分别对服务器 131、服务器 133、服务器 135、服务器 137、服务器 132、服务器 134、服务器 136、服务器 138 进行计算得到每一台服务器的 Jack。
     步骤 403、给 Jack 赋值为 0。
     下面对各步骤进行说明。
     首先对根据每台服务器当前的数据量对 Jack 赋值进行说明。
     则具体实施中,赋值规则可以如下 :
     根据服务器数 I_sum_server,计算一个相差率 I_diff_rate ;如前所述,可以根据 服务器数量确定相差率,相差率为 :当 I_sum_server > 10 时,I_diff_rate = 1 ;当 I_sum_ server <= 10, I_diff_rate = 6-round(I_sum_server/2),其中, I_sum_server 为服务器数 量, I_diff_rate 为相差率, round 为进行四舍五入运算。
     I_diff_rate 的目的是为防止组数少的时候压力差距大引起单台负载高,组数越多 相差率越小,可以的取值范围为 :1-5。
     计算方法可以是 :
     当 I_sum_server > 10 时, I_diff_rate = 1 ;当 I_sum_server <= 10, I_diff_rate = 6-round(I_sum_server/2),其中,round 是对 I_sum_server/2 进行四舍五入 ;如 :当 I_ sum 取值为 1-2 的值是 5 ;取值为 3-4 的值是 4 ;取值为 5-6 的值是 3 ;取值为 7-8 的值 是 2,取值> 9 的值是 1。 以表表示则为 :
     I_sum_server( 服务器数 ) 1-2 3-4 5-6 7-8 >9
     I_diff_rate( 相差比率 ) 5 4 3 2 1具体的,每台服务器的赋值可以按下式计算 : Jack = round(round((I_count/I_sum_count)*100)/I_diff_rate) 其中,I_count 为每台机器当前的数据数量,I_sum_count 为所有服务器上数据量总和。 通过上式,将占全部数据的百分比 / 相差比率转化为 0-100 之间的整型,需要提 供给外部设备的数据量越大的服务器也意味着工作量越大,那么这样的服务器 Jack 值也 将越大。
     在上述实施中,相差率公式是用来解决当集群内服务器较少的情况下,增加服 务器,或者原来不能工作的服务器恢复回来之后的数据会否过载问题 ;
     JACK 值越大,表示该台服务器的存储数据量越多,代表着它之前已经提供了很 多数据资源服务,所以本次分配资源时,它应该少提供数据资源服务,少被分配,让其 它服务器更多地提供数据资源服务,从而最终实现使所有机器的数据存储量比较均衡。
     其次,对根据 JACK 的值来确定执行数据资源服务的具体的服务器的实施进行说 明。
     外部请求服务 ;
     从队列开始轮流提供服务,如按上述实施例的分组提供顺序为 :
     服务器 131 →服务器 133 →服务器 135 →服务器 137 →服务器 132 →服务器 134 → 服务器 136 →服务器 138。
     在此顺序下,如果轮到某台服务器对外提供数据存储服务时,先由处理服务器 100 判断该台服务器的负载度 Jack 是否为 0。 若 Jack 不为 0,并且上一次循环中,该台 服务器提供过数据存储服务,则该台服务器本次不提供数据存储服务,并将该台服务器 的负载度 Jack 值减少预定的值,优选的可以设定该预定的值为 1。 然后,直接使用下一 台服务器提供服务,并且是无条件提供服务。 实施中这样处理是由于 Jack 值越大,表示 该台服务器提供的数据存储服务越多,因此轮到它时,就将提供服务的机会强制给下一 台服务器。 而由于本次该台服务器并没有对外提供数据存储服务,因此,其负载度将会 相应的减少。
     如果轮到某台服务器提供数据服务时,处理服务器 100 判断该台服务器的负载 度 Jack 不为 0 时,并且上一轮没有提供过数据存储服务,则本轮由该台服务器提供数据 存储服务。 如果轮到的服务器 Jack 值为 0,则该台服务器无条件提供服务 ;
     当所有的服务器中有一台报告了忙碌状态,则设定所有服务器的 Jack 为 0 ;实 施中,服务器在处理服务请求时,可以通过进程来检查自己的状态,并汇报是否忙碌, 如果不忙碌则表示其可以提供服务 ;一台忙碌后所有服务器的 JACK 都赋值为 0 的目的是 当发现服务器忙碌时,整个系统平均负担,减小系统进一步恶化的可能。 优选的,本申 请实施例是在重新为每台服务器的负载度赋予初始的 JACK 值时检测服务器是否处于忙碌 状态,若其中有一台报告了忙碌状态,则设定所有服务器的 Jack 为 0。
     按上述规律反复进行,直到达到系统指定的循环次数时,重新为每台服务器的 负载度赋予初始的 JACK 值 ;或者在指定的时间间隔到达时,或者新的服务器状态和数 量会被提供进来时,重新为每台服务器的负载度赋予初始的 JACK 值。其中,新的服务器 状态和数量是指 :有的服务器可能由能提供服务的状态变为不能提供服务的状态,或者 是由不能提供服务的状态变为能提供服务的状态,这将会使相差率 I_diff_rate 发生变化, 而数量是指这样的服务器数量是多少,比如有 3 台服务器由不能提供服务的状态变为能 提供服务的状态。
     由上述实施例可以看出,确定由哪一台服务器提供服务是通过判断当前服务器 的负载度的取值进行的,即根据服务器数量以及每台服务器上的数据量确定提供数据资 源服务的服务器,可以包括 :
     根据服务器数量确定相差率,所述相差率为 :当 I_sum_server > 10 时, I_diff_ rate = 1 ;当 I_sum_server <= 10,I_diff_rate = 6-round(I_sum/2),其中,I_sum_server 为服务器数量, I_diff_rate 为相差率, round 为进行四舍五入运算 ;
     确定每台服务器上的数据量 ;
     确 定 每 台 服 务 器 的 负 载 度, 所 述 负 载 度 为 :Jack = round(round((I_count/I_ sum_count)*100)/I_diff_rate),其中, Jack 为负载度, I_count 为每台服务器上的数据数 量, I_sum_count 为所有服务器上数据量总和 ;
     在确定提供数据资源服务的服务器时,所有服务器按顺序提供服务资源,如果 当前服务器 Jack 不为 0,并且当前服务器在上一轮服务器的轮循中未将该服务器的 Jack 值 减少预定的值,则本轮将当前服务器 Jack 数减少预定的值,且按顺序确定下一服务器无 条件提供服务,否则,当前服务器同样无条件提供服务 ;提供服务的服务器的下一服务 器成为新的当前服务器,为一下次提供服务做准备。
     在确定提供数据资源服务的服务器时,如果服务器 Jack 不为 0,且 Jack 的数值 没有减少过预定的值,则本轮将当前服务器的 Jack 数值减少预定的值,并按服务器顺序 确定由下一服务器提供数据资源服务,如果服务器 Jack 为 0,确定该服务器提供数据资源 服务并在重新分配 Jack 后参与数据资源服务。
     在上述过程中,在确定提供数据资源服务的服务器时,所有服务器根据顺序排 成一个环依次提供服务资源,那么,对于当前的服务器,由于按顺序来确定提供数据资 源服务的服务器,那么根据每一轮的顺序,其就存在本次 ( 轮 )、上一次 ( 轮 )、下一次 ( 轮 ) 的分配关系,对于本次分配而言,其是否执行提供数据资源服务,取决于其上次是 否提供过服务,以及 Jack 的数值是否为 0 ;那么,在本次分配时,如果当前服务器 Jack 不为 0,并且当前服务器在上一轮服务器的轮循中未将该服务器的 Jack 值减少预定的值, 则本轮将当前服务器 Jack 数减少预定的值,并由环中的下一服务器无条件提供服务 ;否 则,当前服务器同样无条件提供服务 ;提供服务的服务器的下一服务器成为新的当前服 务器,为一下次提供服务做准备。 实施中,还可以进一步包括 :
     在满足设定的时间间隔后,重新分配 Jack 数,当 1 台以上报务器报告忙碌状态 时,所有服务器的 Jack 数值置 0。
     基于同一发明构思,本发明实施例中还提供了一种服务器数据资源负载均衡处 理设备,由于该设备解决问题的原理与一种服务器数据资源负载均衡处理方法相似,因 此该设备的实施可以参见方法的实施,重复之处不在赘述。
     图 5 为服务器数据资源负载均衡处理设备结构示意图,如图所示,设备中可以 包括 :
     顺序确定模块 501,用于设定提供数据资源服务的服务器的先后顺序 ;
     负载度确定模块 502,用于确定所述每一台服务器的负载度 ;
     均衡模块 503,用于如果当前服务器的负载度不为 0,并且当前服务器在上一轮 服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器 的负载度减少预定的值 ;否则,由当前服务器提供服务 ;依次判断每一台服务器的负载 度,确定提供服务的服务器。
     实施中,所述负载度确定模块包括 :
     相差率确定单元 5021,用于根据服务器数量确定相差率,所述相差率为 :当 I_ sum_server > 10 时, I_diff_rate = 1 ;当 I_sum_server <= 10, I_diff_rate = 6-round(I_ sum_server/2),其中,I_sum_server 为服务器数量,I_diff_rate 为相差率,round 为进行四 舍五入运算 ;
     数据量确定单元 5022,用于确定每台服务器上的数据量 ;
     负载度确定单元 5023,用于确定每台服务器的负载度,所述负载度为 :Jack =
     round(round((I_count/I_sum_count)*100)/I_diff_rate),其中, Jack 为负载度, I_count 为 每台服务器上的数据数量, I_sum_count 为所有服务器上的数据量总和。
     实施中,负载度确定模块中还可以进一步包括 :
     置零单元 5024,用于在满足设定的时间间隔后,重新确定负载度,当 1 台以上 报务器报告忙碌状态时,将所有服务器的负载度数值置 0。
     实施中,负载度确定模块还可以进一步用于在到达到系统指定的循环次数时, 或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器 的负载度。
     实施中,顺序确定模块还可以进一步用于为每台服务器增加一个互为数据资源 备份的服务器,并将二者分为一组 ;在确定提供数据资源服务的服务器的顺序时,使同 一组的两台服务器的顺序尽量远隔。
     实施中,均衡模块可以进一步用于采用并发方式在多核 CPU 处理器上根据服务 器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。
     具体实施中,如果据衡模块在实施中基于并发处理设计 ( 如 Erlang 语言 ),再配 合多核服务器则能够达到很好的效果,实践中,在使用了 Erlang 的数组列表来存储服务 器队列时,计算算法的速度非常理想。 这是由于并发处理语言在并发的特性上提供了很 多原子性,如变量不共享,两个进程通过消息通信,减少了很多其它非并发语言的这种 不足,例如 C 语言中使用指针,会导致很多不足一样。 多核代表数据每个并发的每个进 程在独立的 CPU 上运行,满足了并发的基础条件。 对于均衡模块这种需要在同一瞬间, 同时有多个请求产生的业务处理上,并发就能够体现出了速度上的优势,能够同一时间 将任务分配到不同的服务器上处理。 为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描 述。 当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实 现。
     由上述实施例可见,采用本发明实施例中提供的技术方案,能够同时兼顾容量 平衡、负载平衡,实现方式简单可靠,而且比较通用。
     本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机 程序产品。 因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件 方面的实施例的形式。 而且,本发明可采用在一个或多个其中包含有计算机可用程序代 码的计算机可用存储介质 ( 包括但不限于磁盘存储器、CD-ROM、光学存储器等 ) 上实施 的计算机程序产品的形式。
     本发明是参照根据本发明实施例的方法、设备 ( 系统 )、和计算机程序产品的流 程图和 / 或方框图来描述的。 应理解可由计算机程序指令实现流程图和 / 或方框图中的 每一流程和 / 或方框、以及流程图和 / 或方框图中的流程和 / 或方框的结合。 可提供这 些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设 备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行 的指令产生用于实现在流程图一个流程或多个流程和 / 或方框图一个方框或多个方框中 指定的功能的装置。
     这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
     定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括 指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和 / 或方框图一个方 框或多个方框中指定的功能。
     这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在 计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算 机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和 / 或方 框图一个方框或多个方框中指定的功能的步骤。
     尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创 造性概念,则可对这些实施例作出另外的变更和修改。 所以,所附权利要求意欲解释为 包括优选实施例以及落入本发明范围的所有变更和修改。
     显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的 精神和范围。 这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的 范围之内,则本发明也意图包含这些改动和变型在内。

一种服务器数据资源负载均衡处理方法及设备.pdf_第1页
第1页 / 共17页
一种服务器数据资源负载均衡处理方法及设备.pdf_第2页
第2页 / 共17页
一种服务器数据资源负载均衡处理方法及设备.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《一种服务器数据资源负载均衡处理方法及设备.pdf》由会员分享,可在线阅读,更多相关《一种服务器数据资源负载均衡处理方法及设备.pdf(17页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102025753A43申请公布日20110420CN102025753ACN102025753A21申请号200910169498322申请日20090917H04L29/08200601H04L12/5620060171申请人阿里巴巴集团控股有限公司地址英属开曼群岛大开曼岛72发明人常国斌74专利代理机构北京同达信恒知识产权代理有限公司11291代理人郭润湘54发明名称一种服务器数据资源负载均衡处理方法及设备57摘要本发明公开了一种服务器数据资源负载均衡处理设备,包括确定提供数据资源服务的服务器的顺序;根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务。

2、的服务器。采用本发明实施例中提供的技术方案,不仅能够同时兼顾容量平衡、负载平衡,而且实现方式简单可靠,比较通用。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书10页附图4页CN102025767A1/2页21一种服务器数据资源负载均衡处理方法,其特征在于,包括如下步骤设定提供数据资源服务的服务器的先后顺序;确定所述每一台服务器的负载度;如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负载度,确定提供服务的服务。

3、器。2如权利要求1所述的方法,其特征在于,确定所述每一台服务器的负载度,包括根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台服务器的负载度,所述服务器存储的数据量越大其相应的负载度越大。3如权利要求1所述的方法,其特征在于,确定所述每一台服务器的负载度,还包括根据服务器的数量确定相差率,所述服务器的数量越少其相差率越大,所述相差率用于在服务器的数量较少时降低负载度的取值。4如权利要求1所述的方法,其特征在于,确定所述每一台服务器的负载度,包括根据服务器数量确定相差率,所述相差率为当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_。

4、DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算;确定每台服务器上的数据量;确定每台服务器的负载度,所述负载度为JACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE,其中,JACK为负载度,I_COUNT为每台服务器上的数据数量,I_SUM_COUNT为所有服务器上的数据量总和。5如权利要求1所述的方法,其特征在于,进一步包括在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。6如权利要。

5、求1或2或3所述的方法,其特征在于,进一步包括为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,进一步包括同一组的两台服务器的顺序尽量远隔。7如权利要求6所述的方法,其特征在于,所述同一组的两台服务器的顺序尽量远隔,进一步包括由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。8如权利要求1所述的方法,其特征在于,所述将该服务器的负载度减少预定的值,所述预定的值为1。9一种服务器数据资源负载均衡处理设备,其特征在于,包括顺序确定模块,用于设定提供数据资源服务的服务器的先后顺序;负载度确定模块,用。

6、于确定所述每一台服务器的负载度;权利要求书CN102025753ACN102025767A2/2页3均衡模块,用于如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负载度,确定提供服务的服务器。10如权利要求9所述的设备,其特征在于,所述负载度确定模块包括相差率确定单元,用于根据服务器数量确定相差率,所述相差率为当I_SUM_SERVER10时,I_DIFF_RAE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_。

7、SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RAE为相差率,ROUND为进行四舍五入运算;数据量确定单元,用于确定每台服务器上的数据量;负载度确定单元,用于确定每台服务器的负载度,所述负载度为JACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE,其中,JACK为负载度,I_COUNT为每台服务器上的数据数量,I_SUM_COUNT为所有服务器上的数据量总和。11如权利要求9所述的设备,其特征在于,所述负载度确定模块进一步包括置零单元,用于在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务。

8、器的负载度数值置0。12如权利要求9所述的设备,其特征在于,所述负载度确定模块进一步用于在到达到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的负载度。13如权利要求9至12任一所述的设备,其特征在于,所述顺序确定模块进一步用于为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,使同一组的两台服务器的顺序尽量远隔。14如权利要求9所述的设备,其特征在于,所述均衡模块进一步用于采用并发方式在多核CPU处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。权利要。

9、求书CN102025753ACN102025767A1/10页4一种服务器数据资源负载均衡处理方法及设备技术领域0001本发明涉及数据处理技术,特别涉及一种服务器数据资源负载均衡处理方法及设备。背景技术0002在分配服务器资源时,通常需要保证各台服务器数据存储量比较均衡,又能防止某几台负载高,当一台忙碌的时候还能正常工作。0003但是现有技术中,对于同时兼顾容量平衡、负载平衡的算法比较少见和复杂,如果考虑到还需要满足各种特殊的软件需求,则这样的技术方案更少。0004因此,现有技术的不足在于没有一种通用的、简便的能够实现服务器资源平衡的技术方案。发明内容0005本发明所解决的技术问题在于提供了一。

10、种服务器数据资源负载均衡处理方法及设备。0006本发明实施例中提供了一种服务器数据资源负载均衡处理方法,包括如下步骤0007设定提供数据资源服务的服务器的先后顺序;0008确定所述每一台服务器的负载度;0009如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;0010依次判断每一台服务器的负载度,确定提供服务的服务器。0011较佳地,确定所述每一台服务器的负载度,包括0012根据每台服务器存储的数据量以及所有服务器存储的数据总量确定所述每一台服务器的负载度,所述服务器。

11、存储的数据量越大其相应的负载度越大。0013根据服务器的数量确定相差率,所述服务器的数量越少其相差率越大,所述相差率用于在服务器的数量较少时降低负载度的取值。0014较佳地,确定所述每一台服务器的负载度,具体包括0015根据服务器数量确定相差率,所述相差率为当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算;0016确定每台服务器上的数据量;0017确定每台服务器的负载度,所述负载度为J。

12、ACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE,其中,JACK为负载度,I_COUNT为每台服务器上的数据数量,I_SUM_COUNT为所有服务器上的数据量总和。说明书CN102025753ACN102025767A2/10页50018较佳地,进一步包括0019在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。0020较佳地,进一步包括0021为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;0022在确定提供数据资源服务的服务器的顺序时,进一步包括0023同一组的两台服务器的顺序。

13、尽量远隔。0024较佳地,所述同一组的两台服务器的顺序尽量远隔,进一步包括0025由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。0026本发明实施例中还提供了一种服务器数据资源负载均衡处理设备,包括0027顺序确定模块,用于设定提供数据资源服务的服务器的先后顺序;0028负载度确定模块,用于确定所述每一台服务器的负载度;0029均衡模块,用于如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中未提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负。

14、载度,确定提供服务的服务器。0030较佳地,所述负载度确定模块包括0031相差率确定单元,用于根据服务器数量确定相差率,所述相差率为当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算;0032数据量确定单元,用于确定每台服务器上的数据量;0033负载度确定单元,用于确定每台服务器的负载度,所述负载度为JACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_。

15、RATE,其中,JACK为负载度,I_COUNT为每台服务器上的数据数量,I_SUM_COUNT为所有服务器上的数据量总和;0034较佳地,所述负载度确定模块进一步包括0035置零单元,在满足设定的时间间隔后,重新确定负载度,当1台以上服务器报告忙碌状态时,将所有服务器的负载度数值置0。0036较佳地,所述负载度确定模块进一步用于在到达到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的负载度。0037较佳地,所述顺序确定模块进一步用于为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,使同一。

16、组的两台服务器的顺序尽量远隔。0038较佳地,所述均衡模块进一步用于采用并发方式在多核CPU处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。0039本发明有益效果如下0040由于本发明在实施过程中,在确定提供数据资源服务的服务器的顺序后,将根说明书CN102025753ACN102025767A3/10页6据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。由此可见,采用本发明实施例中提供的技术方案,不仅能够同时兼顾容量平衡、负载平衡,而且实现方式简单可靠,比较通用。附图说明0041图1为本发明实施例中服务器数据资源负载均衡处理。

17、方法实施流程示意图;0042图2为本发明实施例中实施数据资源负载均衡服务器组结构示意图;0043图3为本发明实施例中分组后的服务器数据资源负载均衡处理方法实施流程示意图;0044图4为本发明实施例中每一服务器的JACK计算示意图;0045图5为服务器数据资源负载均衡处理设备结构示意图。具体实施方式0046下面结合附图对本发明的具体实施方式进行说明。0047图1为服务器数据资源负载均衡处理方法实施流程示意图,如图所示,在负载均衡处理过程中可以包括如下步骤0048步骤101、设定提供数据资源服务的服务器的先后顺序;0049步骤102、确定所述每一台服务器的负载度;0050步骤103、如果当前服务器。

18、的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该当前服务器的负载度减少预定的值;否则,由当前服务器提供服务;0051步骤104、依次判断每一台服务器的负载度,确定提供服务的服务器。0052本方案中,提供数据资源服务的服务器是指该服务器为外部设备提供数据存储服务,本发明提供的技术方案目的在于使若干这样的服务器能够在为外部设备提供数据存储服务时,能够保证各台服务器数据存储量比较均衡,又能防止某几台服务器提供存储服务时负载过高。0053在确定提供数据资源服务的服务器的顺序,该顺序满足在服务器按所述顺序提供数据资源服务时,同一时间下有一台服务。

19、器提供数据资源服务即可,即,只需要能够保证不同时出现两台服务器面临任务分配就行。下面的实施例中将会以最简单的“环状”这一个顺序进行说明,该实施例中,将参与提供数据资源服务的服务器排成一个环状的顺序,可以参见图2,按该顺序,每一服务器依次提供服务,显然,在同一时间下只可能有一台服务器提供数据资源服务。0054实施中,还可以进一步包括0055为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;0056在确定提供数据资源服务的服务器的顺序时,进一步包括将同一组的两台服务器的顺序尽量远隔。0057下面对具体实施的方式说明。0058为便于从整体上理解本发明实施例中提供的技术方案,下面以另一形。

20、式的实例来说明本发明实施例提供的技术方案的实施流程。该实例中,每一台服务器都配置了互说明书CN102025753ACN102025767A4/10页7为备份的服务器,且将其尽量远隔。即,首先由主服务器顺序提供数据服务,然后由备份服务器按照与其对应的主服务器提供数据服务的顺序提供数据服务。0059图2为实施数据资源负载均衡服务器组结构示意图,图中用以示例的有4组共八台服务器,当然,按本发明实施例提供的技术方案,实际实施时并不必只有八台服务器,同时将每台服务器排成队列,其中分属于同一组的间隔尽量远隔,则如图所示,可以包括0060处理服务器100,该服务器用于按处理服务器数据资源负载均衡处理方法对各。

21、服务器资源进行负载均衡,当然,其他具有类似数据处理、判断能力的硬件、软件或者硬软件结合的功能实体也能实施。0061服务器131101,服务器133102,服务器135103,服务器137104,服务器132101,服务器134102,服务器136103,服务器138104,其中,括号内为其所属的组代号。0062该例中,假设有4组服务器101组131132、102组2133134、103组3135136、104组4137138,对于每组两台机器做数据同步复制,即,如101组,被增加进131的数据将会由同步机制复制到132。同理,对于增加至132的记录数据会被自动同步到131,此为一组机器。其它3。

22、组相同情况。0063实施中,如实施例中所示,可以按组划分服务器,每组服务器由奇数和偶数服务器组成,奇数服务器存储和返回的数据主键是奇数,偶数服务器存储和返回的数据主键是偶数。同时,同一组服务器中,奇偶数据实时互相备份。0064分组的目的是为了分散数据存储,因为每组内两台服务器数据相互备份,可以提高系统存储容量,并增加系统的可靠性,因为组内两台机器数据互备,当一台机器出现问题,另一台机器立即能提供数据服务。0065实施中,由于系统结构设计中,相同一组数据需要彼此复制,为了减少复制过程对系统整体性能影响,所以采用远隔策略。0066图3为分组后的服务器数据资源负载均衡处理方法实施流程示意图,如图所示。

23、,在上述图2结构的服务器组中,在对数据资源进行负载均衡处理时,可以包括如下步骤0067步骤301、获取所有能提供服务的服务器列表;0068本步骤中,具体可以是将服务器131、服务器133、服务器135、服务器137、服务器132、服务器134、服务器136、服务器138列表,表示可以由表中的以上服务器提供服务。0069步骤302、按数据服务器的奇偶数确定服务器提供服务的先后顺序;0070本步骤中,如图将服务器按环状的顺序排列,即服务器131与服务器132、服务器133与服务器134、服务器135与服务器136、服务器137与服务器138,其目的在于使一族的服务器尽量远隔。0071由于在实施中采。

24、用了一组服务器中的两台服务器同步复制的机制,所以在顺序编号时后,如果在按服务器编号的奇偶数来排列,它们自然就会出现尽量远隔的效果。比如服务器131、服务器132、服务器133、服务器134、服务器135、服务器136、服务器137、服务器138时按顺序编号的,但是,服务器131与服务器132是一组、服务器说明书CN102025753ACN102025767A5/10页8133与服务器134是一组、服务器135与服务器136是一组、服务器137与服务器138是一组,所以采用编号的奇偶来排列时就会出现服务器131、服务器133、服务器135、服务器137,然后是服务器132、服务器134、服务器1。

25、36、服务器138,可以看出,同一组的服务器出现了尽量远隔的效果,例如在同一组的服务器131与服务器132之间,间隔了3台服务器,其他组的情况也一样。当然,实施中还可以采用其他的排列方式,本实施例仅是列举了较为方便的一种方式。0072步骤303、按服务器组号确定服务器提供服务的先后顺序;0073本步骤中,如图2所示,在实施例中具体的编号为组101、102、103、104,本实施例中便可以具体按服务器组号的大小进行排列。如图按组101、102、103、104排列,即服务器131101,服务器133102,服务器135103,服务器137104,服务器132101,服务器134102,服务器136。

26、103,服务器138104,其中,括号内为组号。0074当然,实施中还可以采用其他的排列方式,本实施例仅是列举了较为方便的一种方式。0075步骤304、计算相差率;0076其中,在确定相差率时,可以按照以下方式确定当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算;那么,图2中所示为8台服务器,其相差率为I_DIFF_RATE6ROUND8/2,再进一步I_DIFF_RATE2。0077。

27、步骤305、计算处于忙碌的计算机数量;0078步骤306、计算总数据量;0079如图所示,总数据量为服务器131的10000服务器133的15000服务器135的11000服务器137的1200048000。0080在上述实施过程中,对应图2中的结构,实施是由处理服务器100进行处理。0081图4为每一服务器的JACK计算示意图,如图所示,在计算出总数据量后,对每一台服务器可以按以下步骤实施,具体的,就是分别对服务器131、服务器133、服务器135、服务器137、服务器132、服务器134、服务器136、服务器138按以下步骤实施0082步骤401、判断处于忙碌的计算机数量是否为0,是则转入。

28、步骤402,否则转入步骤403;0083步骤402、赋值JACK为当前服务器数据量占总数据量的百分比除以相差率,其中,JACK为负载度;0084以服务器131为例,JACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE,即JACKROUNDROUND10000/48000100/2,进一步的,JACKROUNDROUND104166,进一步的,JACK10;0085按此方式分别对服务器131、服务器133、服务器135、服务器137、服务器132、服务器134、服务器136、服务器138进行计算得到每一台服务器的JACK。0086步骤403、给JACK。

29、赋值为0。0087下面对各步骤进行说明。说明书CN102025753ACN102025767A6/10页90088首先对根据每台服务器当前的数据量对JACK赋值进行说明。0089则具体实施中,赋值规则可以如下0090根据服务器数I_SUM_SERVER,计算一个相差率I_DIFF_RATE;如前所述,可以根据服务器数量确定相差率,相差率为当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算。

30、。0091I_DIFF_RATE的目的是为防止组数少的时候压力差距大引起单台负载高,组数越多相差率越小,可以的取值范围为15。0092计算方法可以是0093当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,ROUND是对I_SUM_SERVER/2进行四舍五入;如当I_SUM取值为12的值是5;取值为34的值是4;取值为56的值是3;取值为78的值是2,取值9的值是1。以表表示则为0094I_SUM_SERVER服务器数I_DIFF_RATE相差比率12534456378291009。

31、5具体的,每台服务器的赋值可以按下式计算0096JACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE0097其中,I_COUNT为每台机器当前的数据数量,I_SUM_COUNT为所有服务器上数据量总和。0098通过上式,将占全部数据的百分比/相差比率转化为0100之间的整型,需要提供给外部设备的数据量越大的服务器也意味着工作量越大,那么这样的服务器JACK值也将越大。0099在上述实施中,相差率公式是用来解决当集群内服务器较少的情况下,增加服务器,或者原来不能工作的服务器恢复回来之后的数据会否过载问题;0100JACK值越大,表示该台服务器的存储数据。

32、量越多,代表着它之前已经提供了很多数据资源服务,所以本次分配资源时,它应该少提供数据资源服务,少被分配,让其它服务器更多地提供数据资源服务,从而最终实现使所有机器的数据存储量比较均衡。0101其次,对根据JACK的值来确定执行数据资源服务的具体的服务器的实施进行说明。说明书CN102025753ACN102025767A7/10页100102外部请求服务;0103从队列开始轮流提供服务,如按上述实施例的分组提供顺序为0104服务器131服务器133服务器135服务器137服务器132服务器134服务器136服务器138。0105在此顺序下,如果轮到某台服务器对外提供数据存储服务时,先由处理服务。

33、器100判断该台服务器的负载度JACK是否为0。若JACK不为0,并且上一次循环中,该台服务器提供过数据存储服务,则该台服务器本次不提供数据存储服务,并将该台服务器的负载度JACK值减少预定的值,优选的可以设定该预定的值为1。然后,直接使用下一台服务器提供服务,并且是无条件提供服务。实施中这样处理是由于JACK值越大,表示该台服务器提供的数据存储服务越多,因此轮到它时,就将提供服务的机会强制给下一台服务器。而由于本次该台服务器并没有对外提供数据存储服务,因此,其负载度将会相应的减少。0106如果轮到某台服务器提供数据服务时,处理服务器100判断该台服务器的负载度JACK不为0时,并且上一轮没有。

34、提供过数据存储服务,则本轮由该台服务器提供数据存储服务。0107如果轮到的服务器JACK值为0,则该台服务器无条件提供服务;0108当所有的服务器中有一台报告了忙碌状态,则设定所有服务器的JACK为0;实施中,服务器在处理服务请求时,可以通过进程来检查自己的状态,并汇报是否忙碌,如果不忙碌则表示其可以提供服务;一台忙碌后所有服务器的JACK都赋值为0的目的是当发现服务器忙碌时,整个系统平均负担,减小系统进一步恶化的可能。优选的,本申请实施例是在重新为每台服务器的负载度赋予初始的JACK值时检测服务器是否处于忙碌状态,若其中有一台报告了忙碌状态,则设定所有服务器的JACK为0。0109按上述规律。

35、反复进行,直到达到系统指定的循环次数时,重新为每台服务器的负载度赋予初始的JACK值;或者在指定的时间间隔到达时,或者新的服务器状态和数量会被提供进来时,重新为每台服务器的负载度赋予初始的JACK值。其中,新的服务器状态和数量是指有的服务器可能由能提供服务的状态变为不能提供服务的状态,或者是由不能提供服务的状态变为能提供服务的状态,这将会使相差率I_DIFF_RATE发生变化,而数量是指这样的服务器数量是多少,比如有3台服务器由不能提供服务的状态变为能提供服务的状态。0110由上述实施例可以看出,确定由哪一台服务器提供服务是通过判断当前服务器的负载度的取值进行的,即根据服务器数量以及每台服务器。

36、上的数据量确定提供数据资源服务的服务器,可以包括0111根据服务器数量确定相差率,所述相差率为当I_SUM_SERVER10时,I_DIFF_RATE1;当I_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算;0112确定每台服务器上的数据量;0113确定每台服务器的负载度,所述负载度为JACKROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE,其中,JACK为负载度,I_COUNT为每台服务器上的数据数量,I_SUM_COU。

37、NT为所有服务器上数据量总和;说明书CN102025753ACN102025767A8/10页110114在确定提供数据资源服务的服务器时,所有服务器按顺序提供服务资源,如果当前服务器JACK不为0,并且当前服务器在上一轮服务器的轮循中未将该服务器的JACK值减少预定的值,则本轮将当前服务器JACK数减少预定的值,且按顺序确定下一服务器无条件提供服务,否则,当前服务器同样无条件提供服务;提供服务的服务器的下一服务器成为新的当前服务器,为一下次提供服务做准备。0115在确定提供数据资源服务的服务器时,如果服务器JACK不为0,且JACK的数值没有减少过预定的值,则本轮将当前服务器的JACK数值减。

38、少预定的值,并按服务器顺序确定由下一服务器提供数据资源服务,如果服务器JACK为0,确定该服务器提供数据资源服务并在重新分配JACK后参与数据资源服务。0116在上述过程中,在确定提供数据资源服务的服务器时,所有服务器根据顺序排成一个环依次提供服务资源,那么,对于当前的服务器,由于按顺序来确定提供数据资源服务的服务器,那么根据每一轮的顺序,其就存在本次轮、上一次轮、下一次轮的分配关系,对于本次分配而言,其是否执行提供数据资源服务,取决于其上次是否提供过服务,以及JACK的数值是否为0;那么,在本次分配时,如果当前服务器JACK不为0,并且当前服务器在上一轮服务器的轮循中未将该服务器的JACK值。

39、减少预定的值,则本轮将当前服务器JACK数减少预定的值,并由环中的下一服务器无条件提供服务;否则,当前服务器同样无条件提供服务;提供服务的服务器的下一服务器成为新的当前服务器,为一下次提供服务做准备。0117实施中,还可以进一步包括0118在满足设定的时间间隔后,重新分配JACK数,当1台以上报务器报告忙碌状态时,所有服务器的JACK数值置0。0119基于同一发明构思,本发明实施例中还提供了一种服务器数据资源负载均衡处理设备,由于该设备解决问题的原理与一种服务器数据资源负载均衡处理方法相似,因此该设备的实施可以参见方法的实施,重复之处不在赘述。0120图5为服务器数据资源负载均衡处理设备结构示。

40、意图,如图所示,设备中可以包括0121顺序确定模块501,用于设定提供数据资源服务的服务器的先后顺序;0122负载度确定模块502,用于确定所述每一台服务器的负载度;0123均衡模块503,用于如果当前服务器的负载度不为0,并且当前服务器在上一轮服务器的轮循中提供过服务,按顺序确定由下一服务器无条件提供服务,并将该服务器的负载度减少预定的值;否则,由当前服务器提供服务;依次判断每一台服务器的负载度,确定提供服务的服务器。0124实施中,所述负载度确定模块包括0125相差率确定单元5021,用于根据服务器数量确定相差率,所述相差率为当I_SUM_SERVER10时,I_DIFF_RATE1;当I。

41、_SUM_SERVER10,I_DIFF_RATE6ROUNDI_SUM_SERVER/2,其中,I_SUM_SERVER为服务器数量,I_DIFF_RATE为相差率,ROUND为进行四舍五入运算;0126数据量确定单元5022,用于确定每台服务器上的数据量;0127负载度确定单元5023,用于确定每台服务器的负载度,所述负载度为JACK说明书CN102025753ACN102025767A9/10页12ROUNDROUNDI_COUNT/I_SUM_COUNT100/I_DIFF_RATE,其中,JACK为负载度,I_COUNT为每台服务器上的数据数量,I_SUM_COUNT为所有服务器上的。

42、数据量总和。0128实施中,负载度确定模块中还可以进一步包括0129置零单元5024,用于在满足设定的时间间隔后,重新确定负载度,当1台以上报务器报告忙碌状态时,将所有服务器的负载度数值置0。0130实施中,负载度确定模块还可以进一步用于在到达到系统指定的循环次数时,或者在指定的时间间隔到达时,或者有新的服务器被提供进来时,重新确定每台服务器的负载度。0131实施中,顺序确定模块还可以进一步用于为每台服务器增加一个互为数据资源备份的服务器,并将二者分为一组;在确定提供数据资源服务的服务器的顺序时,使同一组的两台服务器的顺序尽量远隔。0132实施中,均衡模块可以进一步用于采用并发方式在多核CPU。

43、处理器上根据服务器数量以及每台服务器上的数据量、服务器顺序确定提供数据资源服务的服务器。0133具体实施中,如果据衡模块在实施中基于并发处理设计如ERLANG语言,再配合多核服务器则能够达到很好的效果,实践中,在使用了ERLANG的数组列表来存储服务器队列时,计算算法的速度非常理想。这是由于并发处理语言在并发的特性上提供了很多原子性,如变量不共享,两个进程通过消息通信,减少了很多其它非并发语言的这种不足,例如C语言中使用指针,会导致很多不足一样。多核代表数据每个并发的每个进程在独立的CPU上运行,满足了并发的基础条件。对于均衡模块这种需要在同一瞬间,同时有多个请求产生的业务处理上,并发就能够体。

44、现出了速度上的优势,能够同一时间将任务分配到不同的服务器上处理。0134为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。0135由上述实施例可见,采用本发明实施例中提供的技术方案,能够同时兼顾容量平衡、负载平衡,实现方式简单可靠,而且比较通用。0136本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质包括但不。

45、限于磁盘存储器、CDROM、光学存储器等上实施的计算机程序产品的形式。0137本发明是参照根据本发明实施例的方法、设备系统、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。0138这些计算机程序指令也可存储在能引导计算机或其他可编。

46、程数据处理设备以特说明书CN102025753ACN102025767A10/10页13定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。0139这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。0140尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦。

47、得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。0141显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说明书CN102025753ACN102025767A1/4页14图1说明书附图CN102025753ACN102025767A2/4页15图2说明书附图CN102025753ACN102025767A3/4页16图3图4说明书附图CN102025753ACN102025767A4/4页17图5说明书附图CN102025753A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1