发明内容
本发明实施例提供一种虚拟化集群系统、资源分配方法和管理节点,以一定程度上解决现有技术中在虚拟机的负载变化频繁的情况下,无法及时为虚拟机分配资源,从而影响虚拟机性能的问题。
第一方面,本发明实施例提供一种虚拟化集群系统,包括:
管理节点,用于根据所述虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值;确定所述虚拟化集群系统中与所述虚拟机相关的资源池为需要映射到所述虚拟化集群系统中的其上运行有所述虚拟机的计算节点上的资源池,所述与所述虚拟机相关的资源池包括所述虚拟机的父资源池和所述父资源池的父资源池;根据所述虚拟机的资源分配值和所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的资源分配值,所述资源池的结构用于表示所述计算节点上映射的资源池和其子资源池之间的父子关系和所述计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;向所述计算节点发送所述计算节点上映射的资源池的资源分配值和所述计算节点上映射的资源池的结构。
计算节点,用于接收所述管理节点发送的所述计算节点上映射的资源池的资源分配值和所述计算节点上映射的资源池的结构;并根据所述计算节点上映射的资源池的资源分配值和所述资源池的结构为所述计算节点上运行的虚拟机分配资源。
在第一方面的第一种可能的实现方式中,所述虚拟化集群系统中的虚拟机的资源分配值包括所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值;
所述管理节点,具体用于根据所述虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值;确定所述虚拟化集群系统中与所述虚拟机相关的资源池为需要映射到所述虚拟化集群系统中的其上运行有所述虚拟机的计算节点上的资源池,所述与所述虚拟机相关的资源池包括所述虚拟机的父资源池和所述父资源池的父资源池;根据所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值以及所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的预留资源的分配值、所述资源池的资源上限的分配值和所述资源池的份额的分配值,所述资源池的结构用于表示所述计算节点上映射的资源池和其子资源池之间的父子关系和所述计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;向所述计算节点发送所述计算节点上映射的资源池的预留资源的分配值、所述资源池的资源上限的分配值和所述资源池的份额的分配值,以及所述计算节点上映射的资源池的结构。
根据第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的所述虚拟机的份额的设定值或者为所述虚拟机当前的资源使用量。
第二方面,本发明实施例提供一种虚拟化集群系统的资源分配方法,包括:
根据虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值;
确定所述虚拟化集群系统中与所述虚拟机相关的资源池为需要映射到所述虚拟化集群系统中的其上运行有所述虚拟机的计算节点上的资源池,所述与所述虚拟机相关的资源池包括所述虚拟机的父资源池和所述父资源池的父资源池;
根据所述虚拟机的资源分配值和所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的资源分配值,所述资源池的结构用于表示所述计算节点上映射的资源池和其子资源池之间的父子关系和所述计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;
向所述计算节点发送所述计算节点上映射的资源池的资源分配值和所述计算节点上映射的资源池的结构,以使所述计算节点根据所述计算节点上映射的资源池的资源分配值和所述资源池的结构为所述计算节点上运行的虚拟机分配资源。
在第二方面的第一种可能的实现方式中,所述虚拟化集群系统中的虚拟机的资源分配值包括所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值;
根据所述虚拟机的资源分配值和所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的资源分配值,包括:
根据所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值以及所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的预留资源的分配值、所述资源池的资源上限的分配值和所述资源池的份额的分配值。
根据第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的所述虚拟机的份额的设定值或者为所述虚拟机当前的资源使用量。
根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,如果所述虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的所述虚拟机的份额的设定值,所述根据虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值,包括:
根据所述虚拟化集群系统中的使用所述父资源池的n个虚拟机中的第j个虚拟机的份额的设定值计算所述n个虚拟机中的第j个虚拟机的预留资源的分配值所述n个虚拟机中的第j个虚拟机的资源上限的分配值和所述n个虚拟机中的第j个虚拟机的份额的分配值其中, 表示所述n个虚拟机中的第j个虚拟机的预留资源的分配值,RParent表示所述n个虚拟机的父资源池的预留资源的分配值,表示所述n个虚拟机中的第j个虚拟机的份额的设定值,表示所述n个虚拟机中的每个虚拟机的份额的设定值之和,表示所述n个虚拟机中的第j个虚拟机的资源上限的分配值,LParent表示所述n个虚拟机的父资源池的资源上限的分配值,表示所述n个虚拟机中的第j个虚拟机的份额的分配值,SParent表示所述n个虚拟机的父资源池的预留资源的分配值,i、j为大于等于1且小于等于n的整数;
相应地,所述根据所述虚拟机的资源分配值和所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的资源分配值,包括:
根据所述计算节点上映射的资源池的结构,确定使用所述计算节点上映射的第k个资源池的m个虚拟机;
根据所述m个虚拟机的预留资源的分配值、所述m个虚拟机的资源上限的分配值、所述m个虚拟机的份额的分配值,确定所述计算节点上映射的第k个资源池的预留资源的分配值所述第k个资源池的资源上限的分配值和所述第k个资源池的份额的分配值其中, 表示所述m个虚拟机中的第s个虚拟机的预留资源的分配值、表示所述m个虚拟机中的第s个虚拟机的资源上限的分配值、表示所述m个虚拟机中的第s个虚拟机的份额的分配值,s为大于等于1且小于等于m的整数,k为大于等于1的整数,m为大于等于1且小于等于n的整数。
根据第二方面的第三种可能的实现方式,在第四种可能的实现方式中,在所述根据虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值之后,还包括:
在所述根据虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值之后,还包括:
如果所述小于所述则将所述调整为所述以得到调整后的第j个虚拟机的预留资源的分配值
如果所述大于所述则将所述调整为所述以得到调整后的第j个虚拟机的预留资源的分配值
如果所述大于所述则将所述调整为以得到调整后的第j个虚拟机的资源上限的分配值;
如果所述小于所述调整后的第j个虚拟机的预留资源的分配值则将所述调整为所述调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值;
如果所述小于所述调整后的第j个虚拟机的预留资源的分配值则将所述调整为所述调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值。
第三方面,本发明实施例提供一种管理节点,包括:
计算模块,用于根据虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值;
第一确定模块,用于确定所述虚拟化集群系统中与所述虚拟机相关的资源池为需要映射到所述虚拟化集群系统中的其上运行有所述虚拟机的计算节点上的资源池,所述与所述虚拟机相关的资源池包括所述虚拟机的父资源池和所述父资源池的父资源池;
第二确定模块,用于根据所述虚拟机的资源分配值和所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的资源分配值,所述资源池的结构用于表示所述计算节点上映射的资源池和其子资源池之间的父子关系和所述计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;
发送模块,用于向所述计算节点发送所述计算节点上映射的资源池的资源分配值和所述计算节点上映射的资源池的结构,以使所述计算节点根据所述计算节点上映射的资源池的资源分配值和所述计算节点上映射的资源池的结构为所述计算节点上运行的虚拟机分配资源。
在第三方面的第一种可能的实现方式中,所述虚拟化集群系统中的虚拟机的资源分配值包括所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值;
所述第二确定模块,具体用于根据所述虚拟机的预留资源的分配值、所述虚拟机的资源上限的分配值和所述虚拟机的份额的分配值以及所述计算节点上映射的资源池的结构,确定所述计算节点上映射的资源池的预留资源的分配值、所述资源池的资源上限的分配值和所述资源池的份额的分配值,所述资源池的结构用于表示所述计算节点上映射的资源池和其子资源池之间的父子关系和其子资源池之间的父子关系和所述计算节点上映射的资源池所包括的多个资源池之间的兄弟关系。
根据第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中中,所述虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值或者为所述虚拟机当前的资源使用量。
根据第三方面的第二种可能的实现方式,在第三种可能的实现方式中,如果所述虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的所述虚拟机的份额的设定值,所述计算模块具体用于根据所述虚拟化集群系统中的使用所述父资源池的n个虚拟机中的第j个虚拟机的份额的设定值计算所述n个虚拟机中的第j个虚拟机的预留资源的分配值所述n个虚拟机中的第j个虚拟机的资源上限的分配值和所述n个虚拟机中的第j个虚拟机的份额的分配值其中, 表示所述n个虚拟机中的第j个虚拟机的预留资源的分配值,RParent表示所述n个虚拟机的父资源池的预留资源的分配值,表示所述n个虚拟机中的第j个虚拟机的份额的设定值,表示所述n个虚拟机中的每个虚拟机的份额的设定值之和,表示所述n个虚拟机中的第j个虚拟机的资源上限的分配值,LParent表示所述n个虚拟机的父资源池的资源上限的分配值,表示所述n个虚拟机中的第j个虚拟机的份额的分配值,SParent表示所述n个虚拟机的父资源池的预留资源的分配值,i、j为大于等于1且小于等于n的整数;
相应地,所述第二确定模块,具体用于根据所述计算节点上映射的资源池的结构,确定使用所述计算节点上映射的第k个资源池的m个虚拟机;根据所述m个虚拟机的预留资源的分配值、所述m个虚拟机的资源上限的分配值、所述m个虚拟机的份额的分配值,确定所述计算节点上映射的第k个资源池的预留资源的分配值所述第k个资源池的资源上限的分配值和所述第k个资源池的份额的分配值其中, 表示所述m个虚拟机中的第s个虚拟机的预留资源的分配值、表示所述m个虚拟机中的第s个虚拟机的资源上限的分配值、表示所述m个虚拟机中的第s个虚拟机的份额的分配值,s为大于等于1且小于等于m的整数,k为大于等于1的整数,m为大于等于1且小于等于n的整数。
根据第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算模块,还用于在所述根据虚拟化集群系统中的虚拟机的资源参数的取值,计算所述虚拟化集群系统中的虚拟机的资源分配值之后,如果所述小于所述则将所述调整为所述以得到调整后的第j个虚拟机的预留资源的分配值如果所述大于所述则将所述调整为所述以得到调整后的第j个虚拟机的预留资源的分配值如果所述大于所述则将所述调整为以得到调整后的第j个虚拟机的资源上限的分配值;如果所述小于所述调整后的第j个虚拟机的预留资源的分配值则将所述调整为所述调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值;如果所述小于所述调整后的第j个虚拟机的预留资源的分配值则将所述调整为所述调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值。
本发明实施例虚拟化集群系统、资源分配方法和管理节点,通过根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值,确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源。由于计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而可以在虚拟机的性能变化比较频繁的情况下,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一所提供的虚拟化集群系统的结构示意图。虚拟化集群系统包括管理节点3和计算节点1,2,应当理解的是:管理节点对用户提供统一的管理功能;计算节点则根据管理节点发送的请求命令,对具体的虚拟机进行管理,以实现实际功能。
管理节点3,用于根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值;确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,与虚拟机相关的资源池包括虚拟机的父资源池和父资源池的父资源池;根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构。
计算节点1,2,用于接收管理节点3发送的计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构;并根据计算节点上映射的资源池的资源分配值和资源池的结构为计算节点上运行的虚拟机分配资源。
需要说明的是,该管理节点可以是虚拟化集群系统中的非虚拟化的单机(即非虚拟化的物理服务器或物理主机,换言之即其上未部署有虚拟机的物理服务器或物理主机),也可以是虚拟化集群系统中的虚拟化的单机(即其上部署有虚拟机VM的物理服务器或物理主机);而计算节点是虚拟化集群系统中的虚拟化的单机(即其上部署有虚拟机的物理服务器或物理主机),例如,如图1所示,计算节点1上部署有VM1和VM3,计算节点2上部署有VM2和VM4。
可见,本实施例提供的虚拟化集群系统,通过根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值,确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源。由于能够使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而可以在虚拟机的性能变化比较频繁的情况下,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
进一步的,在上述实施例的基础上,虚拟化集群系统中的虚拟机的资源分配值包括虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值。
管理节点,具体用于根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值;确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,与虚拟机相关的资源池包括虚拟机的父资源池和父资源池的父资源池;根据虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值以及计算节点上映射的资源池的结构,确定计算节点上映射的资源池的预留资源的分配值、资源池的资源上限的分配值和资源池的份额的分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;向计算节点发送计算节点上映射的资源池的预留资源的分配值、资源池的资源上限的分配值和资源池的份额的分配值,以及计算节点上映射的资源池的结构。
进一步的,在上述实施例的基础上,虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值或者为虚拟机当前的资源使用量。
图2为本发明实施例二所提供的虚拟化集群系统的资源分配方法的流程图。本实施例的方法适用于能够根据VM的负载变化来适应VM的资源需求的情况。该方法由虚拟化集群系统中的管理节点执行,该管理节点可以是虚拟化集群系统中的非虚拟化的单机(即非虚拟化的物理服务器或物理主机,换言之即其上未部署有虚拟机的物理服务器或物理主机),也可以是虚拟化集群系统中的虚拟化的单机(即其上部署有虚拟机的物理服务器或物理主机)。本实施例的方法包括如下步骤:
步骤210、根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值。
步骤220、确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,与虚拟机相关的资源池包括虚拟机的父资源池和父资源池的父资源池。
步骤230、根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系。
由于现有技术是从根资源池开始,根据根资源池下的子资源池的份额或VM的份额计算根资源池下的子资源池或VM的资源分配值,再以根资源池下的子资源池为父资源池,根据父资源池下的子资源池的份额或虚拟机的份额计算父资源池下的子资源池或VM的资源分配值,直到计算出集群中所有VM的资源分配值,然后将计算的VM的资源分配值与根据VM的资源使用率估算的资源需求进行比较,根据比较结果对计算的VM的资源分配值进行调整。例如以根资源池的预留资源为10GHz,资源上限为20GHz,份额为1000,用户在根资源池下创建了两个资源池RP1和RP2,RP2下创建了两个虚拟机VM3和VM4,RP1的预留资源、资源上限和份额的设定值分别为(4GHz,无限大,800),RP2的预留资源、资源上限和份额的设定值分别为(1GHz,无限大和200)。虚拟化集群系统由计算节点1和计算节点2两台计算节点构成,其中VM1(虚拟机1)和VM3(虚拟机3)部署在计算节点1上,VM1的预留资源、资源上限和份额的设定值分别为(2GHz,无限大,1),VM3的预留资源、资源上限和份额的设定值分别为(0GHz,无限大,2),VM2(虚拟机2)和VM4(虚拟机4)部署在计算节点2上,VM2的预留资源、资源上限和份额的设定值分别为(2GHz,无限大,1),VM4的预留资源、资源上限和份额的设定值分别为(0GHz,1.5GHz,1)。由于RP1和RP2的份额的比值为4:1,则会根据4:1将根资源池的预留资源、资源上限和份额分别划分给RP1和RP2,也即分别计算出RP1和RP2的资源分配值,例如计算出RP1和RP2的预留资源、资源上限和份额,例如计算出的RP1的预留资源为8GHz,但是如果计算的RP1的预留资源小于用户为RP1的预留资源的设定值,则会将计算的RP1的预留资源调整为用户为RP1的预留资源的设定值,也即需保证最终确定的RP1的预留资源不能小于用户设定的RP1的预留资源,并且需保证最终确定的RP1的预留资源不能大于用户设定的RP1的上限,然后再将计算出的RP1的预留资源8GHz按照VM1和VM2的份额的比值划分,由于VM1和VM2的份额的比值为1:1,因此计算的VM1的预留资源为4GHz,而根据VM1的资源使用率估算的VM1的资源需求为3GHz,因此会将计算的VM1的预留资源4GHz调整为估算的3GHz,剩下的5GHz就分配给VM2。然而由于估算虚拟机的资源需求代价较大,目前每5分钟才估算一次虚拟机的资源需求,在虚拟机的负载变化频繁的情况下,导致无法及时为虚拟机分配资源,从而影响虚拟机性能,例如在VM1的实际需求由3GHz变为4GHz时,由于还未估算出虚拟机的资源需求已经变更为4GHz,因此仍然为VM1分配3GHz,从而使VM1无法及时获取到足够的资源,影响VM1的性能。
而本实施例中并不需要估算虚拟机的资源需求,通过步骤210至步骤230,确定计算节点上映射的资源池的资源分配值,并在执行步骤230后,执行步骤240,从而实现由计算节点根据计算节点上映射的资源池的资源分配值和资源池的结构为计算节点上运行的虚拟机分配资源。
步骤240、向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和资源池的结构为计算节点上运行的虚拟机分配资源。
具体的,根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值,确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,并向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源。
可见,本实施例提供的虚拟化集群系统的资源分配方法,通过根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值,确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源。由于能够使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而可以在虚拟机的性能变化比较频繁的情况下,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
图3为本发明实施例三所提供的虚拟化集群系统的资源分配方法的流程图,该方法的执行主体可以是图1所示系统中的管理节点3。参照图3,本实施例的方法可以包括:
步骤310、根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值。
其中,虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值或者为虚拟机当前的资源使用量。虚拟化集群系统中的虚拟机的资源分配值包括虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值。
举例来说,根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值可以通过如下方式实现:
根据虚拟化集群系统中的使用父资源池的n个虚拟机中的第j个虚拟机的份额的设定值计算n个虚拟机中的第j个虚拟机的预留资源的分配值n个虚拟机中的第j个虚拟机的资源上限的分配值和n个虚拟机中的第j个虚拟机的份额的分配值其中,n个虚拟机中的每个虚拟机的份额的分配值其中, 表示n个虚拟机中的第j个虚拟机的预留资源的分配值,RParent表示n个虚拟机的父资源池的预留资源的分配值,表示n个虚拟机中的第j个虚拟机的份额的设定值,表示n个虚拟机中的每个虚拟机的份额的设定值之和,表示n个虚拟机中的第j个虚拟机的资源上限的分配值,LParent表示n个虚拟机的父资源池的资源上限的分配值,表示n个虚拟机中的第j个虚拟机的份额的分配值,SParent表示n个虚拟机的父资源池的预留资源的分配值,i、j为大于等于1且小于等于n的整数。
进一步的,为了要防止计算出的每个虚拟机的预留资源的分配值n个虚拟机中的每个虚拟机的资源上限的分配值和n个虚拟机中的每个虚拟机的份额的分配值分别和每个虚拟机的预留资源的设定值每个虚拟机的资源上限的设定值存在较大差距,需要对计算出的每个虚拟机的预留资源的分配值n个虚拟机中的每个虚拟机的资源上限的分配值进行调整,调整方式如下:
如果小于则将调整为以得到调整后的第j个虚拟机的预留资源的分配值如果大于则将调整为以得到调整后的第j个虚拟机的预留资源的分配值如果大于则将调整为以得到调整后的第j个虚拟机的资源上限的分配值;如果小于调整后的第j个虚拟机的预留资源的分配值则将调整为调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值;如果小于调整后的第j个虚拟机的预留资源的分配值则将调整为调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值
步骤320、确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,与虚拟机相关的资源池包括虚拟机的父资源池和父资源池的父资源池。
步骤330、根据计算节点上映射的资源池的结构,确定使用计算节点上映射的第k个资源池的m个虚拟机。
步骤340、根据m个虚拟机的预留资源的分配值、m个虚拟机的资源上限的分配值、m个虚拟机的份额的分配值,确定计算节点上映射的第k个资源池的预留资源的分配值第k个资源池的资源上限的分配值和第k个资源池的份额的分配值
其中, 表示所述m个虚拟机中的第s个虚拟机的预留资源的分配值、表示所述m个虚拟机中的第s个虚拟机的资源上限的分配值、表示所述m个虚拟机中的第s个虚拟机的份额的分配值,s为大于等于1且小于等于m的整数,k为大于等于1的整数,m为大于等于1且小于等于n的整数。
步骤350、向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为计算节点上运行的虚拟机分配资源。
可见,本实施例提供的虚拟化集群系统的资源分配方法,通过根据计算节点上映射的资源池的结构,确定使用计算节点上映射的资源池的虚拟机,根据使用计算节点上映射的资源池的虚拟机和该些虚拟机中的每个虚拟机的资源分配参数的取值,确定计算节点上映射的资源池的资源分配参数的取值,并向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为计算节点上运行的虚拟机分配资源。由于能够使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而可以在虚拟机的性能变化比较频繁的情况下,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
为详细介绍上述实施例提供的虚拟化集群系统的资源分配方法,下面配合图4A~4D介绍虚拟化集群系统的资源分配方法,图4A为本发明实施例四所提供的虚拟化集群系统的资源分配方法的流程图,图4B为本发明实施例四所提供的虚拟化集群系统的结构的示意图,图4C为本发明实施例四所提供的计算节点1的资源池的结构的示意图,图4D为本发明实施例四所提供的计算节点2的资源池的结构的示意图,其中,虚拟化集群系统中包括:部署VM1、VM3的计算节点1和部署VM2和VM4的计算节点2,计算节点1和计算节点2都为5GHz的CPU,用户设定的根资源池的预留资源、资源上限和份额分别为(10,10,1000),在图4B中以RootU(10,10,1000)表示,该根资源池下创建有两个子资源池RP1和RP2,RP1的预留资源的设定值、资源上限的设定值和份额的设定值分别为(4,无限大,1),在图4B中以URP1(4,无限大,1)表示,RP2的预留资源的设定值、资源上限的设定值和份额的设定值分别为(4,无限大,2),在图4B中以URP2(4,无限大,2)表示,在RP1下创建有VM1和VM2,VM1的预留资源的设定值、资源上限的设定值和份额的设定值分别为(0,无限大,1),在图4B中以UVM1(0,无限大,1)表示,VM2的预留资源的设定值、资源上限的设定值和份额的设定值分别为(0,无限大,1)表示,在图4B中以UVM2(0,无限大,1),在RP2下创建有VM3和VM4,VM3的预留资源的设定值、资源上限的设定值和份额的设定值分别为(0,无限大,1)表示,在图4B中以UVM3(0,无限大,1),VM4的预留资源的设定值、资源上限的设定值和份额的设定值分别为(0,无限大,1),在图4B中以UVM4(0,无限大,1)表示,根资源池、RP1、RP2、VM1、VM2、VM3和VM4的关系如图4B所示。参照图4A,本实施例的方法可以包括:
步骤410、根据虚拟化集群系统中的VM1和VM2的份额的设定值,计算VM1和VM2的预留资源的分配值、资源上限的分配值和份额的分配值,根据虚拟化集群系统中的VM3和VM4的份额的设定值,计算VM3和VM4的预留资源的分配值、资源上限的分配值和份额的分配值。
需要说明的是,对于上述实施例三中的步骤310中提到的根据虚拟化集群系统中的使用父资源池的n个虚拟机中的第j个虚拟机的份额的设定值计算n个虚拟机中的第j个虚拟机的预留资源的分配值n个虚拟机中的第j个虚拟机的资源上限的分配值和n个虚拟机中的第j个虚拟机的份额的分配值在本实施例中RP1为VM1和VM2的父资源池,如图4B所示,使用RP1的n个虚拟机即为VM1和VM2两个虚拟机,也即n等于2;以及,RP2为VM3和VM4的父资源池,使用RP2的n个虚拟机即为VM3和VM4两个虚拟机,也即n等于2,其中,这里的n表示使用父资源池的虚拟机的个数。
需要说明的是,本申请中提及的使用父资源池的虚拟机,即表示使用或占用或分享父资源池中的资源的虚拟机。
由于RP1与RP2的份额比1:2,则可以根据RP1与RP2的份额比1:2,计算出RP1的预留资源和资源上限的分配值都为3.3,但因为3.3小于RP1的预留资源的设定值4,则将RP1的预留资源的分配值调整为4,并且由于计算出的RP1的资源上限为3.3小于调整后的预留资源的分配值4,则将计算出的RP1的资源上限调整为4,因此调整后RP1的预留资源的分配值、资源上限的分配值和份额的分配值分别为(4,4,333),确定的RP2的预留资源的分配值、资源上限的分配值和份额的分配值分别为(6,6,667)。如果VM1的预留资源的设定值、资源上限的设定值和份额的设定值分别为(0,无限大,1),VM2的预留资源的设定值、资源上限的设定值和份额的设定值分别为(0,无限大,1),可以根据VM1与VM2的份额比1:1,计算出VM1的预留资源的分配值、资源上限的分配值和份额的分配值分别为(2,2,166.5),在图4B中以DVM1(2,2,166.5)表示,VM2的预留资源的分配值、资源上限的分配值和份额的分配值分别为(2,2,166.5)在图4B中以DVM2(2,2,166.5)表示,同理,根据VM3与VM4的份额比1:1,计算出VM3的预留资源的分配值、资源上限的分配值和份额的分配值分别为(3,3,333.5),在图4B中以DVM3(3,3,333.5)表示,VM4的预留资源的分配值、资源上限的分配值和份额的分配值分别为(3,3,333.5),在图4B中以DVM4(3,3,333.5)表示。
步骤420、确定RP1和RP2为需要分别映射到虚拟化集群系统中计算节点1和计算节点2上的资源池。
RP1、RP2、VM1、VM3和计算节点1的关系如图4C所示,图4C示出了计算节点1的资源池的结构,RP1、RP2、VM2、VM4和计算节点2的关系如图4D所示,图4D示出了计算节点2的资源池的结构。也即计算节点1的资源池的结构。
需要说明的是,在此结合图4C和图4D介绍在上述实施例一至实施例三中提及的确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池所表示的含义,在图4C中,RP1和RP2即为与虚拟机VM1、VM3相关的资源池,在图4D中,RP1和RP2即为与虚拟机VM2、VM4相关的资源池。
步骤430、根据计算节点1上映射的资源池的结构,确定使用计算节点1上映射的RP1的VM1和使用计算节点1上映射的RP2的VM3,根据计算节点2上映射的资源池的结构,确定使用计算节点2上映射的RP1的VM2和使用计算节点1上映射的RP2的VM4。
在此需要说明的是,对于上述实施例三中的步骤330中提到的根据计算节点上映射的资源池的结构,确定使用计算节点上映射的第k个资源池的m个虚拟机的步骤,在本实施例中,参照图4C,使用计算节点1上映射的RP1的虚拟机为VM1,即使用计算节点1上映射的RP1的虚拟机为1个,m的值为1(需要说明的是,m表示使用当前计算节点上映射的资源池的虚拟机的个数);同理,使用计算节点1上映射的RP2的虚拟机为VM3;参照图4D,使用计算节点2上映射的RP1的虚拟机为VM2,使用计算节点2上映射的RP2的虚拟机为VM4。
需要说明的是,本申请中提及的使用计算节点上映射的资源池的虚拟机,即表示使用或占用或分享计算节点上映射的资源池中的资源的虚拟机。
步骤440、根据VM1的资源分配值、VM3的资源分配值和计算节点1的资源池的结构,确定计算节点1上映射的RP1和RP2的资源分配值,根据VM2的资源分配值、VM4的资源分配值和计算节点2的资源池的结构,确定计算节点2上映射的RP1和RP2的资源分配值。
VM1的资源分配值包括VM1的预留资源的分配值、资源上限的分配值和份额的分配值,VM2的资源分配值包括VM2的预留资源的分配值、资源上限的分配值和份额的分配值,参照图4C,由于VM1为使用RP1的虚拟机且部署在计算节点1上,因此,可以根据VM1的预留资源的分配值、资源上限的分配值和份额的分配值(2,2,166.5),确定计算节点1上映射的RP1的预留资源的分配值、资源上限的分配值和份额的分配值分别为(2,2,166.5),可以根据VM3的预留资源的分配值、资源上限的分配值和份额的分配值(3,3,333.5),确定计算节点1上映射的RP2的预留资源的分配值、资源上限的分配值和份额的分配值(3,3,333.5)。在此需要说明的是,对于上述实施例三中提及的同理,计算节点2上映射的RP1的预留资源的分配值、资源上限的分配值和份额的分配值分别为(2,2,166.5)和计算节点2上映射的RP2的预留资源的分配值、资源上限的分配值和份额的分配值(3,3,333.5)。如图4C所示,将计算节点1上映射的RP1的预留资源的分配值、资源上限的分配值和份额的分配值表示为(2,2,166.5),计算节点1上映射的RP2的预留资源的分配值、资源上限的分配值和份额的分配值表示为(3,3,333.5),计算节点2上映射的RP1的预留资源的分配值、资源上限的分配值和份额的分配值表示为(2,2,166.5),计算节点2上映射的RP2的预留资源的分配值、资源上限的分配值和份额的分配值表示为(3,3,333.5)。
步骤450、向计算节点1发送计算节点1上映射的RP1的资源分配值、RP2的资源分配值和计算节点1的资源池的结构,以使计算节点1根据计算节点1上映射的RP1的资源分配值、RP2的资源分配值和计算节点1的资源池的结构为VM1和VM3分配资源;向计算节点2发送计算节点2上映射的RP1的资源分配值、RP2的资源分配值和计算节点2的资源池的结构,以使计算节点2根据计算节点2上映射的RP1的资源分配值、RP2的资源分配值和计算节点2的资源池的结构为VM2和VM4分配资源。
计算节点1根据计算节点1上映射的RP1的资源分配值、RP2的资源分配值和计算节点1的资源池的结构为VM1和VM3分配资源,计算节点2根据计算节点2上映射的RP1的资源分配值、RP2的资源分配值和计算节点2的资源池的结构为VM2和VM4分配资源。例如如果VM1、VM2、VM3和VM4实际的资源需求分别为3GHz、1GHz、4GHz和4GHz,计算节点1可以为VM1分配2GHz,为VM3分配3GHz,计算节点2可以为VM2分配2GHz,为VM4分配3GHz,而如果采用现有技术的方案为VM1、VM2、VM3和VM4分配资源,则计算节点1为VM1分配2GHz,为VM3分配3GHz,计算节点2为VM2分配1GHz,为VM4分配3GHz,而如果还未进行下一次的资源估算,而VM1和VM2的负载变化使VM1的实际资源需求变为1GHz,VM2的实际资源需求变为3GHz,采用现有技术的分配方案时计算节点1仍然为VM1分配2GHz,为VM3分配3GHz,计算节点2为VM2分配1GHz,为VM4分配3GHz。而如果采用本实施例提供的方案时,在VM1和VM2的负载变化使VM1的实际资源需求变为1GHz,VM2的实际资源需求变为3GHz,VM3和VM4的资源需求未发生变化时,计算节点1可以为VM1分配1GHz,为VM3分配4GHz,计算节点2可以为VM2分配2GHz,为VM4分配3GHz,因此采用本实施例提供的方案可以保证在虚拟机的负载变化频繁时,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
可见,本实施例提供的虚拟化集群系统的资源分配方法,通过根据VM1的资源分配值、VM3的资源分配值和计算节点1的资源池的结构,确定计算节点1上映射的RP1和RP2的资源分配值,根据VM2的资源分配值、VM4的资源分配值和计算节点2的资源池的结构,确定计算节点2上映射的RP1和RP2的资源分配值,并向计算节点1发送计算节点1上映射的RP1的资源分配值、RP2的资源分配值和计算节点1的资源池的结构,使计算节点1根据RP1和RP2的资源分配值和计算节点1上的资源池的结构为计算节点1上运行的VM1和VM3分配资源,向计算节点2发送计算节点2上映射的RP1的资源分配值、RP2的资源分配值和计算节点2的资源池的结构,使计算节点2根据计算节点2上映射的RP1和RP2的资源分配值和计算节点2上的资源池的结构为计算节点2上运行的VM2和VM4分配资源。由于能够使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上
映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而使计算节点1和计算节点2及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
需要说明的是,本发明实施例还提供一种虚拟化集群系统中的资源分配方法,该方法与上述实施例提到的虚拟化集群系统中的资源分配方法基本相同,区别在于本实施中根据虚拟化集群系统中的虚拟机当前的资源使用量计算虚拟化集群系统中的虚拟机的资源分配值。其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例六所提供的管理节点500的结构示意图。本实施例的管理节点适用于能够根据VM的负载变化来适应VM的资源需求的情况。该管理节点可以是虚拟化集群系统中的非虚拟化的单机(即非虚拟化的物理服务器或物理主机,换言之即其上未部署有虚拟机的物理服务器或物理主机),也可以是虚拟化集群系统中的虚拟化的单机(即其上部署有虚拟机的物理服务器或物理主机)。参照图5,管理节点500包括如下模块:计算模块510、第一确定模块520、第二确定模块530和发送模块540。
计算模块510用于根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值;
第一确定模块520用于确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,与虚拟机相关的资源池包括虚拟机的父资源池和父资源池的父资源池;
第二确定模块530用于根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;
发送模块540用于向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为计算节点上运行的虚拟机分配资源。
进一步的,虚拟化集群系统中的虚拟机的资源分配值包括虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值;
相应地,第二确定模块530具体用于根据虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值以及计算节点上映射的资源池的结构,确定计算节点上映射的资源池的预留资源的分配值、资源池的资源上限的分配值和资源池的份额的分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系。
进一步的,虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值或者为虚拟机当前的资源使用量。
进一步的,如果虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值,计算模块510具体用于根据虚拟化集群系统中的使用父资源池的n个虚拟机中的第j个虚拟机的份额的设定值计算n个虚拟机中的第j个虚拟机的预留资源的分配值n个虚拟机中的第j个虚拟机的资源上限的分配值和n个虚拟机中的第j个虚拟机的份额的分配值其中, 表示n个虚拟机中的第j个虚拟机的预留资源的分配值,RParent表示n个虚拟机的父资源池的预留资源的分配值,表示n个虚拟机中的第j个虚拟机的份额的设定值,表示n个虚拟机中的每个虚拟机的份额的设定值之和,表示n个虚拟机中的第j个虚拟机的资源上限的分配值,LParent表示n个虚拟机的父资源池的资源上限的分配值,表示n个虚拟机中的第j个虚拟机的份额的分配值,SParent表示n个虚拟机的父资源池的预留资源的分配值,i、j为大于等于1且小于等于n的整数;
相应地,第二确定模块530具体用于根据计算节点上映射的资源池的结构,确定使用计算节点上映射的第k个资源池的m个虚拟机;根据m个虚拟机的预留资源的分配值、m个虚拟机的资源上限的分配值、m个虚拟机的份额的分配值,确定计算节点上映射的第k个资源池的预留资源的分配值第k个资源池的资源上限的分配值和第k个资源池的份额的分配值其中, 表示m个虚拟机中的第s个虚拟机的预留资源的分配值、表示m个虚拟机中的第s个虚拟机的资源上限的分配值、表示m个虚拟机中的第s个虚拟机的份额的分配值,s为大于等于1且小于等于m的整数,k为大于等于1的整数,m为大于等于1且小于等于n的整数。
进一步的,计算模块510还用于在根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值之后,如果小于则将调整为以得到调整后的第j个虚拟机的预留资源的分配值如果大于则将调整为以得到调整后的第j个虚拟机的预留资源的分配值如果大于则将调整为以得到调整后的第j个虚拟机的资源上限的分配值;如果小于调整后的第j个虚拟机的预留资源的分配值则将调整为调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值;如果小于调整后的第j个虚拟机的预留资源的分配值则将调整为调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值。
可见,本实施例提供的管理节点,通过根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值,确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源。由于能够使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而可以在虚拟机的性能变化比较频繁的情况下,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
参阅附图6,图6为本发明实施例七所提供的管理节点600的结构示意图,该管理节点包括至少一个处理器601,例如CPU,至少一个网络接口604,例如物理网卡,或者其他的用户接口603,以及存储器605和至少一个通信总线602。
其中,通信总线602用于实现这些组件之间的连接通信。
网络接口604用于实现该物理计算节点和网络之间的连接通信,比如该网络接口604可以用于连接物理网卡和/或物理交换机等设备。
可选的,用户接口603,可以包括显示器,键盘或者其他点击设备,例如,鼠标,轨迹球(trackball),触感板或者触感显示屏等。
存储器605可能包括高速随机存取记忆体(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,该存储器605还可以包括至少一个位于远离前述处理器601的存储装置。
在一些实施方式中,存储器605存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统6051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块6052,包含各种应用程序,用于实现各种应用业务。
应用模块6052中包括但不限于与虚拟化集群系统的资源分配相关的各种模块,比如计算模块510、第一确定模块520、第二确定模块530和发送模块540等。
具体地,处理器601,用于根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值;确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,与虚拟机相关的资源池包括虚拟机的父资源池和父资源池的父资源池;根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系;向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为计算节点上运行的虚拟机分配资源。
进一步的,虚拟化集群系统中的虚拟机的资源分配值包括虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值;处理器601,具体用于根据虚拟机的预留资源的分配值、虚拟机的资源上限的分配值和虚拟机的份额的分配值以及计算节点上映射的资源池的结构,确定计算节点上映射的资源池的预留资源的分配值、资源池的资源上限的分配值和资源池的份额的分配值,资源池的结构用于表示计算节点上映射的资源池和其子资源池之间的父子关系和其子资源池之间的父子关系和计算节点上映射的资源池所包括的多个资源池之间的兄弟关系。
进一步的,虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值或者为虚拟机当前的资源使用量。
进一步的,如果虚拟化集群系统中的虚拟机的资源参数的取值为用户预先配置的虚拟机的份额的设定值,处理器601具体用于根据虚拟化集群系统中的使用父资源池的n个虚拟机中的第j个虚拟机的份额的设定值计算n个虚拟机中的第j个虚拟机的预留资源的分配值n个虚拟机中的第j个虚拟机的资源上限的分配值和n个虚拟机中的第j个虚拟机的份额的分配值其中, 表示n个虚拟机中的第j个虚拟机的预留资源的分配值,RParent表示n个虚拟机的父资源池的预留资源的分配值,表示n个虚拟机中的第j个虚拟机的份额的设定值,表示n个虚拟机中的每个虚拟机的份额的设定值之和,表示n个虚拟机中的第j个虚拟机的资源上限的分配值,LParent表示n个虚拟机的父资源池的资源上限的分配值,表示n个虚拟机中的第j个虚拟机的份额的分配值,SParent表示n个虚拟机的父资源池的预留资源的分配值,i、j为大于等于1且小于等于n的整数;根据计算节点上映射的资源池的结构,确定使用计算节点上映射的第k个资源池的m个虚拟机;根据m个虚拟机的预留资源的分配值、m个虚拟机的资源上限的分配值、m个虚拟机的份额的分配值,确定计算节点上映射的第k个资源池的预留资源的分配值第k个资源池的资源上限的分配值和第k个资源池的份额的分配值其中, 表示m个虚拟机中的第s个虚拟机的预留资源的分配值、表示m个虚拟机中的第s个虚拟机的资源上限的分配值、表示m个虚拟机中的第s个虚拟机的份额的分配值,s为大于等于1且小于等于m的整数,k为大于等于1的整数,m为大于等于1且小于等于n的整数。
进一步的,处理器601还用于在根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值之后,如果小于则将调整为以得到调整后的第j个虚拟机的预留资源的分配值如果大于则将调整为以得到调整后的第j个虚拟机的预留资源的分配值如果大于则将调整为以得到调整后的第j个虚拟机的资源上限的分配值;如果小于调整后的第j个虚拟机的预留资源的分配值则将调整为调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值;如果小于调整后的第j个虚拟机的预留资源的分配值则将调整为调整后的第j个虚拟机的预留资源的分配值以得到调整后的第j个虚拟机的资源上限的分配值。
本实施例提供的管理节点,通过根据虚拟化集群系统中的虚拟机的资源参数的取值,计算虚拟化集群系统中的虚拟机的资源分配值,确定虚拟化集群系统中与虚拟机相关的资源池为需要映射到虚拟化集群系统中的其上运行有虚拟机的计算节点上的资源池,根据虚拟机的资源分配值和计算节点上映射的资源池的结构,确定计算节点上映射的资源池的资源分配值,向计算节点发送计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构,以使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源。由于能够使计算节点根据计算节点上映射的资源池的资源分配值和计算节点上映射的资源池的结构为虚拟机分配资源,不需要每隔较长一段时间来估算虚拟机的资源需求就可以为虚拟机分配资源,从而可以在虚拟机的性能变化比较频繁的情况下,及时调整为虚拟机分配的资源来满足虚拟机的资源需求,保证虚拟机的业务性能。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。