一种放置新建虚拟机的服务器选择方法及装置与流程

文档序号:12719163阅读:269来源:国知局
一种放置新建虚拟机的服务器选择方法及装置与流程

本发明涉及虚拟化计算领域,更具体地说,涉及一种放置新建虚拟机的服务器选择方法及装置。



背景技术:

近年来,在商业和科学应用对计算能力需求的驱动下,虚拟化技术被大规模应用到各个行业。然而,虚拟化在不断发展的同时,服务器集群的整体性能和节点的资源利用率问题也越来越引人关注。在虚拟化环境下新建虚拟机时,由于用户选择集群中物理节点的不确定性和物理节点的差异性导致集群的负载失衡,导致一部分节点的负载过重资源不够用,而另一些节点则负载过轻处于空闲状态。

因此,如何选择服务器来放置虚拟机,实现服务器集群的负载均衡、提高资源利用率和系统性能,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种放置新建虚拟机的服务器选择方法及装置,以通过选择合适的服务器来放置虚拟机,实现服务器集群的负载均衡、提高提高资源利用率和系统性能。

为实现上述目的,本发明实施例提供了如下技术方案:

一种放置新建虚拟机的服务器选择方法,包括:

获取新建虚拟机的资源需求向量;

获取服务器集群的可用资源向量集合,所述可用资源向量集合中包括所述服务器集群中每个服务器的可用资源;

利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合;

利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合;

根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值,将偏好值最大的服务器作为放置新建虚拟机的服务器。

其中,所述利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合,包括:

从所述可用资源向量集合中筛选出满足第一筛选条件的服务器,作为所述第一服务器集合;

所述第一筛选条件为:第一服务器集合中的每个服务器的可用资源向量的每项可用资源,均大于与所述资源需求向量对应的每项需求资源。

其中,利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合,包括:

根据所述第一服务器集合中的每个服务器的可用资源向量和所述资源需求向量,计算所述第一服务器集合中每个服务器的剩余资源向量;

将所述第一服务器中的服务器的剩余资源向量的各项剩余资源,均不小于与预定阈值向量对应的各项预留阈值的服务器添加至所述第二服务器集合。

其中,所述筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合之后,还包括:

判断所述第二服务器集合是否为空;

若是,则发出放置虚拟机失败的提示信息;

若否,则继续执行所述根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值的步骤。

其中,根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值,包括:

根据所述资源需求向量的资源需求总值,与所述资源需求向量中每项资源需求的需求值,计算每项资源的权重值;

利用所述第二服务器集合中每个服务器的可用资源向量和所述资源需求向量,计算所述第二服务器集合中每个服务器的剩余资源向量;

利用所述第二服务器集合中每个服务器的剩余向量资源和每个资源的权重值,计算所述第二服务器集合中每个服务器的偏好值。

一种放置新建虚拟机的服务器选择装置,包括:

第一获取模块,用于获取新建虚拟机的资源需求向量;

第二获取模块,用于获取服务器集群的可用资源向量集合,所述可用资源向量集合中包括所述服务器集群中每个服务器的可用资源;

确定模块,用于利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合;

筛选模块,用于利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合;

偏好值计算模块,用于根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值;

服务器确定模块,用于将偏好值最大的服务器作为放置新建虚拟机的服务器。

其中,所述确定模块从所述可用资源向量集合中筛选出满足第一筛选条件的服务器,作为所述第一服务器集合;所述第一筛选条件为:第一服务器集合中的每个服务器的可用资源向量的每项可用资源,均大于与所述资源需求向量对应的每项需求资源。

其中,所述筛选模块包括:

第一剩余资源向量计算单元,用于根据所述第一服务器集合中的每个服务器的可用资源向量和所述资源需求向量,计算所述第一服务器集合中每个服务器的剩余资源向量;

第二服务器集合确定单元,用于将所述第一服务器中的服务器的剩余资源向量的各项剩余资源,均不小于与预定阈值向量对应的各项预留阈值的服务器添加至所述第二服务器集合。

其中,还包括:

判断模块,用于判断所述第二服务器集合是否为空;若是,则触发提示模块;若否,则触发所述偏好值计算模块;

所述提示模块,用于在所述第二服务器集合不为空时,发出放置虚拟机失败的提示信息。

其中,所述偏好值计算模块包括:

权重值计算单元,用于根据所述资源需求向量的资源需求总值,与所述资源需求向量中每项资源需求的需求值,计算每项资源的权重值;

第二剩余资源向量计算单元,用于利用所述第二服务器集合中每个服务器的可用资源向量和所述资源需求向量,计算所述第二服务器集合中每个服务器的剩余资源向量;

偏好值计算单元,用于利用所述第二服务器集合中每个服务器的剩余向量资源和每个资源的权重值,计算所述第二服务器集合中每个服务器的偏好值。

通过以上方案可知,本发明实施例提供的一种放置新建虚拟机的服务器选择方法,包括:获取新建虚拟机的资源需求向量;获取服务器集群的可用资源向量集合,所述可用资源向量集合中包括所述服务器集群中每个服务器的可用资源;利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合;利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合;根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值,将偏好值最大的服务器作为放置新建虚拟机的服务器。

可见,在本方案中,通过获取集群中物理节点的可用资源和新建虚拟机所需资源,设置物理节点的资源预留阈值,通过资源预留阈值的设置,充分保障节点的性能,在能够充分考虑各个物理节点的运行负载情况,且满足资源预留阈值的前提下,可选择出最能满足虚拟机需求的物理节点作为来放置新建虚拟机;本发明还公开了一种放置新建虚拟机的服务器选择装置,同样能实现上述技术效果。

附图说明

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

图1为本发明实施例公开的一种放置新建虚拟机的服务器选择方法流程示意图;

图2为本发明实施例公开的服务器集群放置新建虚拟机示意图;

图3为本发明实施例公开的一种放置新建虚拟机的服务器选择装置结构示意图。

具体实施方式

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

本发明实施例公开了一种放置新建虚拟机的服务器选择方法及装置,以通过选择合适的服务器来放置虚拟机,实现服务器集群的负载均衡、提高提高资源利用率和系统性能。

参见图1,本发明实施例提供的一种放置新建虚拟机的服务器选择方法,包括:

S101、获取新建虚拟机的资源需求向量;

具体的,本实施例中的资源需求向量是新建虚拟机时所需要的各项资源,在本实施例中可以表示为:VM<cpu,mem,bandwidth>,表示集群内每一台物理节点的可用cpu资源、可用内存资源和可用带宽资源。

S102、获取服务器集群的可用资源向量集合,所述可用资源向量集合中包括所述服务器集群中每个服务器的可用资源;

具体的,在本实施例中每个节点的可用资源向量表示为PM-i<cpu,mem,bandwidth>,其中i为物理节点编号。所有物理节点的可用资源向量组成一个集合,即为可用资源向量:D0=(PM-0,PM-1,…,PM-n),n为集群内物理节点数目。

S103、利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合;

其中,所述利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合,包括:

从所述可用资源向量集合中筛选出满足第一筛选条件的服务器,作为所述第一服务器集合;

所述第一筛选条件为:第一服务器集合中的每个服务器的可用资源向量的每项可用资源,均大于与所述资源需求向量对应的每项需求资源。

具体的,在本实施例中,需从可用资源向量集合D0中选出所有满足虚拟机所需资源需求的物理节点集合,作为第一服务器集合:VM≤PM-K),其中VM≤PM-K表示物理节点PM-K的可用cpu、内存、带宽资源都能满足虚拟机VM的需求,即VMcpu≤PM-Kcpu、VMmem≤PM-Kmem、VMbandwidth≤PM-Kbandwidth。

S104、利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合;

其中,利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合,包括:

根据所述第一服务器集合中的每个服务器的可用资源向量和所述资源需求向量,计算所述第一服务器集合中每个服务器的剩余资源向量;

将所述第一服务器中的服务器的剩余资源向量的各项剩余资源,均不小于与预定阈值向量对应的各项预留阈值的服务器添加至所述第二服务器集合。

具体的,对于第一服务器集合D1内的节点,将虚拟机所需资源从物理节点预分配,再计算此时物理节点剩余资源是否满足用户设置的资源预留阈值H。对应D1内任意的物理节点,若预分配后满足阈值H要求,即进行预分配后剩余的资源值均大于对应的资源预留阈值H,则保留,并添加至第二服务器集合D2内;若预分配后不能满足阈值H要求,则不添加至第二服务器集合D2。

其中,所述筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合之后,还包括:

判断所述第二服务器集合是否为空;

若是,则发出放置虚拟机失败的提示信息;

若否,则继续执行所述根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值的步骤。

需要说明的是,执行S104之后,需要判断D2是否为空,若空,则向用户提示放置虚拟机失败;若D2不为空,则继续执行S105。

S105、根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值,将偏好值最大的服务器作为放置新建虚拟机的服务器。

其中,根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值,包括:

根据所述资源需求向量的资源需求总值,与所述资源需求向量中每项资源需求的需求值,计算每项资源的权重值;

利用所述第二服务器集合中每个服务器的可用资源向量和所述资源需求向量,计算所述第二服务器集合中每个服务器的剩余资源向量;

利用所述第二服务器集合中每个服务器的剩余向量资源和每个资源的权重值,计算所述第二服务器集合中每个服务器的偏好值。

具体的,在本实施例中首先需要计算资源需求向量的资源需求总值,即:VMcpu+VMmem+Vmbandwidth;然后计算每项资源的权重值,即:

虚拟机CPU资源需求的权重值:

W1=VMcpu/(VMcpu+VMmem+VMbandwidth);

虚拟机内存资源需求的权重值:

W2=VMmen/(VMcpu+VMmem+VMbandwidth);

虚拟机带宽资源需求的权重值:

W3=VMbandwidth/(VMcpu+VMmem+VMbandwidth);

然后根据虚拟机所需各种资源的权重值,计算放置到各个物理节点的偏好值,即为:

Pk-i=(PM-icpu-VMcpu)×W1+(PM-imem-VMmem)×W2+(PM-ibandwidth-VMbandwidth)×W3;其中i为物理节点编号,选择偏好值最大的物理节点作为新建虚拟机放置的节点,参见图2,如果同时有两个物理节点具有最大偏好值,则选取编号较小的节点,综上可见,本方案能够充分考虑各个物理节点的运行负载情况,满足资源预留阈值的前提下,选择最能满足虚拟机需求的物理节点作为来放置新建虚拟机。

下面对本发明实施例提供的服务器选择装置进行介绍,下文描述的服务器选择装置与上文描述的服务器选择方法可以相互参照。

参见图3,本发明实施例提供的一种放置新建虚拟机的服务器选择装置,包括:

第一获取模块100,用于获取新建虚拟机的资源需求向量;

第二获取模块200,用于获取服务器集群的可用资源向量集合,所述可用资源向量集合中包括所述服务器集群中每个服务器的可用资源;

确定模块300,用于利用所述资源需求向量和所述可用资源向量集合,确定所述服务器集群中满足资源需求的第一服务器集合;

筛选模块400,用于利用所述资源需求向量对所述第一服务器集合中每个服务器的可用资源向量进行预分配,筛选出所述第一服务器集合中每个服务器预分配后的可用资源向量不小于预留阈值向量的第二服务器集合;

偏好值计算模块500,用于根据所述第二服务器集合中每个服务器的可用资源向量、所述资源需求向量和所述资源需求向量的各项资源的权重值,计算所述第二服务器集合中每个服务器的偏好值;

服务器确定模块600,用于将偏好值最大的服务器作为放置新建虚拟机的服务器。

基于上述实施例,所述确定模块从所述可用资源向量集合中筛选出满足第一筛选条件的服务器,作为所述第一服务器集合;所述第一筛选条件为:第一服务器集合中的每个服务器的可用资源向量的每项可用资源,均大于与所述资源需求向量对应的每项需求资源。

基于上述实施例,所述筛选模块包括:

第一剩余资源向量计算单元,用于根据所述第一服务器集合中的每个服务器的可用资源向量和所述资源需求向量,计算所述第一服务器集合中每个服务器的剩余资源向量;

第二服务器集合确定单元,用于将所述第一服务器中的服务器的剩余资源向量的各项剩余资源,均不小于与预定阈值向量对应的各项预留阈值的服务器添加至所述第二服务器集合。

基于上述实施例,还包括:

判断模块,用于判断所述第二服务器集合是否为空;若是,则触发提示模块;若否,则触发所述偏好值计算模块;

所述提示模块,用于在所述第二服务器集合不为空时,发出放置虚拟机失败的提示信息。

基于上述实施例,所述偏好值计算模块包括:

权重值计算单元,用于根据所述资源需求向量的资源需求总值,与所述资源需求向量中每项资源需求的需求值,计算每项资源的权重值;

第二剩余资源向量计算单元,用于利用所述第二服务器集合中每个服务器的可用资源向量和所述资源需求向量,计算所述第二服务器集合中每个服务器的剩余资源向量;

偏好值计算单元,用于利用所述第二服务器集合中每个服务器的剩余向量资源和每个资源的权重值,计算所述第二服务器集合中每个服务器的偏好值。

可见,在本方案中,通过获取集群中物理节点的可用资源和新建虚拟机所需资源,设置物理节点的资源预留阈值,通过资源预留阈值的设置,充分保障节点的性能。然后从集群中筛选满足虚拟机资源需求且预分配给新建虚拟机资源后满足资源预留阈值的物理节点组成集合,计算出新建虚拟机所需资源的权重值,即充分考虑虚拟机需求资源的各种权重,以保证不同特点虚拟机的需求的满足。根据权重值再计算各个物理节点放置该新建虚拟机的偏好值,选择偏好值最大的作为新建虚拟机放置节点,能够充分考虑各个物理节点的运行负载情况,满足资源预留阈值的前提下,选择最能满足虚拟机需求的物理节点作为来放置新建虚拟机。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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