一种分配宿主机资源的方法和装置与流程

文档序号:12596647阅读:559来源:国知局
一种分配宿主机资源的方法和装置与流程

本发明涉及信息技术领域,尤其涉及一种分配宿主机资源的方法及装置。



背景技术:

云计算技术实现了对业务对底层资源的屏蔽。业务运行在宿主机中的虚拟机上,在多个宿主机、虚拟机的情况下,宿主机的资源利用率是跟虚拟机的分配算法密切相关的。

例如,有两个宿主机hostA和hostB,他们的资源规格都是8核CPU,8G字节内存,需要在这两个宿主机上运行3个虚拟机VM1、VM2和VM3,其中VM1和VM2的资源规格为4核CPU、4G字节内存,VM3的资源规格为8核CPU、8G字节内存。显然运行利用率最高的分配方式为:VM1和VM2运行在一个宿主机上,VM3运行在另一个宿主机上。这样,资源利用率达到了100%。

现有技术中,管理系统分配宿主机资源时,对上层应用提供了创建虚拟机(Virtual Machine)的接口,若上层需创建多个虚拟机,则需要调用多次。例如,根据上面的例子,第一次调用接口创建VM1,则管理系统分配hostA上创建VM1。第二次调用接口创建VM2,管理系统将因为hostB上剩余资源更多而把VM2创建在hostB上。当第三次调用接口创建VM3时,由于HostA、HostB上剩余资源均不能满足VM3所需资源,创建失败。由此导致系统资源利用率只有50%。可见,管理系统在进行资源分配时存在资源利用率不足的问题。



技术实现要素:

为克服现有技术的缺陷,本发明实施例提供了一种分配宿主机资源的方法。所述方法的技术方案如下:

第一方面,本发明实施例提供了一种分配宿主机资源的方法,包括:

获取应用所需多个虚拟机的资源规格;

根据排序规则和所述虚拟机的资源规格,对所述多个虚拟机的权值进行排序;

按照虚拟机权值从大到小的顺序申请分配宿主机资源。

在第一方面的第一种可能的实现方式中,所述资源规格包括虚拟机的CPU值,虚拟机的内存值,或者虚拟机外部存储器值。

在第一方面的第二种可能的实现方式中,所述排序规则包括各资源规格所占的权重,所述虚拟机的权值为各资源规格的权值所占权重的和。

在第一方面的第三种可能的实现方式中,所述资源规格的权值为归一化的值,所述资源规格的归一化值为虚拟机的资源规格值除以资源规格的最小值。

在第一方面的第四种可能的实现方式中,所述应用所需多个虚拟机的资源规格是通过一次性调用接口获取的,或者是通过读取应用信息获取的。

第二方面,本发明实施例提供了一种管理服务器,包括获取模块,排序模块,以及分配模块,其中:

所述获取模块,用于获取应用所需多个虚拟机的资源规格;

所述排序模块,用于根据排序规则和所述虚拟机的资源规格,对所述多个虚拟机的权值进行排序;

所述分配模块,用于按照虚拟机权值从大到小的顺序申请分配宿主机资源。

在第二方面的第一种可能的实现方式中,所述资源规格包括虚拟机的CPU值,虚拟机的内存值,或者虚拟机外部存储器值。

在第二方面的第二种可能的实现方式中,所述排序规则包括各资源规格所占的权重,所述虚拟机的权值为各资源规格的权值所占权重的和。

在第二方面的第三种可能的实现方式中,所述资源规格的权值为归一化的值,所述资源规格的归一化值为虚拟机的资源规格值除以资源规格的最小值。

在第二方面的第四种可能的实现方式中,所述应用所需多个虚拟机的资源规格是所述获取模块通过一次性调用接口获取的,或者是通过读取应用信息获取的。

本发明实施例提供的上述技术方案通过应用所需虚拟机按照权值统一排序后再进行分配,大大提高了宿主机的资源利用率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。

图1为本发明实施例提供的一种系统架构图;

图2为本发明实施例提供的一种分配宿主机资源的方法流程图;

图3为本发明实施例提供的一种管理服务器的结构示意图;

图4为本发明实施例提供的另一种管理服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下获取的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种分配宿主机资源的系统,如图1所示,系统包括上层应用、管理服务器、宿主机。

上层应用是提供业务的应用程序。而管理服务器用于获取应用所需多个虚 拟机的资源规格;根据排序规则和所述虚拟机的资源规格,对所述多个虚拟机的权值进行排序;按照虚拟机权值从大到小的顺序申请分配宿主机资源。宿主机用于运行分配的虚拟机。

本发明实施例还提供一种分配宿主机资源的方法,应用于如图1所示的系统,特别是其中的管理服务器中。该方法如图2所示,包括下列步骤:

201,获取应用所需多个虚拟机的资源规格;

202,根据排序规则和所述虚拟机的资源规格,对所述多个虚拟机的权值进行排序;

203,按照虚拟机权值从大到小的顺序申请分配宿主机资源。

上述资源规格包括虚拟机的CPU值,虚拟机的内存值,或者虚拟机所需的外部存储器值。而所述排序规则包括各资源规格所占的权重,虚拟机的权值为各资源规格的权值所占权重的和。所述资源规格的权值为归一化的值,所述资源规格的归一化值为虚拟机的资源规格值除以资源规格的最小值。

本发明实施例通过应用所需虚拟机按照权值统一排序后再进行分配,大大提高了宿主机的资源利用率。

下面进一步举例来说明本发明,假设图1所示的系统中的宿主机有两个,hostA和hostB,他们的资源规格都是8核CPU,8G字节内存。分配宿主机资源的实现过程具体包括:

201A,管理服务器获取应用所需多个虚拟机的资源规格。

假设应用需要在这两个宿主机上运行3个虚拟机VM1、VM2和VM3,它们的资源规格需求分别为2核CPU、2G字节内存;3核CPU、4G字节内存;以及5核CPU、6G字节内存。应用可以通过一次性调用接口向管理服务器申请分配这3个虚拟机,也可以由管理服务器读取应用信息获取虚拟机资源规格。一个虚拟机的资源规格还可以包括外部存储器,如硬盘空间等。

202A,管理服务器根据排序规则和所述虚拟机的资源规格,对所述多个虚 拟机的权值进行排序。

排序规则用于确定虚拟机排序的计算规则,可以预先设置。排序规则包括各资源规格所占的权重。例如,可以设CPU值和内存值的权重各为50%。对于计算量较大的应用,可以提高CPU值的权重。例如,CPU值的权重为70%,内存值的权重为30%。这样更有利于合理安排资源。如果资源规格还包括外部存储器,则CPU值、内存值、外部存储器值的权重的和为100%。

计算虚拟机权值时首先把各资源规格归一化,权值的计算方法为虚拟机的资源规格值除以资源规格的最小值。本实施例中,3个虚拟机VM1、VM2和VM3的CPU值分别为2核、3核、5核,最小的CPU值为2核,则VM1的CPU权值为1,VM2的CPU权值为1.5,VM3的CPU权值为2.5。而VM1、VM2和VM3的内存值分别为2G字节、4G字节、6G字节。最小的内存值为2G字节,则VM1的内存权值为1,VM2的内存权值为2,VM3的内存权值为3。

虚拟机各资源规格的权值计算出来后,各权值乘以权重后得到的总和就是虚拟机的权值。假设本例子中,CPU值的权重为70%,内存值的权重为30%。则各虚拟机权值如下:

VM1的权值=1*70%+1*30%=1;

VM2的权值=1.5*70%+2*30%=1.65;

VM3的权值=2.5*70%+3*30%=2.65;

各虚拟机权值计算出来后,可按照从大到小的顺序进行培训。上述例子中,排序的结果为:VM3、VM2、VM1。

203A,管理服务器按照虚拟机权值从大到小的顺序申请分配宿主机资源。

排序完成后,按照从大到小顺序申请分配宿主机资源。本实施例中,先分配VM3,VM3将分配到宿主机hostA中,再分配VM2,将分配到hostB中,这样宿主机hostA上未分配资源为3核CPU、2G内存,hostB上未分配资源为 5核CPU、4G内存。最后分配VM1时,由于hostB上资源更多,可以分配VM1到hostB上。

本发明实施例通过业务所需虚拟机按照权值统一排序后再进行分配,大大提高了宿主机的资源利用率。

本发明实施例还提供一种管理服务器,用于实施上述图2所示的方法实施例。具体如图3所示,本发明实施例提供的一种管理服务器包括:

获取模块301,用于获取应用所需多个虚拟机的资源规格;

排序模块302,用于根据排序规则和所述虚拟机的资源规格,对所述多个虚拟机的权值进行排序;

分配模块303,用于按照虚拟机权值从大到小的顺序申请分配宿主机资源。

上述资源规格包括虚拟机的CPU值,虚拟机的内存值,或者虚拟机外部存储器值。排序规则可包括各资源规格所占的权重,所述虚拟机的权值为各资源规格的权值所占权重的和。所述资源规格的权值为归一化的值,所述资源规格的归一化值为虚拟机的资源规格值除以资源规格的最小值。所述应用所需多个虚拟机的资源规格是所述获取模块通过一次性调用接口获取的,或者是通过读取应用信息获取的。

本发明实施例提供的上述技术方案通过应用所需虚拟机按照权值统一排序后再进行分配,大大提高了宿主机的资源利用率。

图4所示的是本发明实施例提供的管理服务器的另一种结构示意图,采用通用计算机系统结构,执行本发明方案的程序代码保存在存储器中,并由处理器来控制执行。管理服务器包括:处理器401,存储器402,通信接口403。

处理器可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路application-specific integrated circuit(ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。

计算机系统中包括的一个或多个存储器,可以是一种非易失性的计算机可读存储介质,例如只读存储器read-only memory(ROM)或可存储静态信息和指令的其他类型的静态存储设备,也可以是磁盘存储器。这些存储器可通过总线与处理器相连接。存储器,保存有执行本发明方案的程序代码,例如,执行图2所示实施例的方法的程序。执行本发明方案的程序代码保存在存储器中,并由处理器来控制执行。

通信接口,可以使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等.

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,各单元具体功能的执行过程参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1