CN113821340A - 分布式***的动态均衡方法、***、终端及存储介质 - Google Patents
分布式***的动态均衡方法、***、终端及存储介质 Download PDFInfo
- Publication number
- CN113821340A CN113821340A CN202110998463.1A CN202110998463A CN113821340A CN 113821340 A CN113821340 A CN 113821340A CN 202110998463 A CN202110998463 A CN 202110998463A CN 113821340 A CN113821340 A CN 113821340A
- Authority
- CN
- China
- Prior art keywords
- node
- physical
- nodes
- cluster
- occupancy rate
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012544 monitoring process Methods 0.000 claims abstract description 24
- 238000012216 screening Methods 0.000 claims abstract description 9
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000013508 migration Methods 0.000 claims description 6
- 230000005012 migration Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 abstract description 25
- 230000000694 effects Effects 0.000 abstract description 7
- 230000007547 defect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000008713 feedback mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种分布式***的动态均衡方法、***、终端及存储介质,包括:采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。本发明将负载均衡与一致性哈希算法相结合,在分布式***中各节点性能差异较大的场景下,通过动态反馈进行负载调整,在一定程度上弥补了一致性哈希算法的不足,优化了负载均衡效果,提高了分布式***的稳定性。
Description
技术领域
本发明涉及分布式***技术领域,具体涉及一种分布式***的动态均衡方法、***、终端及存储介质。
背景技术
一致性哈希算法在1997年提出,目前在分布式***中应用非常广泛。一致性哈希是一种哈希算法,简单地说在移除或者添加一个服务器时,此算法能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系,尽可能满足单调性的要求。具体的,首先定义一个哈希函数F,通过F对存储节点的哈希值进行计算,其将存储空间抽象为一个环,将存储节点配置到环上。环上所有的节点都有一个值。其次,对要存储的数据也通过哈希函数F进行计算,按顺时针方向将其映射到离其最近的节点上去。当有节点出现故障离线时,按照算法的映射方法,受影响的仅仅为环上故障节点开始逆时针方向至下一个节点之间区间的数据对象,而这些对象本身就是映射到故障节点之上的。当有节点增加时,比如,在节点A和B之间重新添加一个节点H,受影响的也仅仅是节点H逆时针遍历直到B之间的数据对象,将这些重新映射到H上即可,因此,当有节点出现变动时,不会使得整个存储空间上的数据都进行重新映射,解决了简单哈希算法增删节点,重新映射所有数据带来的效率低下的问题。
当节点数量较少时,可能会出现节点在哈希环上分配不均,导致后续在分配数据时出现负载不均衡的问题,此时可以引入虚拟节点技术,对每个实际节点分配一定数量的虚拟节点,将虚拟节点再分配到哈希环上,后续存储数据时,将数据分配到顺时针碰到的第一个虚拟节点所属的实际节点上,这样就在一定程度上解决了负载不均衡的问题。目前ISPIM产品中的对采集器节点和具体资源的分配关系上,采用的就是一致性哈希算法。
但在实际的分布式***应用中,每个实际节点由于性能不同,能够承载的数据或计算任务也不尽相同,仅靠一次一致性哈希算法来平均每个节点上的任务量,是有些片面的,在某些任务量很大,且不同节点的性能差异较大的场景下,性能较差的节点依然有较大可能发生宕机现象。
发明内容
针对现有技术存在的由于各节点物理资源不同,仅仅采用一致性哈希算法来平均每个节点的任务量是片面的,性能较差的节点存在宕机的可能,本发明提供一种分布式***的动态均衡方法、***、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种分布式***的动态均衡方法,包括:
采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;
通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;
实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
进一步的,采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点,包括:
计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比;
获取集群的虚拟节点总数,并将物理节点的物理资源占比与虚拟节点总数之积作为所述物理节点的初始虚拟节点数量;
根据各物理节点的初始虚拟节点数量向各物理节点分配相应数量的虚拟节点。
进一步的,计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比,包括:
将所有物理节点的物理资源量之和作为集群的物理资源总量;
将物理节点的物理资源量除以所述物理资源总量的商作为所述物理节点的物理资源占比。
进一步的,通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点,包括:
周期性监控各物理节点的资源占用率并按照资源占用率由高到低对物理节点排序,所述资源占用率包括计算资源占用率、内存资源占用率和带宽占用率;
计算排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值,若所述资源占用率差值超过设定的阈值则触发虚拟节点调整程序,所述虚拟节点调整程序用于将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点。
进一步的,所述虚拟节点调整程序包括:
将排序最靠前的物理节点作为目标节点,采集目标节点上所有虚拟节点的资源占用率;
将目标节点上资源占用率最高的虚拟节点迁移至排序最靠后的物理节点;
循环执行虚拟节点调整程序直至更新后的排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值不超过设定的阈值。
进一步的,实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配,包括:
定期采集集群物理节点IP和虚拟节点IP,并汇总保存至节点列表;
比对当前次节点列表与前次保存的节点列表的一致性,若两者不完全一致则判定集群节点状态更新,触发对集群业务资源的一致性哈希分配。
第二方面,本发明提供一种分布式***的动态均衡***,包括:
初始分配单元,用于采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;
节点迁移单元,用于通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;
业务重置单元,用于实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
进一步的,初始分配单元用于:
计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比;
获取集群的虚拟节点总数,并将物理节点的物理资源占比与虚拟节点总数之积作为所述物理节点的初始虚拟节点数量;
根据各物理节点的初始虚拟节点数量向各物理节点分配相应数量的虚拟节点。
进一步的,计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比,包括:
将所有物理节点的物理资源量之和作为集群的物理资源总量;
将物理节点的物理资源量除以所述物理资源总量的商作为所述物理节点的物理资源占比。
进一步的,节点迁移单元用于:
周期性监控各物理节点的资源占用率并按照资源占用率由高到低对物理节点排序,所述资源占用率包括计算资源占用率、内存资源占用率和带宽占用率;
计算排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值,若所述资源占用率差值超过设定的阈值则触发虚拟节点调整程序,所述虚拟节点调整程序用于将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点。
进一步的,虚拟节点调整程序包括:
将排序最靠前的物理节点作为目标节点,采集目标节点上所有虚拟节点的资源占用率;
将目标节点上资源占用率最高的虚拟节点迁移至排序最靠后的物理节点;
循环执行虚拟节点调整程序直至更新后的排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值不超过设定的阈值。
进一步的,业务重置单元用于:
定期采集集群物理节点IP和虚拟节点IP,并汇总保存至节点列表;
比对当前次节点列表与前次保存的节点列表的一致性,若两者不完全一致则判定集群节点状态更新,触发对集群业务资源的一致性哈希分配。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的分布式***的动态均衡方法、***、终端及存储介质,通过基于各节点的资源使用情况对虚拟节点进行动态调节,并在每次调节之后利用一致性哈希算法对集群业务资源进行重分配分配。本发明将负载均衡与一致性哈希算法相结合,在分布式***中各节点性能差异较大的场景下,通过动态反馈进行负载调整,在一定程度上弥补了一致性哈希算法的不足,优化了负载均衡效果,提高了分布式***的稳定性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的***的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
分布式***(distributed system)是建立在网络之上的软件***。正是因为软件的特性,所以分布式***具有高度的内聚性和透明性。因此,网络和分布式***之间的区别更多的在于高层软件(特别是操作***),而不是硬件。
在一个分布式***中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个***似的。***拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。***中存在一个以全局的方式管理计算机资源的分布式操作***。通常,对用户来说,分布式***只有一个模型或范型。在操作***之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式***的例子是万维网(World Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。
虚拟节点,即虚拟机,虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作***,可以像使用实体机一样对虚拟机进行操作。本发明中虚拟节点与物理节点均可作为业务节点。
本发明根据分布式***中节点的加入、退出、节点的性能状况、网络带宽等因素,讨论了一种包含节点负载排名、负载分配、负载调整及负载转移的及动态反馈机制的一致性哈希负载均衡算法,将动态反馈机制和一致性哈希结合,增加了***的可靠性和抗冲击性,提高了负载均衡的总体效果。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种分布式***的动态均衡***。
如图1所示,该方法包括:
步骤110,采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;
步骤120,通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;
步骤130,实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
为了便于对本发明的理解,下面以本发明分布式***的动态均衡方法的原理,结合实施例中对分布式***进行动态均衡的过程,对本发明提供的分布式***的动态均衡方法做进一步的描述。
具体的,所述分布式***的动态均衡方法包括以下部分:
1、采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点。
计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比:将所有物理节点的物理资源量之和作为集群的物理资源总量;将物理节点的物理资源量除以所述物理资源总量的商作为所述物理节点的物理资源占比。获取集群的虚拟节点总数,并将物理节点的物理资源占比与虚拟节点总数之积作为所述物理节点的初始虚拟节点数量;根据各物理节点的初始虚拟节点数量向各物理节点分配相应数量的虚拟节点。
当采集器节点总数较少时,可增加一定数量的虚拟节点来获得较好的负载均衡效果。假设添加的虚拟节点总数为Q,则每个采集器节点分配的虚拟节点数量为Q(i)=a(i)/A,式中a(i)为i号节点的物理资源总量,A为所有采集器节点的物理资源总量。
2、通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点。
周期性监控各物理节点的资源占用率并按照资源占用率由高到低对物理节点排序,所述资源占用率包括计算资源占用率、内存资源占用率和带宽占用率;计算排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值,若所述资源占用率差值超过设定的阈值则触发虚拟节点调整程序,所述虚拟节点调整程序用于将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点。虚拟节点调整程序包括:将排序最靠前的物理节点作为目标节点,采集目标节点上所有虚拟节点的资源占用率;将目标节点上资源占用率最高的虚拟节点迁移至排序最靠后的物理节点;循环执行虚拟节点调整程序直至更新后的排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值不超过设定的阈值。
例如,采集到一个节点的当前的CPU使用率Cp、当前内存使用率Cm、当前网络带宽使用率Cn。设定Cp_max、Cm_max、Cn_max为节点在保证服务质量的前提下,能够提供的最大CPU处理能力、内存大小、以及网络带宽大小。则编号为i的采集器节点的实时负载率R(i)可由下式得到:
R(i)=Max{Cp(i)/Cp_max(i),Cm(i)/Cm_max(i),Cn(i)/Cn_max(i)}
按照以上算法计算各物理节点的资源占用率,并按照资源占用率由高到低对物理节点排序。
在对资源进行一致性哈希分配后,ISPIM可以每隔一段时间t获取到所有采集器节点的负载情况,根据排名算法对所有采集器节点的实时负载率进行排名。假设实时负载率最大的采集器节点编号为h,实时负载率最小的采集器节点编号为z,当连续两次采集数据出现|R(h)–R(z)|>Rt时,触发负载调整算法。当连续两次采集数据出现|R(h)–R(z)|>Rt时,首先将最大负载率的h采集器节点所包含的所有虚拟节点上的资源数排序,接着将资源数最少的虚拟节点移交至最小负载率的z采集器节点,最后再更新两节点下的虚拟节点、虚拟节点所包含的资源数以及负载率等信息。
3、实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
定期采集集群物理节点IP和虚拟节点IP,并汇总保存至节点列表;比对当前次节点列表与前次保存的节点列表的一致性,若两者不完全一致则判定集群节点状态更新,触发对集群业务资源的一致性哈希分配。
具体的,当监控到节点状态存在更新后,步骤1虚拟节点分配或步骤2虚拟节点迁移都是节点状态更新的情况,此外虚拟节点或物理节点的增删也属于节点更新情况。利用一致性哈希算法对集群业务资源进行分配,将虚拟节点和资源通过哈希函数映射到一致性哈希环上,根据资源在哈希环上的位置来确定分配至哪一个采集器节点下。
具体的,本发明执行以下流程:
首先定义以下概念:1)节点实时负载率R:节点实时的负载所占其具有的负载能力的比值。2)节点资源数a:节点在满载(CPU、缓存、带宽等指标中任意一项)情况下所能提供的容量。3)负载均衡阈值Rt:在分布式***中,最大负载率节点和最小负载率节点的负载率差值上限,当超过该上限时,触发负载均衡动作。
S1、初始虚拟节点分配。
当采集器节点总数较少时,可增加一定数量的虚拟节点来获得较好的负载均衡效果。假设添加的虚拟节点总数为Q,则每个采集器节点分配的虚拟节点数量为Q(i)=a(i)/A,式中a(i)为i号节点的物理资源总量,A为所有采集器节点的物理资源总量。
S2、初始业务资源分配。
将虚拟节点和资源通过哈希函数映射到一致性哈希环上,根据资源在哈希环上的位置来确定分配至哪一个采集器节点下。这里需要记录每一个虚拟节点所分配的资源数量,后续负载调整时会用到。
S3、节点负载均衡反馈。
采集到一个节点的当前的CPU使用率Cp、当前内存使用率Cm、当前网络带宽使用率Cn。设定Cp_max、Cm_max、Cn_max为节点在保证服务质量的前提下,能够提供的最大CPU处理能力、内存大小、以及网络带宽大小。则编号为i的采集器节点的实时负载率R(i)可由下式得到:
R(i)=Max{Cp(i)/Cp_max(i),Cm(i)/Cm_max(i),Cn(i)/Cn_max(i)}
按照以上算法计算各物理节点的资源占用率,并按照资源占用率由高到低对物理节点排序。
在对资源进行一致性哈希分配后,ISPIM可以每隔一段时间t获取到所有采集器节点的负载情况,根据排名算法对所有采集器节点的实时负载率进行排名。假设实时负载率最大的采集器节点编号为h,实时负载率最小的采集器节点编号为z,当连续两次采集数据出现|R(h)–R(z)|>Rt时,触发负载调整算法。当连续两次采集数据出现|R(h)–R(z)|>Rt时,首先将最大负载率的h采集器节点所包含的所有虚拟节点上的资源数排序,接着将资源数最少的虚拟节点移交至最小负载率的z采集器节点,最后再更新两节点下的虚拟节点、虚拟节点所包含的资源数以及负载率等信息。
S4、通过一致性哈希算法分配资源至采集器节点。***运行过程中循环执行步骤S3-S4,最终可使***的实时负载率之差(Rh-Rz)缩小至Rt以内,达到优化负载均衡效果的目标。
如图2所示,该***200包括:
初始分配单元210,用于采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;
节点迁移单元220,用于通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;
业务重置单元230,用于实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
可选地,作为本发明一个实施例,初始分配单元用于:
计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比;
获取集群的虚拟节点总数,并将物理节点的物理资源占比与虚拟节点总数之积作为所述物理节点的初始虚拟节点数量;
根据各物理节点的初始虚拟节点数量向各物理节点分配相应数量的虚拟节点。
可选地,作为本发明一个实施例,计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比,包括:
将所有物理节点的物理资源量之和作为集群的物理资源总量;
将物理节点的物理资源量除以所述物理资源总量的商作为所述物理节点的物理资源占比。
可选地,作为本发明一个实施例,节点迁移单元用于:
周期性监控各物理节点的资源占用率并按照资源占用率由高到低对物理节点排序,所述资源占用率包括计算资源占用率、内存资源占用率和带宽占用率;
计算排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值,若所述资源占用率差值超过设定的阈值则触发虚拟节点调整程序,所述虚拟节点调整程序用于将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点。
可选地,作为本发明一个实施例,虚拟节点调整程序包括:
将排序最靠前的物理节点作为目标节点,采集目标节点上所有虚拟节点的资源占用率;
将目标节点上资源占用率最高的虚拟节点迁移至排序最靠后的物理节点;
循环执行虚拟节点调整程序直至更新后的排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值不超过设定的阈值。
可选地,作为本发明一个实施例,业务重置单元用于:
定期采集集群物理节点IP和虚拟节点IP,并汇总保存至节点列表;
比对当前次节点列表与前次保存的节点列表的一致性,若两者不完全一致则判定集群节点状态更新,触发对集群业务资源的一致性哈希分配。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的分布式***的动态均衡方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过基于各节点的资源使用情况对虚拟节点进行动态调节,并在每次调节之后利用一致性哈希算法对集群业务资源进行重分配分配。本发明将负载均衡与一致性哈希算法相结合,在分布式***中各节点性能差异较大的场景下,通过动态反馈进行负载调整,在一定程度上弥补了一致性哈希算法的不足,优化了负载均衡效果,提高了分布式***的稳定性,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的***和方法,可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,***或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种分布式***的动态均衡方法,其特征在于,包括:
采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;
通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;
实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
2.根据权利要求1所述的方法,其特征在于,采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点,包括:
计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比;
获取集群的虚拟节点总数,并将物理节点的物理资源占比与虚拟节点总数之积作为所述物理节点的初始虚拟节点数量;
根据各物理节点的初始虚拟节点数量向各物理节点分配相应数量的虚拟节点。
3.根据权利要求2所述的方法,其特征在于,计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比,包括:
将所有物理节点的物理资源量之和作为集群的物理资源总量;
将物理节点的物理资源量除以所述物理资源总量的商作为所述物理节点的物理资源占比。
4.根据权利要求1所述的方法,其特征在于,通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点,包括:
周期性监控各物理节点的资源占用率并按照资源占用率由高到低对物理节点排序,所述资源占用率包括计算资源占用率、内存资源占用率和带宽占用率;
计算排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值,若所述资源占用率差值超过设定的阈值则触发虚拟节点调整程序,所述虚拟节点调整程序用于将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点。
5.根据权利要求4所述的方法,其特征在于,所述虚拟节点调整程序包括:
将排序最靠前的物理节点作为目标节点,采集目标节点上所有虚拟节点的资源占用率;
将目标节点上资源占用率最高的虚拟节点迁移至排序最靠后的物理节点;
循环执行虚拟节点调整程序直至更新后的排序最靠前的物理节点与排序最靠后的物理节点的资源占用率差值不超过设定的阈值。
6.根据权利要求1所述的方法,其特征在于,实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配,包括:
定期采集集群物理节点IP和虚拟节点IP,并汇总保存至节点列表;
比对当前次节点列表与前次保存的节点列表的一致性,若两者不完全一致则判定集群节点状态更新,触发对集群业务资源的一致性哈希分配。
7.一种分布式***的动态均衡***,其特征在于,包括:
初始分配单元,用于采集集群中各物理节点的物理资源量,并根据各物理节点的物理资源量向各物理节点分配虚拟节点;
节点迁移单元,用于通过监控各物理节点的资源占用率筛选出资源占用率最高的目标节点,将所述目标节点上资源占用率最高的虚拟节点迁移至资源占用率最低的物理节点;
业务重置单元,用于实时监控集群节点状态,如果监控到集群节点数量或位置更新,则对集群业务资源进行一致性哈希分配。
8.根据权利要求7所述的***,其特征在于,所述初始分配单元用于:
计算集群所有物理节点的物理资源总量,并基于所述物理资源总量分别计算各物理节点在集群中的物理资源占比;
获取集群的虚拟节点总数,并将物理节点的物理资源占比与虚拟节点总数之积作为所述物理节点的初始虚拟节点数量;
根据各物理节点的初始虚拟节点数量向各物理节点分配相应数量的虚拟节点。
9.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-6任一项所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110998463.1A CN113821340A (zh) | 2021-08-27 | 2021-08-27 | 分布式***的动态均衡方法、***、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110998463.1A CN113821340A (zh) | 2021-08-27 | 2021-08-27 | 分布式***的动态均衡方法、***、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821340A true CN113821340A (zh) | 2021-12-21 |
Family
ID=78923248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110998463.1A Pending CN113821340A (zh) | 2021-08-27 | 2021-08-27 | 分布式***的动态均衡方法、***、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821340A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115203177A (zh) * | 2022-09-16 | 2022-10-18 | 北京智阅网络科技有限公司 | 一种分布式数据存储***及存储方法 |
CN117009091A (zh) * | 2023-10-07 | 2023-11-07 | 浪潮(山东)计算机科技有限公司 | 一种资源调整方法、装置、设备及可读存储介质 |
CN117112242A (zh) * | 2023-10-24 | 2023-11-24 | 纬创软件(武汉)有限公司 | 一种云计算***中的资源节点分配方法和*** |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050001705A (ko) * | 2003-06-26 | 2005-01-07 | 이광훈 | 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체 |
US20150052254A1 (en) * | 2012-05-04 | 2015-02-19 | Huawei Technologies Co., Ltd. | Virtual Machine Live Migration Method, Virtual Machine Deployment Method, Server, and Cluster System |
CN106559448A (zh) * | 2015-09-28 | 2017-04-05 | 北京国双科技有限公司 | 服务器负载均衡方法和装置 |
CN106973021A (zh) * | 2017-02-27 | 2017-07-21 | 华为技术有限公司 | 网络***中负载均衡的方法和节点 |
CN107197035A (zh) * | 2017-06-21 | 2017-09-22 | 中国民航大学 | 一种基于一致性哈希算法的亲和性动态负载均衡方法 |
CN107920129A (zh) * | 2017-12-07 | 2018-04-17 | 郑州云海信息技术有限公司 | 一种数据存储的方法、装置、设备以及云存储*** |
CN108182105A (zh) * | 2017-12-12 | 2018-06-19 | 苏州大学 | 基于Docker容器技术的局部动态迁移方法及控制*** |
CN108551474A (zh) * | 2018-03-26 | 2018-09-18 | 南京邮电大学 | 一种服务器集群的负载均衡方法 |
CN110071978A (zh) * | 2019-04-28 | 2019-07-30 | 新华三信息安全技术有限公司 | 一种集群管理的方法及装置 |
CN110830562A (zh) * | 2019-10-30 | 2020-02-21 | 重庆邮电大学 | 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 |
CN111181715A (zh) * | 2019-12-30 | 2020-05-19 | 杭州云象网络技术有限公司 | 一种基于一致性哈希共识协议的多方跨链方法 |
-
2021
- 2021-08-27 CN CN202110998463.1A patent/CN113821340A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050001705A (ko) * | 2003-06-26 | 2005-01-07 | 이광훈 | 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체 |
US20150052254A1 (en) * | 2012-05-04 | 2015-02-19 | Huawei Technologies Co., Ltd. | Virtual Machine Live Migration Method, Virtual Machine Deployment Method, Server, and Cluster System |
CN106559448A (zh) * | 2015-09-28 | 2017-04-05 | 北京国双科技有限公司 | 服务器负载均衡方法和装置 |
CN106973021A (zh) * | 2017-02-27 | 2017-07-21 | 华为技术有限公司 | 网络***中负载均衡的方法和节点 |
CN107197035A (zh) * | 2017-06-21 | 2017-09-22 | 中国民航大学 | 一种基于一致性哈希算法的亲和性动态负载均衡方法 |
CN107920129A (zh) * | 2017-12-07 | 2018-04-17 | 郑州云海信息技术有限公司 | 一种数据存储的方法、装置、设备以及云存储*** |
CN108182105A (zh) * | 2017-12-12 | 2018-06-19 | 苏州大学 | 基于Docker容器技术的局部动态迁移方法及控制*** |
CN108551474A (zh) * | 2018-03-26 | 2018-09-18 | 南京邮电大学 | 一种服务器集群的负载均衡方法 |
CN110071978A (zh) * | 2019-04-28 | 2019-07-30 | 新华三信息安全技术有限公司 | 一种集群管理的方法及装置 |
CN110830562A (zh) * | 2019-10-30 | 2020-02-21 | 重庆邮电大学 | 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 |
CN111181715A (zh) * | 2019-12-30 | 2020-05-19 | 杭州云象网络技术有限公司 | 一种基于一致性哈希共识协议的多方跨链方法 |
Non-Patent Citations (1)
Title |
---|
吴瑶瑶;杨庚;: "云环境下分布式文件***负载均衡研究", 计算机工程与应用, no. 10, 8 August 2018 (2018-08-08), pages 72 - 77 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115203177A (zh) * | 2022-09-16 | 2022-10-18 | 北京智阅网络科技有限公司 | 一种分布式数据存储***及存储方法 |
CN115203177B (zh) * | 2022-09-16 | 2022-12-06 | 北京智阅网络科技有限公司 | 一种分布式数据存储***及存储方法 |
CN117009091A (zh) * | 2023-10-07 | 2023-11-07 | 浪潮(山东)计算机科技有限公司 | 一种资源调整方法、装置、设备及可读存储介质 |
CN117009091B (zh) * | 2023-10-07 | 2023-12-19 | 浪潮(山东)计算机科技有限公司 | 一种资源调整方法、装置、设备及可读存储介质 |
CN117112242A (zh) * | 2023-10-24 | 2023-11-24 | 纬创软件(武汉)有限公司 | 一种云计算***中的资源节点分配方法和*** |
CN117112242B (zh) * | 2023-10-24 | 2024-01-26 | 纬创软件(武汉)有限公司 | 一种云计算***中的资源节点分配方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113821340A (zh) | 分布式***的动态均衡方法、***、终端及存储介质 | |
CN108683720B (zh) | 一种容器集群服务配置方法及装置 | |
US8595364B2 (en) | System and method for automatic storage load balancing in virtual server environments | |
JP5119077B2 (ja) | 仮想サーバリソース調整システム、リソース調整装置、仮想サーバリソース調整方法、及び、コンピュータプログラム | |
JP6881575B2 (ja) | 資源割当システム、管理装置、方法およびプログラム | |
CN110221920B (zh) | 部署方法、装置、存储介质及*** | |
CN108762924A (zh) | 一种负载均衡的方法、装置和计算机可读存储介质 | |
CN105159775A (zh) | 基于负载均衡器的云计算数据中心的管理***和管理方法 | |
US20230283656A1 (en) | Utilizing network analytics for service provisioning | |
CN104917805A (zh) | 一种负载分担的方法和设备 | |
US20190332328A1 (en) | Storage Controller and IO Request Processing Method | |
CN112463395A (zh) | 一种资源分配方法、装置、设备及可读存储介质 | |
Hsieh et al. | The incremental load balance cloud algorithm by using dynamic data deployment | |
US20230418661A1 (en) | Decentralized resource scheduling | |
CN108376103A (zh) | 一种云平台的资源平衡控制方法及服务器 | |
CN111338579B (zh) | 基于存储池的读写缓存优化方法、***、终端及存储介质 | |
CN113626145B (zh) | 业务虚拟机数量动态扩容方法及*** | |
Wang et al. | Provision of storage QoS in distributed file systems for clouds | |
CN115794305B (zh) | 虚拟机内存的调整方法和装置、存储介质及电子装置 | |
CN111124669A (zh) | 一种分布式SaaS软件的运营方法、***、终端及存储介质 | |
CN111475251A (zh) | 一种集群容器调度方法、***、终端及存储介质 | |
CN110780992B (zh) | 一种云计算平台优化部署方法、***、终端及存储介质 | |
CN114090256A (zh) | 一种基于云计算的应用交付负载管理方法及其*** | |
Michel et al. | Network defragmentation in virtualized data centers | |
JP2012124829A (ja) | 情報処理プログラム、中継装置及び中継管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |