CN107193640B - 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法 - Google Patents
一种基于Rendezvous哈希算法的虚拟机初始放置策略方法 Download PDFInfo
- Publication number
- CN107193640B CN107193640B CN201710491606.3A CN201710491606A CN107193640B CN 107193640 B CN107193640 B CN 107193640B CN 201710491606 A CN201710491606 A CN 201710491606A CN 107193640 B CN107193640 B CN 107193640B
- Authority
- CN
- China
- Prior art keywords
- host
- virtual
- node
- real
- cluster
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000005265 energy consumption Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012856 packing Methods 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/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/45562—Creating, deleting, cloning virtual machine instances
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
一种基于Rendezvous哈希算法的虚拟机放置策略方法,包括以下步骤:第一步:首先定义数据中心存在的物理主机集合PM,需要初始化放置的虚拟机集合VM;第二步:对于给定的虚拟机vmi定义参数;第四步:主机数量n小于4时,对于任意虚拟机vmi,定义其对应每个主机具有一个分配权重得分集合Wi;第五步:主机数量n大于等于4时,建立虚拟分层结构,虚拟分层结构包含虚拟分层节点和真实主机节点簇两部分,虚拟分层节点之间以树的形式分布;真实主机节点簇是由多个真实主机构成的集合,与虚拟分层节点底部虚拟叶子节点相关联。本发明综合考虑负载均衡、虚拟机主机性能、数据中心能耗等因素,最终实现物理资源的合理调度。
Description
技术领域
本发明涉及到一种基于Rendezvous哈希算法的虚拟机初始放置策略方法。
背景技术
云计算是最近几年备受业界关注的新热点,而虚拟化技术是实现云计算的重要手段。通过虚拟化技术,云数据中心借虚拟机共享物理机资源池的方式,以物理机单元承载虚拟机,以虚拟机单元承载应用服务。云数据中心已经成为一个高性能计算机的集合,具有成千上万的物理服务器和网络设备。由于资源量大、异构性强,云数据中心对按需服务、资源动态弹性管理、服务质量等多方面的要求更加突出。但是,云数据中心现在面临着低效率、高成本、高能耗等问题。
资料表明:我国的云数据中心的资源利用率普遍不高,平均只有10%左右,而且服务器在较大一部分时间内处于空闲状态,即使服务器处于空闲状态,也会带来满负荷时60%的功耗。因此,如何合理的利用资源,提高资源利用率,减低能源的消耗是当前云数据中心面临的主要问题。如何合理的进行虚拟机放置也已经成为降低数据中心能耗的一大研究热点。
虚拟机的初始化放置管理是研究如何在一个没有负载的云数据中心、根据虚拟化的类型和对资源的请求选择合适的目的物理机的过程,类似于装箱问题的 NP-hard问题。初始化放置具有长期性,对数据中心资源的有效利用,能耗节约起重要作用。以此来降低数据中心初始能耗,并且实现数据中心中主机的负载均衡。
在虚拟机对应主机的初始化放置问题的研究中,大多数学者采用启发式算法如优先适应、或降序最佳适应等贪婪算法来搜索虚拟机放置的最优解。Beloglazov 以及Buyya等人在2010年提出一种基于CPU利用率的降序最佳适应算法。Malani, Amdani等人在2015年提出了一种基于内存利用率的蚁群算法,Panigraphy、 Talwar等人在2011年提出一种综合考虑CPU和内存两种负载类型的基于FFD的启发式算法。
综上所述,启发式算法基本是单点搜索,无法综合考虑数据中心能耗以及负载均衡两方面;智能算法仅考虑单维因素,且当参与调度的虚拟机以及主机数量较大时容易陷入局部最优解的情况。因此,本专利提出一种基于Rendezvous哈希算法的虚拟机初始化策略来实现负载均衡,并且综合考虑CPU、内存因素,达到数据中心能耗降低,提高主机CPU、内存利用率的目标。
发明内容
为了克服现有的虚拟机放置策略的负载不均衡、没有综合考虑CPU、内存因素的不足,本发明提出一种基于Rendezvous哈希算法的虚拟机放置策略方法,适用于云计算环境下,虚拟机到主机的物理资源调度的初始放置,建立虚拟机到主机的映射关系,整个策略综合考虑负载均衡、虚拟机主机性能、数据中心能耗等因素,最终实现物理资源的合理调度。
本发明所采用的技术方案是:
一种基于Rendezvous哈希算法的虚拟机放置策略方法,包括以下步骤:
第一步:首先定义数据中心存在的主机集合PM={pm1,pm2,…,pmn},其中主机数量为n,需要初始化放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机数量为m,设定虚拟机数量m大于或等于主机数量n;
第二步:对于给定的虚拟机vmi,定义Vpesi为虚拟机vmi所需的CPU资源, Vrami为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利用率,Wi-ram为虚拟机vmi的内存利用率。对于给定的主机pmj,定义Ppesj为主机pmj当前的 CPU空闲资源,Pramj为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率,Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率Uj为:
Uj=α*Uj-pes+β*Uj-ram
其中0<α<1,0<β<1,且α+β=1。
定义Tagij为当前时刻,主机pmj能否满足虚拟机vmi的资源要求,即
Tagij=(Ppesj-Vpesi)>0∧(Pramj-Vrami)>0
第三步:给定主机pmj,定义该主机在t时刻的电源能耗表示为:
ej(t)=cj+q*fj 3(t)*uj(t)
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的频率,uj(t)为t时刻主机pmj的功率,q为线性常量;
则在T时间内,主机pmj的能耗Ej:
第四步:由于构建和维护虚拟分层结构需要一定的系统开销,主机数量n小于4,即无法满足构建最小双层虚拟结构的数量2*2时,则对于任意虚拟机vmi,定义其对应每个主机具有一个分配权重得分集合Wi={wi1,wi2,…,wik},其中 k≥n;定义wij为虚拟机vmi在主机pmj上的权重得分,wij=h(vmi,pmj),其中h() 内包含约定的哈希函数;然后直接通过Rendezvous哈希算法将虚拟机vmi分配给权重wij最大的主机pmj;如果主机pmk的性能是其他主机的a倍,则表示为 pmk1,…,pmka;
第五步:主机数量n大于等于4,即满足构建最小双层虚拟结构的数量时,建立虚拟分层结构,虚拟分层结构包含虚拟分层节点和真实主机节点簇两部分,虚拟分层节点之间以树的形式分布,其中,将虚拟分层节点的所有叶子节点称为虚拟叶子节点扇区,虚拟分层节点构成的树的高度称为虚拟分层结构深度;真实主机节点簇是由多个真实主机构成的集合,与虚拟分层节点底部虚拟叶子节点相关联;建立虚拟分层结构的过程如下:
5.1真实主机节点簇群划分:首先选择真实主机节点簇的常量z,将主机集合按照c=ceiling(n/z)组织成簇,其中ceiling函数表示将n除以z的值向上舍入为最接近的整数,C0={cpm1,cpm2,…,cpmz},C1={cpmz+1,cpmz+2,…,cpm2z},…直至每个主机都归属于一个簇,每个簇为虚拟分层结构中的最底层节点;其中, c表示真实主机节点簇的个数,C0表示第一个真实主机节点簇,cpm1表示分配到第一个真实主机节点簇的第一台主机,cpm2表示分配到第一个真实主机节点簇的第二台主机,cpmz表示分配到第一个真实主机节点簇的第z台主机,C1表示第二个真实主机节点簇;cpmz+1表示分配到第二个真实主机节点簇的第z+1台主机, cpmz+2表示分配到第二个真实主机节点簇的第z+2台主机,cpm2z表示分配到第二个真实主机节点簇的第2*z台主机;
5.2虚拟叶子节点扇区以及虚拟分层结构深度确定:选择虚拟分层结构中每个子节点扇区的叶子数f,根据子节点扇区的叶子数f以及真实主机节点簇的个数c,得到虚拟分层结构的深度H:
fH≥c
其中H是最小正整数,使得上述公式成立;
5.3各虚拟叶子节点扇区编号:采用自然编号对每个扇区分别统一编号;
5.4对于某一虚拟机vmi,对于任意一个虚拟节点s,都有一个对应的权重,在虚拟分层结构的每一层虚拟叶子节点扇区,通过Rendezvous哈希算法计算各虚拟节点权重,选择得分最高的节点继续向下分层,直到选择至最底层的真实主机节点簇Cl;
5.5当虚拟机vmi选中真实主机节点簇Cl后,在进行真实节点选择时,假设对于任意在真实节点簇Cl中的主机节点cpmlz+j,都有一个对应的权重Wi(lz+j)=H(vmi, cpmlz+j)*Tagi(lz+j),若Tagi(lz+j)为false,则为0,若为true默认为1;其中:
其中Ei+lz为T时间段内主机cpmlz+j的能耗,Eold是指相同T时间段内,未分配新虚拟机时,真实主机节点簇Cl的能耗,γ、δ表示权重,Ulz+j是主机cpmlz+j的资源利用率;
因此,虚拟机vmi最终会选择使权重Wi(lz+j)最高的主机节点完成分配。进一步,所述虚拟机放置策略方法还包括以下步骤:
第六步、
主机宕机或删除、或者由于计算需求增大而需要增加主机的情况,处理过程如下:
6.1、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,选择权重值高的同一簇中的真实主机节点完成分配;
6.2、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,且同一簇下无法找到可用的真实主机节点进行分配,在虚拟分层结构中往上上升一个或多个层级,并从上升的层级的同级虚拟节点中选择一个虚拟节点作为代替,再次将层级降级到真实主机节点簇,寻找可用的真实主机节点;
6.3、当最后的真实主机节点簇的节点数还未满z时,直接将主机加入至未满 z的最后的真实主机节点簇;
6.4、当最后的真实主机节点簇的节点数为z时,且虚拟分层结构最底层未满时,增加一个真实主机节点簇;
6.5、当最后的真实主机节点簇的节点数为z时,且虚拟分层结构最底层也满时,将需要增加的主机增加至第一个真实主机节点簇,这时,真实主机节点簇的常量z=z+1。
再进一步,在虚拟分层结构中,虚拟节点的选择从任意层级进行,若从根节点开始选择,则直到选择到真实主机节点的过程中,一共需要的哈希值数量为 count=f*H次,其中f为每个子节点扇区的叶子数,H为虚拟分层结构的深度。
本发明的技术构思为:云计算环境下虚拟机初始化放置策略繁多,现存大多方法未综合考虑物理资源调度的负载均衡度,使单一主机负载过重以及物理主机的动态增加、删减给数据中心带来的能耗问题。本发明基于Rendezvous哈希算法思想,构建虚拟分层结构实现虚拟机至主机的负载均衡分配。对于每个虚拟机,通过Rendezvous哈希算法,都会给定一个对应各虚拟节点的权重得分,选择得分较高的虚拟节点进行选择。通过对主机进行簇的划分,并将簇作为虚拟分层结构的最底层节点,使得主机宕机或故障时的动态删除以及动态增加时产生的能耗和代价最低。在虚拟机对主机节点进行的选择过程中,综合考虑真实主机节点簇的整体能耗,选择是真实主机节点簇能耗最低的分配方案,来达到数据中心全局能耗降低的效果。
本发明的有益效果主要表现在要:(1)使用虚拟分层结构以及Rendezvous哈希算法选择虚拟节点,可以实现虚拟机到主机物理资源调度的负载均衡。(2)算法复杂度为O(logn),效率相对较高。(3)选择主机节点时,采用选择真实主机簇局部能耗最低的方案,有效降低数据中心的总体能耗。(4)当主机宕机或需要增加或删除时,则只有映射到该主机的对象被重新映射到其他主机,可以最大程度不影响原始虚拟机主机映射关系。
附图说明
图1示出了基于Rendezvous哈希算法的虚拟机初始放置策略流程图。
图2示出了虚拟分层结构图。
图3示出了虚拟分层结构进行虚拟机分配步骤图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图3,一种基于Rendezvous哈希算法的虚拟机初始放置策略方法,包括以下步骤:
第一步:首先定义数据中心存在的物理主机集合PM={pm1,pm2,…,pmn},其中主机数量为n,需要初始化放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机数量为m,设定虚拟机数量m大于或等于主机n;
第二步:对于给定的虚拟机vmi,定义Vpesi为虚拟机vmi所需的CPU资源, Vrami为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利用率,Wi-ram为虚拟机vmi的内存利用率,对于给定的主机pmj,定义Ppesj为主机pmj当前的 CPU空闲资源,Pramj为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率,Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率Uj为:
Uj=α*Uj-pes+β*Uj-ram
其中0<α<1,0<β<1,且α+β=1;
定义Tagij为当前时刻,主机pmj能否满足虚拟机vmi的资源要求,即
Tagij=(Ppesj-Vpesi)>0∧(Pramj-Vrami)>0
第三步:给定主机pmj,定义该主机在t时刻的电源能耗表示为:
ej(t)=cj+q*fj 3(t)*uj(t)
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的频率,uj(t)为t时刻主机pmj的功率(Watt),q为线性常量;
则在T时间内,主机pmj的能耗Ej:
第四步:由于构建和维护虚拟分层结构需要一定的系统开销,主机数量n小于4,即无法满足构建最小双层虚拟结构的数量2*2时,,则对于任意虚拟机vmi,定义其对应每个主机具有一个分配权重得分集合Wi={wi1,wi2,…,wik},其中k≥n;定义wij为虚拟机vmi在主机pmj上的权重得分,wij=h(vmi,pmj),其中h()内包含约定的哈希函数;然后直接通过Rendezvous哈希算法将虚拟机vmi分配给权重 wij最大的主机pmj;如果主机pmk的性能是其他主机的a倍,则表示为为pmk1,…, pmka;
第五步:主机数量n大于等于4,即满足构建最小双层虚拟结构的数量时,建立虚拟分层结构,虚拟分层结构包含虚拟分层节点和真实主机节点簇两部分,虚拟分层节点之间以树的形式分布,其中,将虚拟分层节点的所有叶子节点称为虚拟叶子节点扇区,虚拟分层节点构成的树的高度称为虚拟分层结构深度;真实主机节点簇是由多个真实主机构成的集合,与虚拟分层节点底部虚拟叶子节点相关联。
第六步、出现各种人为或自然原因导致物理主机宕机或删除、或者由于计算需求增大需要增加物理主机的情况,处理过程如下::
6.1、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,选择权重值略高的同一簇中的真实主机节点完成分配;
6.2、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,且同簇下无法找到可用的真实主机节点进行分配,这种情况下,可以在虚拟分层结构中往上上升一个或多个层级,并从该层的同级虚拟节点中选择一个作为代替,再次将该层级降级到真实节点簇,寻找可用的真实主机节点;
6.3、当最后的主机簇还未满z时,直接将主机加入至该主机簇中;
6.4、当最后的主机簇的节点数为z时,且虚拟分层结构最底层未满时,增加一个主机簇;
6.5、当最后的主机簇的节点数为z时,且虚拟分层结构最底层也满时,将该主机增加至第一个主机簇,这时,主机簇的常量z=z+1。
图1为本发明基于Rendezvous哈希算法的虚拟机初始放置策略流程图。具体策略步骤如下:
1.1首先定义数据中心存在的物理主机集合PM={pm1,pm2,…,pmn},其中主机数量为n,需要初始化放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机数量为m。(假设虚拟机数量m大于或等于主机n)。
1.2对于给定的虚拟机vmi,定义Vpesi为虚拟机vmi所需的CPU资源,Vrami为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利用率,Wi-ram为虚拟机vmi的内存利用率。对于给定的主机pmj,定义Ppesj为主机pmj当前的CPU 空闲资源,Pramj为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率, Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率为:
Uj=α*Uj-pes+β*Uj-ram
其中0<α<1,0<β<1,且α+β=1。
定义Tagij为当前时刻,主机pmj能否满足虚拟机vmi的资源要求,即
Tagij=(Ppesj-Vpesi)>0∧(Pramj-Vrami)>0
1.3给定主机pmj,定义该主机在t时刻的电源能耗表示为:
ej(t)=cj+q*fj 3(t)*uj(t)
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的频率,uj(t)为t时刻主机pmj的功率(Watt),q为线性常量。
则在T时间内,主机pmj的能耗Ej:
1.4判断所有虚拟机是否完成分配,若是则跳到1.6,否则跳到1.5。
1.5虚拟分层结构进行分配虚拟机操作(分配操作在下文2.2中会具体阐述)。跳转到1.4。
1.6结束算法,完成虚拟机初始化放置。
图2为虚拟分层结构图,图3为虚拟分层结构进行虚拟机分配步骤图。虚拟分层结构为进行虚拟机分配采用的结构模型。对于主机数量不同的情况,本发明采用不同的策略进行虚拟机的初始化,以提高数据中心资源利用率。具体分配步骤如下:
2.1由于构建和维护虚拟分层结构需要一定的系统开销,主机数量n小于4,即无法满足构建最小双层虚拟结构的数量2*2时,,则对于任意虚拟机vmi,定义其对应每个主机具有一个分配权重得分集合Wi={wi1,wi2,…,wik}(其中k≥n)。定义wij为虚拟机vmi在主机pmj上的权重得分,wij=h(vmi,pmj)。其中h()内包含约定的哈希函数,如hash32、hash64等。然后直接通过Rendezvous哈希算法将虚拟机vmi分配给权重wij最大的主机pmj。如果主机pmk的性能是其他主机的a 倍,则表示为pmk1,…,pmka,例如pmk1和pmk2。显然,现在虚拟机分配到该主机上的概率是其他主机的2倍。此时,算法的运行时间为O(n)。
2.2针对主机数量n大于等于4,即满足构建最小双层虚拟结构的数量的情况,上述方法效果欠佳,需要建立虚拟分层结构(如图2所示),改善算法运行时间。虚拟分层结构包含虚拟分层节点和真实主机节点簇两部分。虚拟分层节点之间以树的形式分布,其中,本发明将虚拟分层节点的所有叶子节点称为虚拟叶子节点扇区,虚拟分层节点构成的树的高度称为虚拟分层结构深度;真实主机节点簇是由多个真实主机构成的集合,与虚拟分层节点底部虚拟叶子节点相关联。
例如,实施例中,以主机数量n=108为例。
构建的基本思想如下:
步骤2.2.1主机簇群划分。首先选择一个常数z,如虚拟分层架构图中所示,其中z为4,即每个簇中的主机数为4。将主机集合按照c=ceiling(n/z)= ceiling(108/4)=27(其中ceiling函数表示将n除以z的值向上舍入为最接近的整数)c为27组织成簇。C0={cpm1,cpm2,…,cpmz},C1={cpmz+1,cpmz+2,…, cpm2z},…直至每个主机都归属于一个簇。每个簇为虚拟分层结构中的最底层节点。
步骤2.2.2虚拟叶子节点扇区以及虚拟分层结构深度确定。选择虚拟分层结构中每个子节点扇区的叶子数f,例如虚拟分层结构图中所示,每个子节点扇区的叶子数为3。叶子数即从根节点出发,每个节点有3个子虚拟节点。一般情况下f为一位整数,选择合适的f和z会使得到的算法效益和负载均衡度等和期望较相近。根据节点扇区的叶子数3以及主机簇个数4,可以得到虚拟分层结构的深度H:
fH≥c
其中H是最小正整数,使得上述公式成立。因此,可以得到H=3。
步骤2.2.3各虚拟叶子节点扇区编号。一般采用自然编号对每个扇区分别统一编号,例如从0,1,2,…,f-1。例子中为0,1,2,每一子节点都以0,1, 2按序标号。
步骤2.2.4对于某一虚拟机vmi,对于任意一个虚拟节点s,都有一个对应的权重wis=h(vmi,s)。在虚拟分层结构的每一层叶子扇区,都可通过Rendezvous哈希算法计算各虚拟节点权重,选择得分最高的节点继续向下分层,直到选择至最底层的真实主机节点簇Cl。如虚拟分层结构中,从根节点开始,因为 h(vmi,2)>max{h(vmi,0),h(vmi,1)},因此选择(2)3节点继续往下;在第二层三个子节点中,因为h(vmi,20)>max{h(vmi,21),h(vmi,22)},因此选择(20)3节点继续往下;在第三层三个子节点中,因为h(vmi,200)>max{h(vmi,201),h(vmi,202)},因此选择(200)3节点,即(200)3位置的真是节点簇,再进行下一步选择。
步骤2.2.5当虚拟机vmi选中真实主机节点簇Cl后,在进行真实节点选择时,假设对于任意在真实节点簇Cl中的主机节点cpmlz+j,都有一个对应的权重得分 Wi(lz+j)=H(vmi,cpmlz+j)*Tagi(lz+j)(若Tag为false,则为0,若为true默认为1)。其中,将虚拟机vmi分配给主机cpmlz+j之后,H(vmi,cpmlz+j)为在相同T时间段内,Eold与分配虚拟机vmi后的真实主机节点簇Cl的总体能耗的比值,以及主机pmlz+j的资源利用率Ulz+j与1的差方和对应权重常数的乘积的和:
其中Ei+lz为T时间段内主机cpmlz+j的能耗,Eold是指相同T时间段内,未分配新虚拟机时,真实主机节点簇Cl的能耗。γ、δ是表示两者的权重。
步骤2.2.6因此,虚拟机vmi最终会选择使权重得分Wi(lz+j)最高的主机节点完成分配,可以达到真实主机簇局部能耗最低的效果。图2中74节点为最终所选择的节点。
在虚拟分层结构中,虚拟节点的选择可以从任意层级进行,唯一的区别是产生的哈希次数有所差异,若从根节点开始选择,则直到选择到真实主机节点的过程中,一共需要的哈希值数量为count=f*H次。其中f为每个子节点扇区的叶子数,H为虚拟分层结构的。
对于任何给定的虚拟机,通过Rendezvous哈希算法以近乎相同的概率选择每个主机簇,并且Rendezvous哈希算法复杂度为O(logn),效率相对较高,且每一层虚拟节点的标识只是简单的数字基数前缀,可以轻松创建适当的经过排序的字符串表示。
在云环境中,经常会出现各种人为或自然原因导致物理主机宕机或删除、或者由于计算需求增大需要增加物理主机的情况。针对物理主机宕机或删除情况,本发明提出一种动态物理主机节点宕机或删除时的处理方案:
3.1对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,可以选择权重值略高的同一簇中的真实主机节点完成分配。对虚拟分层结构中其他节点不产生影响。
3.2、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,且同簇下无法找到可用的真实主机节点进行分配,这种情况下,可以在虚拟分层结构中往上上升一个或多个层级,并从该层的同级虚拟节点中选择一个作为代替,再次将该层级降级到真实节点簇,寻找可用的真实主机节点。
针对物理主机增加情况,本发明提出一种物理主机节点的动态增加的处理方案:
3.3、当最后的主机簇还未满z时,可以直接将主机加入至该主机簇中。
3.4、当最后的主机簇的节点数为z时,且虚拟分层结构最底层未满时,可以增加一个主机簇。
3.5、当最后的主机簇的节点数为z时,且虚拟分层结构最底层也满时,可以将主机增加至第一个主机簇,这时,主机簇的常量z=z+1。
Claims (3)
1.一种基于Rendezvous哈希算法的虚拟机放置策略方法,其特征在于:包括以下步骤:
第一步:首先定义数据中心存在的主机集合PM={pm1,pm2,…,pmn},其中主机数量为n,需要初始化放置的虚拟机集合VM={vm1,vm2,…,vmm},其中虚拟机数量为m,设定虚拟机数量m大于或等于主机数量n;
第二步:对于给定的虚拟机vmi,定义Vpesi为虚拟机vmi所需的CPU资源,Vrami为虚拟机vmi所需的内存资源,Vi-pes为虚拟机vmi的CPU利用率,Wi-ram为虚拟机vmi的内存利用率,对于给定的主机pmj,定义Ppesj为主机pmj当前的CPU空闲资源,Pramj为主机pmj的内存空闲资源,Uj-pes为主机pmj的CPU利用率,Uj-ram为主机pmj的内存利用率,则定义主机pmj的资源利用率Uj为:
Uj=α*Uj-pes+β*Uj-ram
其中0<α<1,0<β<1,且α+β=1;
定义Tagij为当前时刻,主机pmj能否满足虚拟机vmi的资源要求,即
Tagij=(Ppesj-Vpesi)>0∧(Pramj-Vrami)>0
第三步:给定主机pmj,定义该主机在t时刻的电源能耗表示为:
ej(t)=cj+q*fj 3(t)*uj(t)
其中cj为静态能耗标记,fj(t)为t时刻主机pmj的频率,uj(t)为t时刻主机pmj的功率,q为线性常量;
则在T时间内,主机pmj的能耗Ej:
第四步:主机数量n小于4,即无法满足构建最小双层虚拟结构的数量2*2时,则对于任意虚拟机vmi,定义其对应每个主机具有一个分配权重集合Wi={wi1,wi2,…,wik},其中k≥n;定义wij为虚拟机vmi在主机pmj上的权重,wij=h(vmi,pmj),其中h()内包含约定的哈希函数;然后直接通过Rendezvous哈希算法将虚拟机vmi分配给权重wij最大的主机pmj;如果主机pmk的性能是其他主机的a倍,则表示为pmk1,…,pmka;
第五步:主机数量n大于等于4,即满足构建最小双层虚拟结构的数量2*2时,建立虚拟分层结构,虚拟分层结构包含虚拟分层节点和真实主机节点簇两部分,虚拟分层节点之间以树的形式分布,其中,将虚拟分层节点的所有叶子节点称为虚拟叶子节点扇区,虚拟分层节点构成的树的高度称为虚拟分层结构深度;真实主机节点簇是由多个真实主机构成的集合,与虚拟分层节点底部虚拟叶子节点相关联;建立虚拟分层结构的过程如下:
5.1真实主机节点簇群划分:首先选择真实主机节点簇的常量z,将主机集合按照c=ceiling(n/z)组织成簇,其中ceiling函数表示将n除以z的值向上舍入为最接近的整数,C0={cpm1,cpm2,…,cpmz},C1={cpmz+1,cpmz+2,…,cpm2z},…直至每个主机都归属于一个簇,每个簇为虚拟分层结构中的最底层节点;其中,c表示真实主机节点簇的个数,C0表示第一个真实主机节点簇,cpm1表示分配到第一个真实主机节点簇的第一台主机,cpm2表示分配到第一个真实主机节点簇的第二台主机,cpmz表示分配到第一个真实主机节点簇的第z台主机,C1表示第二个真实主机节点簇;cpmz+1表示分配到第二个真实主机节点簇的第z+1台主机,cpmz+2表示分配到第二个真实主机节点簇的第z+2台主机,cpm2z表示分配到第二个真实主机节点簇的第2*z台主机;
5.2虚拟叶子节点扇区以及虚拟分层结构深度确定:选择虚拟分层结构中每个子节点扇区的叶子数f,根据子节点扇区的叶子数f以及真实主机节点簇的个数c,得到虚拟分层结构的深度H:
fH≥c
其中H是最小正整数,使得上述公式成立;
5.3各虚拟叶子节点扇区编号:采用自然编号对每个扇区分别统一编号;
5.4对于某一虚拟机vmi,对于任意一个虚拟节点s,都有一个对应的权重,在虚拟分层结构的每一层虚拟叶子节点扇区,通过Rendezvous哈希算法计算各虚拟节点权重,选择得分最高的节点继续向下分层,直到选择至最底层的真实主机节点簇Cl;
5.5当虚拟机vmi选中真实主机节点簇Cl后,在进行真实节点选择时,假设对于任意在真实节点簇Cl中的主机节点cpmlz+j,都有一个对应的权重Wi(lz+j)=H(vmi,cpmlz+j)*Tagi(lz+j),若Tagi(lz+j)为false,则为0,若为true默认为1;其中:
其中Ei+lz为T时间段内主机cpmlz+j的能耗,Eold是指相同T时间段内,未分配新虚拟机时,真实主机节点簇Cl的能耗,γ、δ表示权重,Ulz+j是主机cpmlz+j的资源利用率;
因此,虚拟机vmi最终会选择使权重Wi(lz+j)最高的主机节点完成分配。
2.如权利要求1所述的一种基于Rendezvous哈希算法的虚拟机放置策略方法,其特征在于:所述虚拟机放置策略方法还包括以下步骤:
第六步、主机宕机或删除、或者由于计算需求增大而需要增加主机的情况,处理过程如下:
6.1、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,选择权重值高的同一簇中的真实主机节点完成分配;
6.2、对于给定虚拟机,若最终选择的真实主机节点资源不够分配导致不可用或已经宕机,且同一簇下无法找到可用的真实主机节点进行分配,在虚拟分层结构中往上上升一个或多个层级,并从上升的层级的同级虚拟节点中选择一个虚拟节点作为代替,再次将层级降级到真实主机节点簇,寻找可用的真实主机节点;
6.3、当最后的真实主机节点簇的节点数还未满z时,直接将主机加入至未满z的最后的真实主机节点簇;
6.4、当最后的真实主机节点簇的节点数为z时,且虚拟分层结构最底层未满时,增加一个真实主机节点簇;
6.5、当最后的真实主机节点簇的节点数为z时,且虚拟分层结构最底层也满时,将需要增加的主机增加至第一个真实主机节点簇,这时,真实主机节点簇的常量z=z+1。
3.如权利要求1或2所述的一种基于Rendezvous哈希算法的虚拟机放置策略方法,其特征在于:在虚拟分层结构中,虚拟节点的选择从任意层级进行,若从根节点开始选择,则直到选择到真实主机节点的过程中,一共需要的哈希值数量为count=f*H次,其中f为每个子节点扇区的叶子数,H为虚拟分层结构的深度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710491606.3A CN107193640B (zh) | 2017-06-26 | 2017-06-26 | 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710491606.3A CN107193640B (zh) | 2017-06-26 | 2017-06-26 | 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193640A CN107193640A (zh) | 2017-09-22 |
CN107193640B true CN107193640B (zh) | 2020-08-04 |
Family
ID=59879577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710491606.3A Active CN107193640B (zh) | 2017-06-26 | 2017-06-26 | 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193640B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362398B (zh) * | 2018-04-09 | 2023-09-12 | 阿里巴巴集团控股有限公司 | 虚拟机的调度方法和系统 |
CN109447264B (zh) * | 2018-09-17 | 2021-11-23 | 浙江工业大学 | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 |
CN109343933B (zh) * | 2018-09-17 | 2021-11-23 | 浙江工业大学 | 基于改进遗传算法的虚拟机初始放置策略方法 |
CN111124590A (zh) * | 2018-10-31 | 2020-05-08 | 千寻位置网络有限公司 | 虚拟机放置方法及装置、服务器 |
CN110474978B (zh) * | 2019-08-13 | 2022-07-08 | 未鲲(上海)科技服务有限公司 | 虚拟消息处理方调度方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488539A (zh) * | 2013-09-23 | 2014-01-01 | 北京交通大学 | 一种基于cpu动态调频技术的数据中心节能方法 |
CN105721532A (zh) * | 2014-12-26 | 2016-06-29 | 乐视网信息技术(北京)股份有限公司 | 一种节点管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244957B2 (en) * | 2010-02-26 | 2012-08-14 | Red Hat Israel, Ltd. | Mechanism for dynamic placement of virtual machines during live migration based on memory |
-
2017
- 2017-06-26 CN CN201710491606.3A patent/CN107193640B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488539A (zh) * | 2013-09-23 | 2014-01-01 | 北京交通大学 | 一种基于cpu动态调频技术的数据中心节能方法 |
CN105721532A (zh) * | 2014-12-26 | 2016-06-29 | 乐视网信息技术(北京)股份有限公司 | 一种节点管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
"基于分布式架构资源动态分配系统的设计与实现";李东萍;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170115;第I138-298页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107193640A (zh) | 2017-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193640B (zh) | 一种基于Rendezvous哈希算法的虚拟机初始放置策略方法 | |
Tziritas et al. | Application-aware workload consolidation to minimize both energy consumption and network load in cloud environments | |
CN108551474B (zh) | 一种服务器集群的负载均衡方法 | |
Gao et al. | An energy-aware ant colony algorithm for network-aware virtual machine placement in cloud computing | |
CN106598733A (zh) | 一种云计算能耗关键的三维度虚拟资源调度方法 | |
CN102404412B (zh) | 云计算数据中心节能方法及系统 | |
CN104580538B (zh) | 一种提高Nginx服务器负载均衡效率的方法 | |
CN103488539B (zh) | 一种基于cpu动态调频技术的数据中心节能方法 | |
CN103559084B (zh) | 一种节能数据中心的虚拟机迁移方法 | |
CN106484512B (zh) | 计算单元的调度方法 | |
CN106506657A (zh) | 一种基于多目标的云计算虚拟机分配调整方法 | |
CN104881322B (zh) | 一种基于装箱模型的集群资源调度方法及装置 | |
CN102508714A (zh) | 一种云计算中基于绿色计算的虚拟机调度方法 | |
CN104008018B (zh) | 云计算环境下虚拟机在线迁移方法 | |
CN109447264B (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
CN104536832B (zh) | 一种虚拟机部署方法 | |
CN102968344A (zh) | 一种多虚拟机迁移调度的方法 | |
CN110308973A (zh) | 一种基于能耗优化的容器动态迁移方法 | |
CN102176696B (zh) | 多计算机系统 | |
Li et al. | Page-sharing-based virtual machine packing with multi-resource constraints to reduce network traffic in migration for clouds | |
Salimian et al. | Survey of energy efficient data centers in cloud computing | |
CN108196935A (zh) | 一种面向云计算的虚拟机节能迁移方法 | |
CN110362379A (zh) | 基于改进蚁群算法的虚拟机调度方法 | |
WO2021259246A1 (zh) | 资源调度方法和装置、电子设备、计算机可读存储介质 | |
CN113382074A (zh) | 一种基于动态反馈的微服务负载均衡优化方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |