CN111258717A - 虚拟机合并方法、装置、电子设备及存储介质 - Google Patents

虚拟机合并方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111258717A
CN111258717A CN202010050154.7A CN202010050154A CN111258717A CN 111258717 A CN111258717 A CN 111258717A CN 202010050154 A CN202010050154 A CN 202010050154A CN 111258717 A CN111258717 A CN 111258717A
Authority
CN
China
Prior art keywords
load
virtual machine
host
physical
predicted
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.)
Withdrawn
Application number
CN202010050154.7A
Other languages
English (en)
Inventor
张小庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Polytechnic University
Original Assignee
Wuhan Polytechnic University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Polytechnic University filed Critical Wuhan Polytechnic University
Priority to CN202010050154.7A priority Critical patent/CN111258717A/zh
Publication of CN111258717A publication Critical patent/CN111258717A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及云数据中心技术领域,尤其涉及一种虚拟机合并方法、装置、电子设备及存储介质。所述虚拟机合并方法包括:获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;对各物理主机进行负载预测,根据预测结果选取预测超载主机;按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。实现了提升资源利用率,降低能耗,避免SLA违例风险的技术效果。

Description

虚拟机合并方法、装置、电子设备及存储介质
技术领域
本发明涉及云数据中心技术领域,尤其涉及一种虚拟机合并方法、装置、电子设备及存储介质。
背景技术
云数据中心可以利用虚拟化技术使得不同的虚拟机共享同一物理服务器或主机,以此提高服务器的资源利用率。基于虚拟化技术,云数据中心可以动态地进行虚拟机合并,以降低数据中心的能耗。即通过虚拟机的迁移和合并将虚拟机部署至最少数量的物理主机上,使得处于活动开启状态下的主机数量达到最小,同时将闲置主机转换为节能休眠模式。动态虚拟机合并具有虚拟机在线迁移能力,即可以使处于运行状态下的虚拟机在不同主机间迁移,这对于低负载主机和高负载主机均是有利的。通过虚拟机的迁移操作,数据中心内的资源管理也更加灵活。然而,在线迁移对于执行于虚拟机上的应用任务的性能具有负面影响,可能导致无法提供云服务提供方与用户间的服务质量需求,即可能导致服务等级协议(Service Level Agreement,SLA)的违例。因此,在考虑数据中心的能效的同时,还需要降低动态虚拟机合并过程中的虚拟机迁移量,在数据中心能效与服务性能之间取得均衡。
动态的虚拟机合并类似于装箱问题,是NP难问题(non-deterministicpolynomial),但又不同于装箱问题。传统的装箱问题仅仅是在给定物品的前提下,最小化使用箱子的数量。但这种思想无法直接应用于云数据中心内的动态虚拟机合并,因为传统装箱问题中箱子是同质的,但数据中心内的物理主机是异质的,即拥有不同的资源配置。仅仅使得物理主机的使用数量最小,并不代表能效是最优的。以传统的装箱问题的求解方式通过最小化物理主机使用数量的方式去解决动态的虚拟机合并问题,势必会带来很多不必要的虚拟机迁移,并增大服务等级协议SLA违例的风险。
发明内容
本发明的主要目的在于提供一种虚拟机合并方法、装置、电子设备及存储介质,旨在实现低能耗、低SLA违例概率的虚拟机合并。
为实现上述目的,本发明提供了一种虚拟机合并方法,所述虚拟机合并方法包括:
获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;
获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;
按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;
对各物理主机进行负载预测,根据预测结果选取预测超载主机;
按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。
优选地,所述获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机的步骤,具体包括:
获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果;
获取各物理主机对应的可容纳负载;
根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;
根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。
优选地,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤,具体包括:
获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;
分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;
对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;
根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。
优选地,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤之后,所述方法还包括:
在所述其他物理主机不满足所述第一迁移条件时,停止执行所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤;
在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。
优选地,所述对各物理主机进行负载预测,根据预测结果选取预测超载主机的步骤,具体包括:
根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载;
在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。
优选地,所述按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移的步骤,具体包括:
根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;
将不属于所述超载列表的物理主机作为待选物理主机;
对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;
获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;
分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;
对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;
根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。
优选地,其特征在于,所述负载需求包括:
CPU需求、内存需求、网络带宽需求及存储需求。
此外,为实现上述目的,本发明还提出一种虚拟机合并装置,所述虚拟机合并装置包括:分配模块、选取模块、迁移模块及预测模块;其中,
所述分配模块,用于获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;
所述选取模块,用于获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;
所述迁移模块,用于按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;
所述预测模块,用于对各物理主机进行负载预测,根据预测结果选取预测超载主机;
所述迁移模块,还用于按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。
此外,为实现上述目的,本发明还提出一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机合并程序,所述虚拟机合并程序配置为实现如上所述的虚拟机合并方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储虚拟机合并程序,所述虚拟机合并程序被处理器执行时实现如上所述的虚拟机合并方法的步骤。
本发明通过获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;对各物理主机进行负载预测,根据预测结果选取预测超载主机;按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。实现了提升资源利用率,降低能耗,避免SLA违例风险的技术效果。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的电子设备结构示意图。
图2为本发明虚拟机合并方法第一实施例的流程示意图;
图3为本发明虚拟机合并方法第二实施例的流程示意图。
图4为本发明虚拟机合并装置一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当人认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的电子设备结构示意图。
如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及虚拟机合并程序。
在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在电子设备中,所述电子设备通过处理器1001调用存储器1005中存储的虚拟机合并程序,并执行本发明实施例提供的虚拟机合并方法。
本发明实施例提供了一种虚拟机合并方法,参照图2,图2为本发明一种虚拟机合并方法第一实施例的流程示意图。
需要说明的是,本发明的实施基于多台物理主机及多台虚拟机。
本实施例中,所述虚拟机合并方法包括以下步骤:
步骤S100:获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机。
需要说明的是,所述负载需求包括:CPU需求、内存需求、网络带宽需求及存储需求。所述负载需求对应了物理主机拥有的四种资源类型,CPU、内存、存储及网络带宽。
需要说明的是,步骤S100具体包括:获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果。获取各物理主机对应的可容纳负载;根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。
具体实施中,例如:云数据中心拥有m台异质物理主机,表示为H={h1,h2,,…,hm}。每一台物理主机hi拥有四种资源类型:CPU、内存、存储和网络带宽。通过虚拟化技术,多台虚拟机可以同时部署在同一物理主机上,每台虚拟机可以运行不同的任务。云用户为了执行应用任务,可以在任意时刻向云数据中心以虚拟机的形式提交负载执行需求,假设此时虚拟机请求数量为n台,表示为V={v1,v2,…,vn}。即,现在需要将n台虚拟机部署在m台物理主机上。
易于理解的是,由于物理主机和虚拟机上的资源需求会随着提交负载的变化而发生变化,为了优化虚拟机部署方案,需求根据负载动态的进行虚拟机合并,进而实现能效与性能的综合优化。将虚拟机合并的目的是提升物理主机的资源利用率,使用更少的物理主机实现虚拟机的负载需求,降低实现虚拟机需求的总能耗,因此分配时需要对虚拟机进行按需分配。对虚拟机的负载需求进行降序排序,再依次根据资源利用率分配至物理主机,可提升分配效率及实际资源利用率。
具体实施中,例如:云数据中心内现有三台异质物理主机H={h1,h2,h3},五台虚拟机V={v1,v2,v3,v4,v5}。三台物理主机资源能力分别为9、10、12,五台虚拟机请求的资源分别为5、2、3、8、6。虚拟机按请求的资源利用降序排列为:v4(8)、v5(6)、v1(5)、v3(3)、v2(2)。首先为虚拟机v4寻找部署的物理主机,其负载值为8,部署在三台主机中得到的利用率分别为8/9、8/10、8/12。因此,主机h1的利用率最大,故虚拟机v4部署在主机h1上。下一步部署虚拟机v5,主机h1的剩余能力为1,无法满足虚拟机v5的资源请求,仅剩下主机h2和h3,部署在这两台主机上的利用率分别为6/10和6/12,前者利用率更高,故虚拟机v5部署在主机h2上。根据这种方式计算可知,虚拟机v1部署在主机h3,虚拟机v3部署在主机h2,虚拟机v2部署在主机h3
易于理解的是,在对所述虚拟机分配后,还需对物理主机进行负载检测,获得当前的物理主机负载。
步骤S200:获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机。
易于理解的是,为进一步提升物理主机的资源利用率,可从资源利用率最小的主机,即从所述负载最小主机上的虚拟机开始进行迁移。将所述负载最小主机上的虚拟机迁移到其他物理主机上。
步骤S300:按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机。
需要说明的是,所述步骤S300具体包括:获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。
易于理解的是,所述负载最小主机上的虚拟机数量大于等于一,对所述负载最小主机上的虚拟机进行遍历,然后依次迁移到其他物理主机上。为保证虚拟机迁移到的物理主机不超载,需要使预测负载总量和负载总量满足第一迁移条件。而所述第一迁移条件包括两项约束条件,即,对负载总量和对预测负载总量的约束条件。
具体实施中,例如:根据虚拟机初始的部署方案,按主机负载的降序排列,得到更新后的主机列表H。将列表中最后的一个主机,即负载最小的主机定义为hsou。然后,根据部署在主机hsou上的虚拟机自身负载的降序排列,得到主机hsou上的虚拟机列表,定义为Vcur。依次选择Vcur中的每一个虚拟机v,在除了主机hsou之外的主机列表H(即H-hsou)中依次寻找该虚拟机的迁移目标主机hdes。由于主机按负载降序排列,因此该步骤将优先利用负载更高的主机作为迁移目标主机。虚拟机迁移的目标主机需要满足两类约束条件,以避免出现SLA的违例以及多次重复的虚拟机迁移。第一类约束条件需要确保迁移目标主机hdes的剩余资源能力可以满足虚拟机的资源请求。在多维度资源条件下,需要同时满足四种资源类型的能力约束。同时,为了避免资源利用接近于满载100%,增大SLA违例的风险,可以设置迁移虚拟机的负载与迁移目标主机已被使用的负载总和小于其能力的预设负载,所述预设负载可以设置为其能力的80%,具体实施中以预防超载为目的进行设置,具体数值不加以限制。第二类约束条件需要确保迁移目标主机hdes不会在部署迁移虚拟机后变为可预测的超载主机。此时,由于负载的动态变化,需要同时对迁移目标主机hdes和迁移虚拟机v的负载作出预测。同时,为了减小预测准确性的影响,可以设置迁移虚拟机的预测负载与迁移目标主机预测的已被使用的负载总和小于其能力的预设超载负载,所述预测超载负载可以设置为其能力的60%,具体实施中以预防超载为目的进行设置,具体数值不加以限制。
步骤S400:对各物理主机进行负载预测,根据预测结果选取预测超载主机。
需要说明的是,将所述最小负载主机上的虚拟机迁移后,完成了合并的第一阶段,即,降低物理主机的使用个数,从而降低能耗;随后进行合并的第二阶段,防止物理主机超载而出现SLA违例的风险。
步骤S500:按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。
需要说明的是,所述步骤S500具体包括:根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;将不属于所述超载列表的物理主机作为待选物理主机;对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。
具体实施中,例如:确定主机为预测超载主机后,将所有预测超载主机放入超载列表Hoverload,按序遍历所述超载列表Hoverload中的每一台主机,根据该主机上部署的虚拟机的负载的降序排列对虚拟机进行排序,得到该主机上排序后的虚拟机集合Vover,选择Vover的第一个虚拟机v,即负载最大的目标虚拟机。在除了超载列表Hoverload之外的待选物理主机列表H-hoverload中依次寻找该虚拟机的迁移目标主机hdes,迁移目标主机同样需要满足前文所述的两个约束条件。如果无法找到任意一个可以满足要求的迁移目标主机,则重新开启一个新的物理主机用于部署该迁移虚拟机。虚拟机迁移过程直到其负载降低至预测阈值TH之下为止。
本实施例通过上述方法,使得虚拟机按需分配到物理主机,使得物理主机能够具有最大的资源利用率,又通过迁移最小负载主机上的虚拟机,将资源利用集中,随后对工作中的物理主机进行负载预测,防止物理主机超载,实现了提升资源利用率,降低能耗,避免SLA违例风险的技术效果。
基于本发明虚拟机合并方法第一实施例,提出本发明虚拟机合并方法第二实施例,参考图3,图3为本发明一种虚拟机合并方法第二实施例的流程示意图。
易于理解的是,所述负载需求包括:CPU需求、内存需求、网络带宽需求及存储需求。对应物理主机四种资源,将每一台物理主机hi的四种资源类型的总体能力定义为矢量
Figure BDA0002371292470000101
其中,
Figure BDA0002371292470000102
表示物理主机hi的CPU能力,
Figure BDA0002371292470000103
表示物理主机hi的内存能力,
Figure BDA0002371292470000104
表示物理主机hi的存储能力,
Figure BDA0002371292470000105
表示物理主机hi的网络带宽能力。将每一台物理主机hi已经被使用的四种资源类型的能力定义为矢量
Figure BDA0002371292470000106
其中,
Figure BDA0002371292470000107
表示物理主机hi已被使用的CPU能力,
Figure BDA0002371292470000108
表示物理主机hi已被使用的内存能力,
Figure BDA0002371292470000109
表示物理主机hi已被使用的存储能力,
Figure BDA00023712924700001010
表示物理主机hi已被使用的网络带宽能力。对于一台物理主机而言,其已被使用的资源能力为该主机上所部署的所有虚拟机利用该资源的总和。将每一台虚拟机vj的四种资源类型的总体能力定义为矢量
Figure BDA00023712924700001011
其中,
Figure BDA00023712924700001012
表示虚拟机vj的CPU能力,
Figure BDA00023712924700001013
表示虚拟机vj的内存能力,
Figure BDA00023712924700001014
表示虚拟机vj的存储能力,
Figure BDA00023712924700001015
表示虚拟机vj的网络带宽能力。将一台虚拟机vj已经被负载使用的四种资源类型的能力定义为矢量
Figure BDA00023712924700001016
其中,
Figure BDA00023712924700001017
表示虚拟机vj已被使用的CPU能力,
Figure BDA00023712924700001018
表示虚拟机vj已被使用的内存能力,
Figure BDA00023712924700001019
表示虚拟机vj已被使用的存储能力,
Figure BDA00023712924700001020
表示虚拟机vj已被使用的网络带宽能力。
主机hi的负载定义为四种资源类型的资源利用总和,令Loadi表示主机hi的负载,则:
Figure BDA00023712924700001021
其中,
Figure BDA00023712924700001022
表示虚拟机在物理主机hi上分配的CPU能力
Figure BDA00023712924700001023
与主机hi的总体CPU能力
Figure BDA00023712924700001024
之比,
Figure BDA00023712924700001025
表示虚拟机在物理主机hi上分配的内存能力
Figure BDA00023712924700001026
与主机hi的总体内存能力
Figure BDA00023712924700001027
之比,
Figure BDA00023712924700001028
表示虚拟机在物理主机hi上分配的存储能力
Figure BDA00023712924700001029
与主机hi的总体存储能力
Figure BDA00023712924700001030
之比,
Figure BDA00023712924700001031
表示虚拟机在物理主机hi上分配的网络带宽能力
Figure BDA00023712924700001032
与主机hi的总体网络带宽能力
Figure BDA00023712924700001033
之比,即:
Figure BDA0002371292470000111
虚拟机vj的负载定义为四种资源类型被执行负载占用的资源总和,令Loadj表示虚拟机vj的负载,则:
Figure BDA0002371292470000112
需要说明的是,
Figure BDA0002371292470000113
表示虚拟机vj已被负载利用的CPU能力
Figure BDA0002371292470000114
与虚拟机vj的总体CPU能力
Figure BDA0002371292470000115
之比,
Figure BDA0002371292470000116
表示虚拟机vj已被负载利用的内存能力
Figure BDA0002371292470000117
与虚拟机vj的总体内存能力
Figure BDA0002371292470000118
之比,
Figure BDA0002371292470000119
表示虚拟机vj已被负载利用的存储能力
Figure BDA00023712924700001110
与虚拟机vj的总体存储能力
Figure BDA00023712924700001111
之比,
Figure BDA00023712924700001112
表示虚拟机vj已被负载利用的网络带宽能力
Figure BDA00023712924700001113
与虚拟机vj的总体网络带宽能力
Figure BDA00023712924700001114
之比,即:
Figure BDA00023712924700001115
需要说明的是,所述步骤S300之后,所述方法还包括:
步骤S301:在所述其他物理主机不满足所述第一迁移条件时,停止执行所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤。
易于理解的是,基于上述四种资源,第一实施例中第一迁移条件包括的两个约束条件实际为被使用的负载总和小于其能力的预设值。本实施例以所述预设值为能力的80%为例进行说明,即:
Figure BDA00023712924700001116
Figure BDA00023712924700001117
Figure BDA00023712924700001118
Figure BDA00023712924700001119
易于理解的是,设置迁移虚拟机的预测负载与迁移目标主机预测的已被使用的负载总和小于其能力的预设值,本实施例以预设值为能力的60%为例进行说明。即:
Figure BDA00023712924700001120
Figure BDA00023712924700001121
Figure BDA00023712924700001122
Figure BDA00023712924700001123
其中,
Figure BDA0002371292470000121
表示迁移目标主机CPU资源上的预测负载,
Figure BDA0002371292470000122
表示迁移虚拟机CPU资源上的预测负载,
Figure BDA0002371292470000123
表示迁移目标主机内存资源上的预测负载,
Figure BDA0002371292470000124
表示迁移虚拟机内存资源上的预测负载,
Figure BDA0002371292470000125
表示迁移目标主机存储资源上的预测负载,
Figure BDA0002371292470000126
表示迁移虚拟机存储资源上的预测负载,
Figure BDA0002371292470000127
表示迁移目标主机网络带宽资源上的预测负载,
Figure BDA0002371292470000128
迁移虚拟机网络带宽资源上的预测负载。
易于理解的是,最小负载主机随着迁移的过程会变为无负载状态,而次最小负载主机会成为新的最小负载主机,依次选取最小负载主机进行虚拟机迁移,使得虚拟机逐渐合并到了其他物理主机上,在预防迁移后出现超载的情况下,提升了资源利用率。
易于理解的是,在完成低负载主机上虚拟机v的迁移后,需要更新该主机的负载以及迁移目标主机上的负载,并保留迁移方案,方案中包括源主机、迁移目标主机以及迁移的虚拟机。若可以找到满足两类约束条件的迁移目标主机,且可以将低负载主机上的全部虚拟机进行迁移,则完全虚拟机迁移过程,并将该低负载主机转换为节能休眠模型,节省主机能耗;否则,维持该主机上所有虚拟机部署不变,不作迁移,维持该主机的负载。低负载主机的虚拟机迁移过程的结束标志是按序遍历的当前主机无法完成所有虚拟机的迁移。
步骤S302:在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。
易于理解的是,所述无负载状态即为所述负载最小主机上没有虚拟机,即所述最小负载主机被闲置。由于虚拟机对于资源的利用会随着动态的负载状况而发生变化,为了更好实现能效和性能优化,需要通过虚拟机迁移的方式进行虚拟机合并,使得物理主机资源能够更高效的利用,同时关闭闲置主机,达到节能目标。
步骤S400具体包括:
步骤S401:根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载。
易于理解的是,步骤S400的目的是防止物理主机出现超载现象而对物理主机进行负载预测,所述后续负载为物理主机在运行中会出现的负载,所述后续负载可能高于当前负载也可能低于当前负载。
需要说明的是,超载主机预测采用最小中位数平方回归法,该方法可以用于最小化平方冗余的中位值。令x表示输入数据值(即主机历史资源利用率),y表示输出数据值(即资源利用预测值),为了得到最小中位数平方回归模型,需要计算输出值与输入值间的线性表达式,将其定义为:
y=α+βx+ε
其中,α和β表示回归因子,ε表示冗余量。估算回归模型如下:
y'=a+bx
εi=yi-yi'
其中,a和b分别用于表示α和β的估算值,εi表示预测输出值yi’与实际输出值yi间的差值,实际输出值yi可视为第i个资源利用率。模型的目标是最小化冗余差值ε。若所有冗余差值εi均为0,即可视为在给定的资源利用率集合下回归模型达到最优。令物理主机数量为m,RU表示m台主机的资源利用率集合,模型目标是对a和b作出估算,这两个参数分别为给定的主机资源利用率数值集下对资源利用率作出预测的拟合直线的截距和斜率。通过估算a和b值,在主机资源利用率数据集合下实现直线拟合,从而最小化平方冗余SR值,即:
Figure BDA0002371292470000131
令最小平方估算α和β分别代表a和b。为了最小化α和β的取值,求上式关于α和β的偏微分并令结果为0,则:
Figure BDA0002371292470000132
Figure BDA0002371292470000133
简化第二个等式,可以得到a的值,即:
Figure BDA0002371292470000134
同样可以根据上式得到b的取值:
Figure BDA0002371292470000141
其中,xavg和yavg分别表示观察变量xi和yi的均值,i=1,2,…,m。最小中位平方拟合由a、b值确定后的冗余中位值决定,即:
LR=medi(yi-(a+bxi))2
因此,主机是否决定为超载,可以下式计算的阈值TH(%)决定:
TH=1-s×LR
其中,s表示安全系数,取值范围为(0,1),决定虚拟机合并的紧迫程度。若s取较小值,则能耗更小,但SLA违例更高;反之亦然。
得到阈值TH之后,即可判断主机是否出现超载。利用该阈值乘以主机的资源能力,即可获得主机的预测负载值。若预测负载值大于主机资源能力,即可认为出现超载。同时,四类资源类型中只要有一类资源能力出现超载,即认为发生超载。
步骤S402:在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。
易于理解的是,所述预测超载负载优选地可设置为主机资源能力,或约为主机资源能力的值,均以防止物理主机超载为目的进行设置,本发明实施例不对此加以限定。本发明实施例以主机资源能力为预设超载负载进行说明。
本发明实施例通过上述方法,对物理主机的负载状态进行预测,将物理主机上的负载最大虚拟机迁移,降低了物理主机的超载风险,降低了SLA违例风险。
此外,为实现上述目的,本发明还提出一种虚拟机合并装置,参考图4,图4为本发明虚拟机合并装置功能模块图。所述虚拟机合并装置包括:分配模块10、选取模块20、迁移模块30及预测模块40。
所述分配模块10,用于获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机。
需要说明的是,所述负载需求包括:CPU需求、内存需求、网络带宽需求及存储需求。所述负载需求对应了物理主机拥有的四种资源类型,CPU、内存、存储及网络带宽。
需要说明的是,分配模块10具体用于:获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果。获取各物理主机对应的可容纳负载;根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。
易于理解的是,所述负载需求包括:CPU需求、内存需求、网络带宽需求及存储需求。对应物理主机四种资源。
具体实施中,例如:云数据中心拥有m台异质物理主机,表示为H={h1,h2,…,hm}。每一台物理主机hi拥有四种资源类型:CPU、内存、存储和网络带宽。通过虚拟化技术,多台虚拟机可以同时部署在同一物理主机上,每台虚拟机可以运行不同的任务。云用户为了执行应用任务,可以在任意时刻向云数据中心以虚拟机的形式提交负载执行需求,假设此时虚拟机请求数量为n台,表示为V={v1,v2,…,vn}。即,现在需要将n台虚拟机部署在m台物理主机上。
将每一台物理主机hi的四种资源类型的总体能力定义为矢量
Figure BDA0002371292470000151
Figure BDA0002371292470000152
其中,
Figure BDA0002371292470000153
表示物理主机hi的CPU能力,
Figure BDA0002371292470000154
表示物理主机hi的内存能力,
Figure BDA0002371292470000155
表示物理主机hi的存储能力,
Figure BDA0002371292470000156
表示物理主机hi的网络带宽能力。将每一台物理主机hi已经被使用的四种资源类型的能力定义为矢量
Figure BDA0002371292470000157
其中,
Figure BDA0002371292470000158
表示物理主机hi已被使用的CPU能力,
Figure BDA0002371292470000159
表示物理主机hi已被使用的内存能力,
Figure BDA00023712924700001510
表示物理主机hi已被使用的存储能力,
Figure BDA00023712924700001511
表示物理主机hi已被使用的网络带宽能力。对于一台物理主机而言,其已被使用的资源能力为该主机上所部署的所有虚拟机利用该资源的总和。将每一台虚拟机vj的四种资源类型的总体能力定义为矢量
Figure BDA00023712924700001512
其中,
Figure BDA00023712924700001513
表示虚拟机vj的CPU能力,
Figure BDA00023712924700001514
表示虚拟机vj的内存能力,
Figure BDA00023712924700001515
表示虚拟机vj的存储能力,
Figure BDA00023712924700001516
表示虚拟机vj的网络带宽能力。将一台虚拟机vj已经被负载使用的四种资源类型的能力定义为矢量
Figure BDA00023712924700001517
其中,
Figure BDA00023712924700001518
表示虚拟机vj已被使用的CPU能力,
Figure BDA00023712924700001519
表示虚拟机vj已被使用的内存能力,
Figure BDA00023712924700001520
表示虚拟机vj已被使用的存储能力,
Figure BDA00023712924700001521
表示虚拟机vj已被使用的网络带宽能力。
主机hi的负载定义为四种资源类型的资源利用总和,令Loadi表示主机hi的负载,则:
Figure BDA0002371292470000161
其中,
Figure BDA0002371292470000162
表示虚拟机在物理主机hi上分配的CPU能力
Figure BDA0002371292470000163
与主机hi的总体CPU能力
Figure BDA0002371292470000164
之比,
Figure BDA0002371292470000165
表示虚拟机在物理主机hi上分配的内存能力
Figure BDA0002371292470000166
与主机hi的总体内存能力
Figure BDA0002371292470000167
之比,
Figure BDA0002371292470000168
表示虚拟机在物理主机hi上分配的存储能力
Figure BDA0002371292470000169
与主机hi的总体存储能力
Figure BDA00023712924700001610
之比,
Figure BDA00023712924700001611
表示虚拟机在物理主机hi上分配的网络带宽能力
Figure BDA00023712924700001612
与主机hi的总体网络带宽能力
Figure BDA00023712924700001613
之比,即:
Figure BDA00023712924700001614
虚拟机vj的负载定义为四种资源类型被执行负载占用的资源总和,令Loadj表示虚拟机vj的负载,则:
Figure BDA00023712924700001615
需要说明的是,
Figure BDA00023712924700001616
表示虚拟机vj已被负载利用的CPU能力
Figure BDA00023712924700001617
与虚拟机vj的总体CPU能力
Figure BDA00023712924700001618
之比,
Figure BDA00023712924700001619
表示虚拟机vj已被负载利用的内存能力
Figure BDA00023712924700001620
与虚拟机vj的总体内存能力
Figure BDA00023712924700001621
之比,
Figure BDA00023712924700001622
表示虚拟机vj已被负载利用的存储能力
Figure BDA00023712924700001623
与虚拟机vj的总体存储能力
Figure BDA00023712924700001624
之比,
Figure BDA00023712924700001625
表示虚拟机vj已被负载利用的网络带宽能力
Figure BDA00023712924700001626
与虚拟机vj的总体网络带宽能力
Figure BDA00023712924700001627
之比,即:
Figure BDA00023712924700001628
易于理解的是,由于物理主机和虚拟机上的资源需求会随着提交负载的变化而发生变化,为了优化虚拟机部署方案,需求根据负载动态的进行虚拟机合并,进而实现能效与性能的综合优化。将虚拟机合并的目的是提升物理主机的资源利用率,使用更少的物理主机实现虚拟机的负载需求,降低实现虚拟机需求的总能耗,因此分配时需要对虚拟机进行按需分配。对虚拟机的负载需求进行降序排序,再依次根据资源利用率分配至物理主机,可提升分配效率及实际资源利用率。
具体实施中,例如:云数据中心内现有三台异质物理主机H={h1,h2,h3},五台虚拟机V={v1,v2,v3,v4,v5}。三台物理主机资源能力分别为9、10、12,五台虚拟机请求的资源分别为5、2、3、8、6。虚拟机按请求的资源利用降序排列为:v4(8)、v5(6)、v1(5)、v3(3)、v2(2)。首先为虚拟机v4寻找部署的物理主机,其负载值为8,部署在三台主机中得到的利用率分别为8/9、8/10、8/12。因此,主机h1的利用率最大,故虚拟机v4部署在主机h1上。下一步部署虚拟机v5,主机h1的剩余能力为1,无法满足虚拟机v5的资源请求,仅剩下主机h2和h3,部署在这两台主机上的利用率分别为6/10和6/12,前者利用率更高,故虚拟机v5部署在主机h2上。根据这种方式计算可知,虚拟机v1部署在主机h3,虚拟机v3部署在主机h2,虚拟机v2部署在主机h3
所述选取模块20,用于获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机。
易于理解的是,为进一步提升物理主机的资源利用率,可从资源利用率最小的主机,即从所述负载最小主机上的虚拟机开始进行迁移。将所述负载最小主机上的虚拟机迁移到其他物理主机上。
所述迁移模块30,用于按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机。
需要说明的是,所述迁移模块30具体用于:获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。
易于理解的是,所述负载最小主机上的虚拟机数量大于等于一,对所述负载最小主机上的虚拟机进行遍历,然后依次迁移到其他物理主机上。为保证虚拟机迁移到的物理主机不超载,需要使预测负载总量和负载总量满足第一迁移条件。而所述第一迁移条件包括两项约束条件,即,对负载总量和对预测负载总量的约束条件。
具体实施中,例如:根据虚拟机初始的部署方案,按主机负载的降序排列,得到更新后的主机列表H。将列表中最后的一个主机,即负载最小的主机定义为hsou。然后,根据部署在主机hsou上的虚拟机自身负载的降序排列,得到主机hsou上的虚拟机列表,定义为Vcur。依次选择Vcur中的每一个虚拟机v,在除了主机hsou之外的主机列表H(即H-hsou)中依次寻找该虚拟机的迁移目标主机hdes。由于主机按负载降序排列,因此该步骤将优先利用负载更高的主机作为迁移目标主机。虚拟机迁移的目标主机需要满足两类约束条件,以避免出现SLA的违例以及多次重复的虚拟机迁移。第一类约束条件需要确保迁移目标主机hdes的剩余资源能力可以满足虚拟机的资源请求。在多维度资源条件下,需要同时满足四种资源类型的能力约束。同时,为了避免资源利用接近于满载100%,增大SLA违例的风险,可以设置迁移虚拟机的负载与迁移目标主机已被使用的负载总和小于其能力的预设负载,所述预设负载可以设置为80%。即:
Figure BDA0002371292470000181
Figure BDA0002371292470000182
Figure BDA0002371292470000183
Figure BDA0002371292470000184
第二类约束条件需要确保迁移目标主机hdes不会在部署迁移虚拟机后变为可预测的超载主机。此时,由于负载的动态变化,需要同时对迁移目标主机hdes和迁移虚拟机v的负载作出预测。同时,为了减小预测准确性的影响,可以设置迁移虚拟机的预测负载与迁移目标主机预测的已被使用的负载总和小于其能力的预设超载负载,所述预测超载负载可以设置为60%。即:
Figure BDA0002371292470000185
Figure BDA0002371292470000186
Figure BDA0002371292470000187
Figure BDA0002371292470000188
其中,
Figure BDA0002371292470000189
表示迁移目标主机CPU资源上的预测负载,
Figure BDA00023712924700001810
表示迁移虚拟机CPU资源上的预测负载,
Figure BDA00023712924700001811
表示迁移目标主机内存资源上的预测负载,
Figure BDA00023712924700001812
表示迁移虚拟机内存资源上的预测负载,
Figure BDA00023712924700001813
表示迁移目标主机存储资源上的预测负载,
Figure BDA00023712924700001814
表示迁移虚拟机存储资源上的预测负载,
Figure BDA00023712924700001815
表示迁移目标主机网络带宽资源上的预测负载,
Figure BDA00023712924700001816
迁移虚拟机网络带宽资源上的预测负载。
易于理解的是,最小负载主机随着迁移的过程会变为无负载状态,而次最小负载主机会成为新的最小负载主机,依次选取最小负载主机进行虚拟机迁移,使得虚拟机逐渐合并到了其他物理主机上,在预防迁移后出现超载的情况下,提升了资源利用率。
易于理解的是,在完成低负载主机上虚拟机v的迁移后,需要更新该主机的负载以及迁移目标主机上的负载,并保留迁移方案,方案中包括源主机、迁移目标主机以及迁移的虚拟机。若可以找到满足两类约束条件的迁移目标主机,且可以将低负载主机上的全部虚拟机进行迁移,则完全虚拟机迁移过程,并将该低负载主机转换为节能休眠模型,节省主机能耗;否则,维持该主机上所有虚拟机部署不变,不作迁移,维持该主机的负载。低负载主机的虚拟机迁移过程的结束标志是按序遍历的当前主机无法完成所有虚拟机的迁移。
所述迁移模块30还用于在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。
易于理解的是,所述无负载状态即为所述负载最小主机上没有虚拟机,即所述最小负载主机被闲置。由于虚拟机对于资源的利用会随着动态的负载状况而发生变化,为了更好实现能效和性能优化,需要通过虚拟机迁移的方式进行虚拟机合并,使得物理主机资源能够更高效的利用,同时关闭闲置主机,达到节能目标。
所述预测模块40,用于对各物理主机进行负载预测,根据预测结果选取预测超载主机。
需要说明的是,将所述最小负载主机上的虚拟机迁移后,完成了合并的第一阶段,即,降低物理主机的使用个数,从而降低能耗;随后进行合并的第二阶段,防止物理主机超载而出现SLA违例的风险。
所述预测模块40具体用于根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载。在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。
易于理解的是,所述预测模块40的目的是防止物理主机出现超载现象而对物理主机进行负载预测,所述后续负载为物理主机在运行中会出现的负载,所述后续负载可能高于当前负载也可能低于当前负载。
需要说明的是,超载主机预测采用最小中位数平方回归法,该方法可以用于最小化平方冗余的中位值。令x表示输入数据值(即主机历史资源利用率),y表示输出数据值(即资源利用预测值),为了得到最小中位数平方回归模型,需要计算输出值与输入值间的线性表达式,将其定义为:
y=α+βx+ε
其中,α和β表示回归因子,ε表示冗余量。估算回归模型如下:
y'=a+bx
εi=yi-yi'
其中,a和b分别用于表示α和β的估算值,εi表示预测输出值yi’与实际输出值yi间的差值,实际输出值yi可视为第i个资源利用率。模型的目标是最小化冗余差值ε。若所有冗余差值εi均为0,即可视为在给定的资源利用率集合下回归模型达到最优。令物理主机数量为m,RU表示m台主机的资源利用率集合,模型目标是对a和b作出估算,这两个参数分别为给定的主机资源利用率数值集下对资源利用率作出预测的拟合直线的截距和斜率。通过估算a和b值,在主机资源利用率数据集合下实现直线拟合,从而最小化平方冗余SR值,即:
Figure BDA0002371292470000201
令最小平方估算α和β分别代表a和b。为了最小化α和β的取值,求上式关于α和β的偏微分并令结果为0,则:
Figure BDA0002371292470000202
Figure BDA0002371292470000203
简化第二个等式,可以得到a的值,即:
Figure BDA0002371292470000204
同样可以根据上式得到b的取值:
Figure BDA0002371292470000205
其中,xavg和yavg分别表示观察变量xi和yi的均值,i=1,2,…,m。最小中位平方拟合由a、b值确定后的冗余中位值决定,即:
LR=medi(yi-(a+bxi))2
因此,主机是否决定为超载,可以下式计算的阈值TH(%)决定:
TH=1-s×LR
其中,s表示安全系数,取值范围为(0,1),决定虚拟机合并的紧迫程度。若s取较小值,则能耗更小,但SLA违例更高;反之亦然。
得到阈值TH之后,即可判断主机是否出现超载。利用该阈值乘以主机的资源能力,即可获得主机的预测负载值。若预测负载值大于主机资源能力,即可认为出现超载。同时,四类资源类型中只要有一类资源能力出现超载,即认为发生超载。
易于理解的是,所述预测超载负载优选地可设置为主机资源能力,或约为主机资源能力的值,均以防止物理主机超载为目的进行设置,本发明实施例不对此加以限定。本发明实施例的上述讲解皆以主机资源能力为预设超载负载进行说明。
所述迁移模块30,还用于按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。
所述迁移模块30具体用于根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;将不属于所述超载列表的物理主机作为待选物理主机;对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。
具体实施中,例如:确定主机为预测超载主机后,将所有预测超载主机放入超载列表Hoverload,按序遍历所述超载列表Hoverload中的每一台主机,根据该主机上部署的虚拟机的负载的降序排列对虚拟机进行排序,得到该主机上排序后的虚拟机集合Vover,选择Vover的第一个虚拟机v,即负载最大的目标虚拟机。在除了超载列表Hoverload之外的待选物理主机列表H-hoverload中依次寻找该虚拟机的迁移目标主机hdes,迁移目标主机同样需要满足前文所述的两个约束条件。如果无法找到任意一个可以满足要求的迁移目标主机,则重新开启一个新的物理主机用于部署该迁移虚拟机。虚拟机迁移过程直到其负载降低至预测阈值TH之下为止。
本实施例通过上述装置,使得虚拟机按需分配到物理主机,使得物理主机能够具有最大的资源利用率,又通过迁移最小负载主机上的虚拟机,将资源利用集中,随后对工作中的物理主机进行负载预测,防止物理主机超载,实现了提升资源利用率,降低能耗,避免SLA违例风险的技术效果。
此外,为实现上述目的,本发明还提出一种电子设备,由于本电子设备采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,为实现上述目的,本发明还提出一种存储介质,由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的虚拟机合并方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端电子设备(可以是手机,计算机,服务器,或者网络电子设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种虚拟机合并方法,其特征在于,所述虚拟机合并方法包括:
获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;
获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;
按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;
对各物理主机进行负载预测,根据预测结果选取预测超载主机;
按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。
2.如权利要求1所述的虚拟机合并方法,其特征在于,所述获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机的步骤,具体包括:
获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果;
获取各物理主机对应的可容纳负载;
根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;
根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。
3.如权利要求1或2所述的虚拟机合并方法,其特征在于,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤,具体包括:
获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;
分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;
对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;
根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。
4.如权利要求1所述的虚拟机合并方法,其特征在于,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤之后,所述方法还包括:
在所述其他物理主机不满足所述第一迁移条件时,停止执行所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤;
在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。
5.如权利要求1所述的虚拟机合并方法,其特征在于,所述对各物理主机进行负载预测,根据预测结果选取预测超载主机的步骤,具体包括:
根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载;
在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。
6.如权利要求5所述的虚拟机合并方法,其特征在于,所述按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移的步骤,具体包括:
根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;
将不属于所述超载列表的物理主机作为待选物理主机;
对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;
获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;
分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;
对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;
根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。
7.如权利要求1~6任一项所述的虚拟机合并方法,其特征在于,所述负载需求包括:
CPU需求、内存需求、网络带宽需求及存储需求。
8.一种虚拟机合并装置,其特征在于,所述虚拟机合并装置包括:分配模块、选取模块、迁移模块及预测模块;其中,
所述分配模块,用于获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;
所述选取模块,用于获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;
所述迁移模块,用于按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;
所述预测模块,用于对各物理主机进行负载预测,根据预测结果选取预测超载主机;
所述迁移模块,还用于按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。
9.一种电子设备,其特征在于,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机合并程序,所述虚拟机合并程序配置为实现如权利要求1至7中任一项所述的虚拟机合并方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储虚拟机合并程序,所述虚拟机合并程序被处理器执行时实现如权利要求1至7任一项所述的虚拟机合并方法的步骤。
CN202010050154.7A 2020-01-17 2020-01-17 虚拟机合并方法、装置、电子设备及存储介质 Withdrawn CN111258717A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010050154.7A CN111258717A (zh) 2020-01-17 2020-01-17 虚拟机合并方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010050154.7A CN111258717A (zh) 2020-01-17 2020-01-17 虚拟机合并方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111258717A true CN111258717A (zh) 2020-06-09

Family

ID=70948888

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010050154.7A Withdrawn CN111258717A (zh) 2020-01-17 2020-01-17 虚拟机合并方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111258717A (zh)

Similar Documents

Publication Publication Date Title
Li et al. Energy-efficient and quality-aware VM consolidation method
CN111078363B (zh) 一种虚拟机的numa节点调度方法、装置、设备及介质
Gutierrez-Garcia et al. Agent-based load balancing in cloud data centers
US9218213B2 (en) Dynamic placement of heterogeneous workloads
Borgetto et al. Energy-efficient and SLA-aware management of IaaS clouds
CN107273185B (zh) 一种基于虚拟机的负载均衡控制方法
US8037185B2 (en) Dynamic application placement with allocation restrictions, vertical stacking and even load distribution
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
Sampaio et al. PIASA: A power and interference aware resource management strategy for heterogeneous workloads in cloud data centers
Lilhore et al. An efficient load balancing method by using machine learning-based VM distribution and dynamic resource mapping
Ma et al. Real-time virtual machine scheduling in industry IoT network: A reinforcement learning method
Li An adaptive overload threshold selection process using Markov decision processes of virtual machine in cloud data center
Babu et al. Interference aware prediction mechanism for auto scaling in cloud
Li et al. PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters
JP2007200347A (ja) 仮想計算機システム及びプログラム
Kaur et al. A review on energy aware VM placement and consolidation techniques
Katangur et al. Priority weighted round robin algorithm for load balancing in the cloud
CN110308965B (zh) 云数据中心的基于规则的启发式虚拟机分配方法及系统
JP2007200346A (ja) 仮想計算機システム及びプログラム
Phi et al. Load balancing algorithm on cloud computing for optimize response time
Nguyen et al. A multi-resource selection scheme for Virtual Machine consolidation in Cloud data centers
CN111258717A (zh) 虚拟机合并方法、装置、电子设备及存储介质
Gadhavi et al. Efficient resource provisioning through workload prediction in the cloud system
CN116302327A (zh) 资源调度方法及相关设备
Sun et al. An energy efficient and runtime-aware framework for distributed stream computing systems

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20200609

WW01 Invention patent application withdrawn after publication