一种虚拟机资源的扩缩容方法、装置及服务器与流程

文档序号:16855133发布日期:2019-02-12 23:11阅读:689来源:国知局
一种虚拟机资源的扩缩容方法、装置及服务器与流程

本申请涉及通信技术领域,具体涉及一种虚拟机资源的扩缩容方法、装置及服务器。



背景技术:

传统的电信系统通过各种专用的硬件设备组成,不同的应用采用不同的硬件设备。随着网络规模的增长,系统越来越复杂,带来了诸多的挑战,包括新增业务的开发上线、系统的运维、资源利用率等。为了应对这些挑战,通过网络功能虚拟化(networkfunctionvirtualization,nfv)技术将电信网络中使用的各个网元转变成为独立的应用,可以灵活部署在基于标准的服务器、存储以及交换机等其他设备构建的统一基础设施平台上,并通过虚拟化技术,对基础设施硬件设备资源池化及虚拟化,对上层应用提供虚拟资源,实现应用和硬件解耦,使得每一个应用能够快速增加虚拟资源以实现快速扩展系统容量的目的,或者能够快速减少虚拟资源以实现收缩系统容量的目的,大大提升网络的弹性。

当前在电信云中,虚拟网络功能(virtualnetworkfunction,vnf)在扩展其规格能力时,一般有两种扩缩容方式:scaleout的水平扩缩容方式以及scaleup的垂直扩缩容方式。scaleout扩缩容方式即通过增量部署业务虚拟机来提升vnf的规格能力,或减少部署业务虚拟机来降低vnf的规格能力,适用于采用分布式架构的vnf;scaleup扩缩容方式是采用扩容vnf业务虚拟机的规格的方式来提升vnf的规格能力,或缩容vnf业务虚拟机的规格的方式来降低vnf的规格能力,适用于采用非分布式架构的vnf。

但是,当前虚拟机的垂直扩缩容的方式在扩缩容过程中,因涉及到对当前虚拟机的资源规格进行修改,需要复位生效,必然会影响当前正在运行的业务。



技术实现要素:

本申请提供一种虚拟机资源的扩缩容方法、装置及服务器,用于实现业务过程中也能进行vnf的虚拟机资源的扩缩容。

本申请第一方面提供一种虚拟机资源的扩缩容方法,包括:

获取vnf的扩缩容任务,所述扩缩容任务包括扩缩容虚拟机的虚拟机标识及所述扩缩容虚拟机的扩缩容变化信息,所述扩缩容虚拟机至少为两个;

根据所述扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

将所述扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机;

根据所述扩缩容变化信息,依次对所述至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

在采用分布式架构的vnf的nfv架构系统中,nfv架构系统包括一个nfv管理和编排系统(nfvmanagementandorchestration,nfvmano)、nfv基础设施层(nfvinfrastructure,nfvi)、多个vnf、多个网元管理(elementmanagement,em)、网络服务、vnf和基础设施描述(networkservice,vnfandinfrastructuredescription)及业务支持管理系统(operation-supportsystem/businesssupportsystem,oss/bss)。其中,nfvmano包括nfv编排器(nfvorchestrator,nfvo)、一个或多个vnf管理器(vnfmanager,vnfm)和虚拟化基础设施管理器(virtualizedinfrastructuremanager,vim)。nfvi包括计算硬件、存储硬件、网络硬件、虚拟化层(virtualizationlayer)、虚拟计算、虚拟存储器和虚拟网络。硬件资源和虚拟化层的虚拟化资源,通过虚拟机形式提供给vnf,当vnf因业务的需要变化时,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。在nfvmano的vnfm界面生成vnf的扩缩容任务之后,将扩缩容任务发送到虚拟机资源的扩缩容装置,虚拟机资源的扩缩容装置获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容变化信息表示的是调整虚拟机的规格的前后的规格信息的变化,而且对于本申请来说扩缩容虚拟机至少为两个才有意义,由于扩缩容虚拟机的虚拟机标识已知,那么根据扩缩容任务可以确定扩缩容虚拟机及对应的扩缩容变化信息,在已知了扩缩容虚拟机之后,将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机,由于扩缩容虚拟机已经划分为了至少两个平面,那么,可以先对一个平面中的扩缩容虚拟机进行扩缩容处理,然后再对另外一个平面的扩缩容虚拟机进行扩缩容处理,从而依次完成对所有平面的扩缩容虚拟机的扩缩容处理,而每一个扩缩容虚拟机的扩缩容变化信息都是已知了,那么对每一个平面的扩缩容虚拟机的扩缩容处理自然能够实现。本申请的扩缩容方式是依次对每一个平面的扩缩容虚拟机进行扩缩容处理,那么在一个平面的扩缩容虚拟机进行扩缩容处理过程时,该平面的扩缩容虚拟不能进行业务,而其他平面的扩缩容虚拟机是能够进行业务的,而现有技术中,所有扩缩容虚拟机是同时进行扩缩容处理的,会导致业务无法进行,因此,本申请可以实现业务过程中也能进行vnf的虚拟机资源的扩缩容。。

结合本申请第一方面,本申请第一方面第一实施方式中,所述将所述扩缩容虚拟机划分为至少两个平面,包括:

获取所述扩缩容虚拟机的进程类型,所述进程类型包括主备进程和负荷分担进程;

根据所述进程类型将所述扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机。

在nfv架构系统中虚拟机的进程类型主要是包括主备进程和负荷分担进程两种,其中,主备进程的虚拟机原理为:一个虚拟机作为主虚拟机,一个或多个虚拟机作为备虚拟机,当主虚拟机正常工作时,由主虚拟机承担业务;当主虚拟机掉电时,由备虚拟机承担业务。负荷分担进程的虚拟机原理为:多个虚拟机分别承担部分业务。那么划分扩缩容虚拟机的时候,需要获取扩缩容虚拟机的进程类型,根据进程类型将扩缩容虚拟机划分为至少两个平面。将进程类型作为划分平面的依据,可以很好的保证业务不会中断。

结合本申请第一方面第一实施方式,本申请第一方面第二实施方式中,所述进程类型为主备进程,

所述根据所述进程类型将所述扩缩容虚拟机划分为至少两个平面,包括:

根据所述进程类型,确定所述扩缩容虚拟机的主备关系;

根据所述主备关系将所述扩缩容虚拟机划分为两个平面。

以扩缩容虚拟机的进程类型是主备进程为例,对划分平面进行说明,首先,确定扩缩容虚拟机的主备关系,例如,4个扩缩容虚拟机,1号和2号是对应的,1号是主虚拟机,2号是备虚拟机,3号和4号是对应的,3号是主虚拟机,4号是备虚拟机,可以将1号和3号的扩缩容虚拟机划分到1平面,将2号和4号扩缩容虚拟机划分到2平面。并且不限定是两个平面,也可以是2的倍数的平面,也可以是将1号划分到1平面,将2号划分到2平面,将3号划分到3平面,将4号划分到4平面。由于主备关系已经确定,那么2的倍数的平面所能实现的效果与2个平面的效果是一致的。具体的说明了扩缩容虚拟机为主备进程时,对扩缩容虚拟机划分平面的方案。

结合本申请第一方面第一实施方式,本申请第一方面第三实施方式中,所述进程类型为负荷分担进程,

所述根据所述进程类型将所述扩缩容虚拟机划分为至少两个平面,包括:

根据所述进程类型,获取所述扩缩容虚拟机的业务类型,所述业务类型至少为一个;

根据所述业务类型确定同一业务类型的扩缩容虚拟机;

根据均分原则将所述同一业务类型的扩缩容虚拟机划分为至少两个平面。

以扩缩容虚拟机的进程类型是负荷分担进程为例,对划分平面进行说明,首先,确定扩缩容虚拟机的业务类型,根据业务类型确定同一业务类型的扩缩容虚拟机,例如a、b、c、d、e、f扩缩容虚拟机的业务类型相同,根据均分原则将扩缩容虚拟机划分为两个平面时,可以是a、b、c在一个平面,d、e、f在另外一个平面;也可以是a、b、d在一个平面,c、e、f在另外一个平面,具体的分配可以变化,但是要求两个平面的扩缩容虚拟机的数量相同;如果是三个平面时,可以是a、b在一个平面,c、d在一个平面,e、f在一个平面。如果扩缩容虚拟机的数量无法均分到每一个平面的情况,需要尽量保持各平面的扩缩容虚拟机的数量相同。具体的说明了扩缩容虚拟机为负荷分担进程时,对扩缩容虚拟机划分平面的方案。

结合本申请第一方面,本申请第一方面第四实施方式中,所述根据所述扩缩容变化信息,依次对所述至少两个平面中每一平面的扩缩容虚拟机进行扩缩容,包括:

选择所述至少两个平面中的一个平面作为第一平面;

根据所述扩缩容变化信息,对所述第一平面的扩缩容虚拟机进行扩缩容处理;

当所述第一平面的扩缩容虚拟机的扩缩容完成后,根据所述扩缩容变化信息,对所述至少两个平面中第二平面的扩缩容虚拟机进行扩缩容处理,所述第二平面为所述至少两个平面中不同于所述第一平面的一个平面。

在划分出了至少两个平面之后,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容的过程具体为:先选择至少两个平面中的一个平面作为第一平面,第一平面的选择可以是随机的,也可以是预先设置的,或者用户选择的。选择了第一平面之后,根据扩缩容变化信息,对第一平面的扩缩容虚拟机进行扩缩容处理,扩缩容处理的过程为:将第一平面的扩缩容虚拟机的进程驱赶到其他的平面,然后下电第一平面的扩缩容虚拟机,按照扩缩容变化信息修改第一平面的扩缩容虚拟机的规格,再将修改后的扩缩容虚拟机上电,从而完成第一平面中扩缩容虚拟机的扩缩容处理。第一平面的扩缩容虚拟机的扩缩容完成后,按照同样的方式进行第二平面的扩缩容虚拟机的扩缩容处理,依次进行完成所有平面的扩缩容虚拟机的扩缩容处理。

结合本申请第一方面、第一方面第一实施方式、第一方面第二实施方式、第一方面第三实施方式或第一方面第四实施方式中,本申请第一方面第五实施方式中,所述获取vnf的扩缩容任务之前,还包括:

获取vnf的扩缩容描述文件,所述扩缩容描述文件包含虚拟机变化信息,所述虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,所述虚拟机规格变化信息用于描述虚拟机规格的前后变化;

解析所述扩缩容描述文件得到所述扩缩容虚拟机类型及所述虚拟机规格变化信息;

根据所述扩缩容虚拟机类型确定扩缩容虚拟机,所述扩缩容虚拟机至少为两个;

根据所述虚拟机规格变化信息确定所述扩缩容虚拟机对应的扩缩容变化信息;

根据所述扩缩容虚拟机及所述扩缩容虚拟机对应的扩缩容变化信息,得到所述vnf的扩缩容任务,所述扩缩容任务包括扩缩容虚拟机的虚拟机标识及所述扩缩容虚拟机的扩缩容变化信息。

扩缩容任务的形成的过程为:用户在mano界面的上传扩缩容的扩缩容描述文件,获取vnf的扩缩容描述文件,扩缩容描述文件包含虚拟机变化信息,虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,虚拟机规格变化信息用于描述虚拟机规格的前后变化,解析扩缩容描述文件得到扩缩容虚拟机类型及虚拟机规格变化信息,根据扩缩容虚拟机类型确定扩缩容虚拟机,根据虚拟机规格变化信息确定扩缩容虚拟机对应的扩缩容变化信息,根据扩缩容虚拟机及扩缩容虚拟机对应的扩缩容变化信息,得到vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息。

本申请第二方面提供一种虚拟机资源的扩缩容装置,包括:

获取模块,用于获取vnf的扩缩容任务,所述扩缩容任务包括扩缩容虚拟机的虚拟机标识及所述扩缩容虚拟机的扩缩容变化信息,所述扩缩容虚拟机至少为两个;

处理模块,用于根据所述扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

所述处理模块,还用于将所述扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机;

所述处理模块,还用于根据所述扩缩容变化信息,依次对所述至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

在采用分布式架构的vnf的nfv架构系统中,nfv架构系统包括一个nfvmano、nfvi、多个vnf、多个em、networkservice,vnfandinfrastructuredescription及oss/bss。其中,nfvmano包括nfvo、一个或多个vnfm和vim。nfvi包括计算硬件、存储硬件、网络硬件、虚拟化层、虚拟计算、虚拟存储器和虚拟网络。硬件资源和虚拟化层的虚拟化资源,通过虚拟机形式提供给vnf,当vnf因业务的需要变化时,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。在nfvmano的vnfm界面生成vnf的扩缩容任务之后,将扩缩容任务发送到虚拟机资源的扩缩容装置,获取模块获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容变化信息表示的是调整虚拟机的规格的前后的规格信息的变化,而且对于本申请来说扩缩容虚拟机至少为两个才有意义,由于扩缩容虚拟机的虚拟机标识已知,那么处理模块根据扩缩容任务可以确定扩缩容虚拟机及对应的扩缩容变化信息,在已知了扩缩容虚拟机之后,将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机,由于扩缩容虚拟机已经划分为了至少两个平面,那么,处理模块可以先对一个平面中的扩缩容虚拟机进行扩缩容处理,然后再对另外一个平面的扩缩容虚拟机进行扩缩容处理,从而依次完成对所有平面的扩缩容虚拟机的扩缩容处理,而每一个扩缩容虚拟机的扩缩容变化信息都是已知了,那么对每一个平面的扩缩容虚拟机的扩缩容处理自然能够实现。本申请的扩缩容方式是依次对每一个平面的扩缩容虚拟机进行扩缩容处理,那么在一个平面的扩缩容虚拟机进行扩缩容处理过程时,该平面的扩缩容虚拟不能进行业务,而其他平面的扩缩容虚拟机是能够进行业务的,而现有技术中,所有扩缩容虚拟机是同时进行扩缩容处理的,会导致业务无法进行,因此,本申请可以实现业务过程中也能进行vnf的虚拟机资源的扩缩容。

结合本申请第二方面,本申请第二方面第一实施方式中,

所述获取模块,还用于获取所述扩缩容虚拟机的进程类型,所述进程类型包括主备进程和负荷分担进程;

所述处理模块,还用于根据所述进程类型将所述扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机。

在nfv架构系统中虚拟机的进程类型主要是包括主备进程和负荷分担进程两种,其中,主备进程的虚拟机原理为:一个虚拟机作为主虚拟机,一个或多个虚拟机作为备虚拟机,当主虚拟机正常工作时,由主虚拟机承担业务;当主虚拟机掉电时,由备虚拟机承担业务。负荷分担进程的虚拟机原理为:多个虚拟机分别承担部分业务。那么划分扩缩容虚拟机的时候,获取模块需要获取扩缩容虚拟机的进程类型,处理模块根据进程类型将扩缩容虚拟机划分为至少两个平面。将进程类型作为划分平面的依据,可以很好的保证业务不会中断。

结合本申请第二方面第一实施方式,本申请第二方面第二实施方式中,所述进程类型为主备进程,

所述处理模块,还用于根据所述进程类型,确定所述扩缩容虚拟机的主备关系;

所述处理模块,还用于根据所述主备关系将所述扩缩容虚拟机划分为两个平面。

以扩缩容虚拟机的进程类型是主备进程为例,对划分平面进行说明,首先,处理模块确定扩缩容虚拟机的主备关系,例如,4个扩缩容虚拟机,1号和2号是对应的,1号是主虚拟机,2号是备虚拟机,3号和4号是对应的,3号是主虚拟机,4号是备虚拟机,处理模块可以将1号和3号的扩缩容虚拟机划分到1平面,将2号和4号扩缩容虚拟机划分到2平面。并且不限定是两个平面,也可以是2的倍数的平面,处理模块也可以是将1号划分到1平面,将2号划分到2平面,将3号划分到3平面,将4号划分到4平面。由于主备关系已经确定,那么2的倍数的平面所能实现的效果与2个平面的效果是一致的。具体的说明了扩缩容虚拟机为主备进程时,对扩缩容虚拟机划分平面的方案。

结合本申请第二方面第一实施方式,本申请第二方面第三实施方式中,所述进程类型为负荷分担进程,

所述获取模块,还用于根据所述进程类型,获取所述扩缩容虚拟机的业务类型,所述业务类型至少为一个;

所述处理模块,还用于根据所述业务类型确定同一业务类型的扩缩容虚拟机;

所述处理模块,还用于根据均分原则将所述同一业务类型的扩缩容虚拟机划分为至少两个平面。

以扩缩容虚拟机的进程类型是负荷分担进程为例,对划分平面进行说明,首先,获取模块获取扩缩容虚拟机的业务类型,处理模块根据业务类型确定同一业务类型的扩缩容虚拟机,例如a、b、c、d、e、f扩缩容虚拟机的业务类型相同,处理模块根据均分原则将扩缩容虚拟机划分为两个平面时,可以是a、b、c在一个平面,d、e、f在另外一个平面;也可以是a、b、d在一个平面,c、e、f在另外一个平面,具体的分配可以变化,但是要求两个平面的扩缩容虚拟机的数量相同;如果是三个平面时,可以是a、b在一个平面,c、d在一个平面,e、f在一个平面。如果扩缩容虚拟机的数量无法均分到每一个平面的情况,需要尽量保持各平面的扩缩容虚拟机的数量相同。具体的说明了扩缩容虚拟机为负荷分担进程时,对扩缩容虚拟机划分平面的方案。

结合本申请第二方面、第二方面第一实施方式、第二方面第二实施方式或第二方面第三实施方式,本申请第二方面第四实施方式中,

所述处理模块,还用于选择所述至少两个平面中的一个平面作为第一平面;

所述处理模块,还用于根据所述扩缩容变化信息,对所述第一平面的扩缩容虚拟机进行扩缩容处理;

所述处理模块,还用于当所述第一平面的扩缩容虚拟机的扩缩容完成后,根据所述扩缩容变化信息,对所述至少两个平面中第二平面的扩缩容虚拟机进行扩缩容处理,所述第二平面为所述至少两个平面中不同于所述第一平面的一个平面。

在划分出了至少两个平面之后,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容的过程具体为:处理模块先选择至少两个平面中的一个平面作为第一平面,第一平面的选择可以是随机的,也可以是预先设置的,或者用户选择的。处理模块选择了第一平面之后,根据扩缩容变化信息,对第一平面的扩缩容虚拟机进行扩缩容处理,扩缩容处理的过程为:将第一平面的扩缩容虚拟机的进程驱赶到其他的平面,然后下电第一平面的扩缩容虚拟机,按照扩缩容变化信息修改第一平面的扩缩容虚拟机的规格,再将修改后的扩缩容虚拟机上电,从而完成第一平面中扩缩容虚拟机的扩缩容处理。第一平面的扩缩容虚拟机的扩缩容完成后,处理模块按照同样的方式进行第二平面的扩缩容虚拟机的扩缩容处理,依次进行完成所有平面的扩缩容虚拟机的扩缩容处理。

结合本申请第二方面、第二方面第一实施方式、第二方面第二实施方式、第二方面第三实施方式或第二方面第四实施方式中,本申请第二方面第五实施方式中,

所述获取模块,还用于获取vnf的扩缩容描述文件,所述扩缩容描述文件包含虚拟机变化信息,所述虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,所述虚拟机规格变化信息用于描述虚拟机规格的前后变化;

所述处理模块,还用于解析所述扩缩容描述文件得到所述扩缩容虚拟机类型及所述虚拟机规格变化信息;

所述处理模块,还用于根据所述扩缩容虚拟机类型确定扩缩容虚拟机,所述扩缩容虚拟机至少为两个;

所述处理模块,还用于根据所述虚拟机规格变化信息确定所述扩缩容虚拟机对应的扩缩容变化信息;

所述处理模块,还用于根据所述扩缩容虚拟机及所述扩缩容虚拟机对应的扩缩容变化信息,得到所述vnf的扩缩容任务,所述扩缩容任务包括扩缩容虚拟机的虚拟机标识及所述扩缩容虚拟机的扩缩容变化信息。

扩缩容任务的形成的过程为:用户在mano界面的上传扩缩容的扩缩容描述文件,获取模块获取vnf的扩缩容描述文件,扩缩容描述文件包含虚拟机变化信息,虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,虚拟机规格变化信息用于描述虚拟机规格的前后变化,处理模块解析扩缩容描述文件得到扩缩容虚拟机类型及虚拟机规格变化信息,根据扩缩容虚拟机类型确定扩缩容虚拟机,处理模块根据虚拟机规格变化信息确定扩缩容虚拟机对应的扩缩容变化信息,处理模块根据扩缩容虚拟机及扩缩容虚拟机对应的扩缩容变化信息,得到vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息。

本申请第三方面提供一种服务器,包括:

处理器、收发器及存储器,其中,所述存储器可以用于存储所述处理器执行的代码;

所述处理器、所述收发器及所述存储器通过总线系统连接;

所述处理器,用于获取vnf的扩缩容任务,所述扩缩容任务包括扩缩容虚拟机的虚拟机标识及所述扩缩容虚拟机的扩缩容变化信息,所述扩缩容虚拟机至少为两个;

所述处理器,还用于根据所述扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

所述处理器,还用于将所述扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机;

所述处理器,还用于根据所述扩缩容变化信息,依次对所述至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

在采用分布式架构的vnf的nfv架构系统中,nfv架构系统包括一个nfvmano、nfvi、多个vnf、多个em、networkservice,vnfandinfrastructuredescription及oss/bss。其中,nfvmano包括nfvo、一个或多个vnfm和vim。nfvi包括计算硬件、存储硬件、网络硬件、虚拟化层、虚拟计算、虚拟存储器和虚拟网络。硬件资源和虚拟化层的虚拟化资源,通过虚拟机形式提供给vnf,当vnf因业务的需要变化时,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。在nfvmano的vnfm界面生成vnf的扩缩容任务之后,将扩缩容任务发送到虚拟机资源的扩缩容装置,处理器获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容变化信息表示的是调整虚拟机的规格的前后的规格信息的变化,而且对于本申请来说扩缩容虚拟机至少为两个才有意义,由于扩缩容虚拟机的虚拟机标识已知,那么处理器根据扩缩容任务可以确定扩缩容虚拟机及对应的扩缩容变化信息,在已知了扩缩容虚拟机之后,将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机,由于扩缩容虚拟机已经划分为了至少两个平面,那么,处理器可以先对一个平面中的扩缩容虚拟机进行扩缩容处理,然后再对另外一个平面的扩缩容虚拟机进行扩缩容处理,从而依次完成对所有平面的扩缩容虚拟机的扩缩容处理,而每一个扩缩容虚拟机的扩缩容变化信息都是已知了,那么对每一个平面的扩缩容虚拟机的扩缩容处理自然能够实现。本申请的扩缩容方式是依次对每一个平面的扩缩容虚拟机进行扩缩容处理,那么在一个平面的扩缩容虚拟机进行扩缩容处理过程时,该平面的扩缩容虚拟不能进行业务,而其他平面的扩缩容虚拟机是能够进行业务的,而现有技术中,所有扩缩容虚拟机是同时进行扩缩容处理的,会导致业务无法进行,因此,可以实现业务过程中也能进行vnf的虚拟机资源的扩缩容。

本申请第四方面一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面各实施方式中所述的虚拟机资源的扩缩容方法。

本申请第五方面一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面各实施方式中所述的虚拟机资源的扩缩容方法。

附图说明

图1为本申请提供的nfv架构系统的示意图;

图2为本申请提供的服务器的一个实施例的结构示意图;

图3为本申请提供的虚拟机资源的扩缩容方法的一个实施例的流程示意图;

图4为本申请提供的虚拟机资源的扩缩容方法的另一个实施例的流程示意图;

图5为本申请提供的虚拟机资源的扩缩容方法的又一个实施例的流程示意图;

图6为本申请提供的虚拟机资源的扩缩容装置的一个实施例的结构示意图。

具体实施方式

本申请提供一种虚拟机资源的扩缩容方法、装置及服务器,用于可以实现业务过程中也能进行vnf的虚拟机资源的扩缩容。

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

为了利用it业界的虚拟化技术及云计算技术,在2012年10月22日召开的“sdnandopenflowworldcongress”会议上,全球主要的13个电信运营商联合发布了nfv白皮书,并宣布在欧洲电信标准化协会(europeantelecommunicationsstandardsinstitute,etsi)成立nfvisg,制定nfv的需求及技术框架,推动nfv的发展。

nfv技术可以简单地理解为将电信网络中使用的各个网元的功能从目前的专用硬件平台迁移至通用的商用货架产品(commercialoff-the-shelf,cots)服务器上。通过nfv技术将电信网络中使用的各个网元转变成为独立的应用,可以灵活部署在基于标准的服务器、存储以及交换机等其他设备构建的统一基础设施平台上,并通过虚拟化技术,对基础设施硬件设备资源池化及虚拟化,对上层应用提供虚拟资源,实现应用、硬件解耦,使得每一个应用能够快速增加虚拟资源以实现快速扩展系统容量的目的,或者能够快速减少虚拟资源以实现收缩系统容量的目的,大大提升网络的弹性。采用通用的cots服务器组成共享的资源池,新开发的业务,不需要单独部署硬件设备,大大缩短新业务上线时间。

nfv技术的基础包含云计算技术和虚拟化技术。通用的cots计算/存储/网络等硬件设备通过虚拟化技术可以分解为多种虚拟资源,以供上层各种应用使用。通过虚拟化技术,实现应用与硬件之间的解耦,使得虚拟资源供给速度大大增加;通过云计算技术,可以实现应用的弹性伸缩,实现虚拟资源与业务负荷相匹配,不仅提升了虚拟资源的利用效率,而且改善了系统的响应速率。

图1是nfv架构系统示意图,nfv架构系统100可以在各种网络中使用,例如在一个数据中心网络、运营商网络或局域网来实现。nfv架构系统100包括一个nfvmano101、nfvi130、多个vnf108、多个em122、网络服务、vnf和基础设施描述126,以及oss/bss124。其中,nfvmano101包括nfvo102,一个或多个vnfm104和vim106。nfvi130包括计算硬件112、存储硬件114、网络硬件116、虚拟化层、虚拟计算110、虚拟存储118和虚拟网络120。网络服务、vnf和基础设施描述126和oss/bss124在etsigsnfv002v1.1.1标准中有进一步的讨论。

nfvmano101用于执行对vnf108和nfvi130的监视和管理。nfvo102可以实现在nfvi130上的网络服务(如l2和l3vpn服务),也可以执行来自一个或多个vnfm104的资源相关请求,发送配置信息到vnfm104,并收集vnf108的状态信息。另外,nfvo102可以与vim106通信,以实现资源的分配和/或预留以及交换虚拟化硬件资源的配置和状态信息。所述vnfm104可以管理一个或多个vnf108。vnfm104可以执行各种管理功能,如实例化、更新、查询、缩放和/或终止vnf108等。vim106可以执行资源管理的功能,例如管理基础设施资源的分配(例如增加资源到虚拟容器)和操作功能(如收集nfvi故障信息)。vnfm104和vim106可以相互通信进行资源分配和交换虚拟化硬件资源的配置和状态信息。

nfvi130包括硬件资源、软件资源或两者的组合来完成虚拟化环境的部署。换句话说,硬件资源和虚拟化层用于提供虚拟化的资源,例如作为虚拟机和其它形式的虚拟容器,用于vnf108。硬件资源包括计算硬件112、存储硬件114和网络硬件116。计算硬件112可以是市场上现成的硬件和/或用户定制的硬件,用来提供处理和计算资源。存储硬件114可以是网络内提供的存储容量或驻留在存储硬件114本身的存储容量(位于服务器内的本地存储器)。在一个实现方案中,计算硬件112和存储硬件114的资源可以被集中在一起。网络硬件116可以是交换机、路由器和/或配置成具有交换功能的任何其他网络设备。网络硬件116可以横跨多个域,并且可以包括多个由一个或一个以上传输网络互连的网络。

nfvi130里面的虚拟化层可以从物理层抽象硬件资源和解耦vnf108,以便向vnf108提供虚拟化资源。虚拟资源层包括虚拟计算110,虚拟存储器118和虚拟网络120。虚拟计算110和虚拟存储118可以以虚拟机、和/或其他虚拟容器的形式提供给vnf108。例如,一个或一个以上的vnf108可以部署在一个虚拟机(virtualmachine)上。虚拟化层抽象网络硬件116从而形成虚拟网络120,虚拟网络120可以包括虚拟交换机(virtualswitch),所述虚拟交换机用来提供虚拟机和其他虚拟机之间的连接。此外,网络硬件116中的传输网络,可以采用集中式控制平面和一个单独的转发平面(如软件定义网络,sdn)虚拟化。

如图1所示,vnfm104可以与vnf108和em122交互来对vnf的生命周期进行管理以及交换配置和状态信息。vnf108可以被配置为通过一个物理网络设备执行的至少一个网络功能的虚拟化。例如,在一个实现方案中,vnf108可以经过配置以提供ims网络中的不同网元具备的功能,如p-scscf、s-cscf或hss的网络功能等。em122经过配置以对一个或一个以上的vnf108进行管理。

如图1所示,nfv系统架构中,采用分布式架构的vnf,对于虚拟计算110、虚拟存储器118和虚拟网络120的虚拟化资源,通过虚拟机形式提供给vnf108,当vnf108因业务的需要,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。现有的方式是采用扩容vnf业务虚拟机的规格的方式来提升vnf的规格能力,或缩容vnf业务虚拟机的规格的方式来降低vnf的规格能力,这样参与扩缩容的虚拟机都需要进行扩缩容处理,在扩缩容处理的过程中需要先下电虚拟机,扩缩容之后再上电,这样正在进行的业务就必须中断了,影响了业务的进行。

为了解决上述的问题,下面实施例先对本申请的虚拟机资源的扩缩容装置所对应的实体装置进行介绍,实体装置以服务器为例,请参阅2所示,本申请实施例提供了一种服务器,包括:

处理器201、收发器202及存储器203,其中,存储器203可以用于存储处理器201执行的代码;

处理器201、收发器202及存储器203通过总线系统连接;

处理器201,用于获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容虚拟机至少为两个;

处理器201,还用于根据扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

处理器201,还用于将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机;

处理器201,还用于根据扩缩容变化信息,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

本申请实施例中,服务器应用在采用分布式架构的vnf的nfv架构系统中,nfv架构系统包括一个nfvmano、nfvi、多个vnf、多个em、networkservice,vnfandinfrastructuredescription及oss/bss。其中,nfvmano包括nfvo、一个或多个vnfm和vim。nfvi包括计算硬件、存储硬件、网络硬件、虚拟化资源层。虚拟资源层包括虚拟计算、虚拟存储器和虚拟网络的虚拟化资源,通过虚拟机形式提供给vnf,当vnf因业务的需要变化时,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。在nfvmano的vnfm界面生成vnf的扩缩容任务之后,将扩缩容任务发送到虚拟机资源的扩缩容装置,处理器201获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容变化信息表示的是调整虚拟机的规格的前后的规格信息的变化,而且对于本实施例来说扩缩容虚拟机至少为两个才有意义,由于扩缩容虚拟机的虚拟机标识已知,那么处理器201根据扩缩容任务可以确定扩缩容虚拟机及对应的扩缩容变化信息,在已知了扩缩容虚拟机之后,将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机,由于扩缩容虚拟机已经划分为了至少两个平面,那么,处理器201可以先对一个平面中的扩缩容虚拟机进行扩缩容处理,然后再对另外一个平面的扩缩容虚拟机进行扩缩容处理,从而依次完成对所有平面的扩缩容虚拟机的扩缩容处理,而每一个扩缩容虚拟机的扩缩容变化信息都是已知了,那么对每一个平面的扩缩容虚拟机的扩缩容处理自然能够实现。本实施例的扩缩容方式是依次对每一个平面的扩缩容虚拟机进行扩缩容处理,那么在一个平面的扩缩容虚拟机进行扩缩容处理过程时,该平面的扩缩容虚拟不能进行业务,而其他平面的扩缩容虚拟机是能够进行业务的,而现有技术中,所有扩缩容虚拟机是同时进行扩缩容处理的,会导致业务无法进行,因此,可以实现业务过程中也能进行vnf的虚拟机资源的扩缩容。

请参阅图3,本申请提供了一种虚拟机资源的扩缩容方法,包括:

301、获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息;

本实施例中,在图1所示的在采用分布式架构的vnf的nfv架构系统中,nfv架构系统100包括一个nfvmano101、nfvi130、多个vnf108、多个em122、网络服务、vnf和基础设施描述126。其中,nfvmano101包括nfvo102,一个或多个vnfm104和vim106。nfvi130包括计算硬件112、存储硬件114、网络硬件116、虚拟化资源层。虚拟资源层包括虚拟计算110、虚拟存储118和虚拟网络120,通过虚拟机形式提供给vnf。当vnf因业务的需要变化时,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。在nfvmano的vnfm界面生成vnf的扩缩容任务之后,将扩缩容任务发送到虚拟机资源的扩缩容装置,虚拟机资源的扩缩容装置获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容变化信息表示的是调整虚拟机的规格的前后的规格信息的变化,而且对于本实施例来说由于是进行扩缩容虚拟机的划分,那么扩缩容虚拟机的数量至少为两个才有意义。

302、根据扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

本实施例中,由于扩缩容虚拟机中包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信,那么解析的扩缩容任务可以的到虚拟机标识,那么根据虚拟机标识可以确定扩缩容虚拟机,以及每个扩缩容虚拟机对应的扩缩容变化信息也能根据扩缩容任务得到。

303、将扩缩容虚拟机划分为至少两个平面;

本实施例中,在已知了扩缩容虚拟机之后,将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机。

304、根据扩缩容变化信息,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

本实施例中,由于扩缩容虚拟机已经划分为了至少两个平面,那么,可以先对一个平面中的扩缩容虚拟机进行扩缩容处理,然后再对另外一个平面的扩缩容虚拟机进行扩缩容处理,从而依次完成对所有平面的扩缩容虚拟机的扩缩容处理,而每一个扩缩容虚拟机的扩缩容变化信息都是已知了,那么对每一个平面的扩缩容虚拟机的扩缩容处理自然能够实现。

本申请实施例中,扩缩容方式是依次对每一个平面的扩缩容虚拟机进行扩缩容处理,那么在一个平面的扩缩容虚拟机进行扩缩容处理过程时,该平面的扩缩容虚拟不能进行业务,而其他平面的扩缩容虚拟机是能够进行业务的,而现有技术中,所有扩缩容虚拟机是同时进行扩缩容处理的,会导致业务无法进行,因此,本申请可以实现vnf的虚拟机资源的扩缩容过程中业务的正常进行。

需要说明的是,在现有技术中,垂直扩缩容方式只能实现计算资源的的扩缩容,虚拟机的存储资源及网络资源的扩缩容是无法实现的,而本申请同时能将计算资源、存储资源及网络资源整合到虚拟机资源的扩缩容中。

在nfv架构系统中虚拟机的进程类型主要是包括主备进程和负荷分担进程两种,因此,将扩缩容虚拟机划分为至少两个平面步骤时,为了更加具体,可以将进程类型考虑进去。

可选的,本申请的一些实施例中,将扩缩容虚拟机划分为至少两个平面,包括:

获取扩缩容虚拟机的进程类型,进程类型包括主备进程和负荷分担进程;

根据进程类型将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机。

本申请实施例中,虚拟机的进程类型主要是包括主备进程和负荷分担进程两种,其中,主备进程的虚拟机原理为:一个虚拟机作为主虚拟机,一个或多个虚拟机作为备虚拟机,当主虚拟机正常工作时,由主虚拟机承担业务;当主虚拟机掉电时,由备虚拟机承担业务。负荷分担进程的虚拟机原理为:多个虚拟机分别承担部分业务。那么划分扩缩容虚拟机的时候,需要获取扩缩容虚拟机的进程类型,根据进程类型将扩缩容虚拟机划分为至少两个平面。将进程类型作为划分平面的依据,可以很好的保证业务不会中断。

上述实施例中,介绍了进程类型可以作为扩缩容虚拟机划分的依据,那么下面通过实施例对扩缩容虚拟机的进程类型具体为主备进程或负荷分担进程分别进行说明。

(一)、扩缩容虚拟机的进程类型为主备进程;

请参阅图4,本申请提出了一种虚拟机资源的扩缩容方法,包括:

401、获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息;

详情请参考图3所示实施例的步骤301。

402、根据扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

详情请参考图3所示实施例的步骤302。

403、确定扩缩容虚拟机的主备关系;

本实施例中,由于扩缩容虚拟机的进程类型为主备进程,那么先确定扩缩容虚拟机的主备关系,例如,4个扩缩容虚拟机,1号和2号是对应的,1号是主虚拟机,2号是备虚拟机,3号和4号是对应的,3号是主虚拟机,4号是备虚拟机。

404、根据主备关系将扩缩容虚拟机划分为两个平面;

本实施例中,根据扩缩容虚拟机的主备关系,可以将1号和3号的扩缩容虚拟机划分到1平面,将2号和4号扩缩容虚拟机划分到2平面。

需要说明的是,不限定是两个平面,也可以是2的倍数的平面,也可以是将1号划分到1平面,将2号划分到2平面,将3号划分到3平面,将4号划分到4平面。由于主备关系已经确定,那么2的倍数的平面所能实现的效果与2个平面的效果是一致的。

405、根据扩缩容变化信息,依次对两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

详情请参考图3所示实施例的步骤304。

(二)、扩缩容虚拟机的进程类型为负荷分担进程。

请参阅图5,本申请提出了一种虚拟机资源的扩缩容方法,包括:

501、获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息;

详情请参考图3所示实施例的步骤301。

502、根据扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

详情请参考图3所示实施例的步骤302。

503、获取扩缩容虚拟机的业务类型;

本实施例中,由于扩缩容虚拟机的进程类型为负荷分担进程,那么先确定扩缩容虚拟机的业务类型,业务类型包括至少一种。

504、根据业务类型确定同一业务类型的扩缩容虚拟机;

本实施例中,根据业务类型确定同一业务类型的扩缩容虚拟机,假设扩缩容虚拟机中a、b、c、d、e、f扩缩容虚拟机的业务类型相同。

505、根据均分原则将同一业务类型的扩缩容虚拟机划分为至少两个平面;

本实施例中,根据均分原则将扩缩容虚拟机划分为两个平面时,可以是a、b、c在一个平面,d、e、f在另外一个平面;也可以是a、b、d在一个平面,c、e、f在另外一个平面,具体的分配可以变化,但是要求两个平面的扩缩容虚拟机的数量相同;如果是三个平面时,可以是a、b在一个平面,c、d在一个平面,e、f在一个平面。如果扩缩容虚拟机的数量无法均分到每一个平面的情况,需要尽量保持各平面的扩缩容虚拟机的数量相同。

506、根据扩缩容变化信息,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

详情请参考图3所示实施例的步骤304。

以上(一)和(二)所描述的实施例具体的说明了扩缩容虚拟机分别为主备进程和负荷分担进程时,将扩缩容虚拟机划分为平面的具体方式,使得本申请的方法在实施的时候能够落到实处。需要说明的是,在实际实施的时候,还可以通过依据其他的方式来划分平面,例如,按照用户的自定义设置将扩缩容虚拟机划分出至少两个平面;或者,按照扩缩容虚拟机的业务承担时间来划分出至少两个平面,假设,g扩缩容虚拟机承担x业务时间为从当前时间开始到第10s,h扩缩容虚拟机承担x业务时间是从第10s开始到第20s,那么g和h可以安排在不同的平面,在0-10s的时间内,h所在平面进行扩缩容,在10s-20s,g所在的平面进行扩缩容,从而使得x业务不会中断。

可选的,本申请的一些实施例中,根据扩缩容变化信息,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容,包括:

选择至少两个平面中的一个平面作为第一平面;

根据扩缩容变化信息,对第一平面的扩缩容虚拟机进行扩缩容处理;

当第一平面的扩缩容虚拟机的扩缩容完成后,根据扩缩容变化信息,对至少两个平面中第二平面的扩缩容虚拟机进行扩缩容处理,第二平面为至少两个平面中不同于第一平面的一个平面。

本申请实施例中,在划分出了至少两个平面之后,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容的过程具体为:先选择至少两个平面中的一个平面作为第一平面,第一平面的选择可以是随机的,也可以是预先设置的,或者用户选择的。选择了第一平面之后,根据扩缩容变化信息,对第一平面的扩缩容虚拟机进行扩缩容处理,扩缩容处理的过程为:将第一平面的扩缩容虚拟机的进程驱赶到其他的平面,然后下电第一平面的扩缩容虚拟机,按照扩缩容变化信息修改第一平面的扩缩容虚拟机的规格,再将修改后的扩缩容虚拟机上电,从而完成第一平面中扩缩容虚拟机的扩缩容处理。第一平面的扩缩容虚拟机的扩缩容完成后,按照同样的方式进行第二平面的扩缩容虚拟机的扩缩容处理,依次进行完成所有平面的扩缩容虚拟机的扩缩容处理。

可选的,本申请的一些实施例中,获取vnf的扩缩容任务之前,还包括:

获取vnf的扩缩容描述文件,扩缩容描述文件包含虚拟机变化信息,虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,虚拟机规格变化信息用于描述虚拟机规格的前后变化;

解析扩缩容描述文件得到扩缩容虚拟机类型及虚拟机规格变化信息;

根据扩缩容虚拟机类型确定扩缩容虚拟机,扩缩容虚拟机至少为两个;

根据虚拟机规格变化信息确定扩缩容虚拟机对应的扩缩容变化信息;

根据扩缩容虚拟机及扩缩容虚拟机对应的扩缩容变化信息,得到vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息。

本申请实施例中,扩缩容任务的形成的过程为:用户在nfvmano的vnfm界面上传扩缩容的扩缩容描述文件,扩缩容描述文件可以记为扩缩容vnfd,扩缩容vnfd包含虚拟机变化信息,虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,虚拟机规格变化信息用于描述虚拟机规格的前后变化。在实际应用里,虚拟化部署单元(virtualisationdeploymentunit,vdu)是定义的vnf的某一类虚拟机的单元,比如电信平台(carriergradeplatform,cgp)网元定义了omu_vdu、omu_vdu_big及omu_vdu_large等,这些vdu中包含了虚拟机规格(计算vnf中cpu个数、内存大小、磁盘大小、网卡类型、网卡数量及网卡依赖的网络等),vnf中的虚拟机可以看做归属于该vnf的某个vdu的实例对象。vnfd中定义的扩缩容plan会描述每个需要参与扩缩容的vdu的扩容规则。vnfm获得扩缩容vnfd之后,解析扩容vnfd中的扩缩容的vdu的扩缩容plan,查找归属于该vdu下的扩缩容虚拟机,以及虚拟机规格变化信息,vnfm是通过调用mml命令,将扩缩容虚拟机的虚拟机标识和虚拟机规格变化信息替换到的参数值中,并发送给扩缩容装置,从而扩缩容装置能获取到扩缩容任务。

以上实施例中介绍了虚拟机资源的扩缩容方法,下面结合nfv结构系统通过具体步骤进行详细说明。具体如下:

p1:nfvmano加载扩容vnfd和比较vnfd的处理,比较vnfd完成后下发resvm命令,将需要进行扩缩容的扩缩容虚拟机名称和变化后虚拟机规格下发到omu(omu即扩缩容装置);

p2:omu接收到nfvmano下发的scaleup命令后,将扩缩容虚拟机按照主备进程划分成两个平面;

为避免对系统造成不必要的影响,scaleup扩缩容处理只涉及通过resvm下发的扩缩容虚拟机,不对不在扩缩容之列的虚拟机造成影响。

omu在处理scaleup命令时,检查当前vnf本身是否正在进行扩缩容,或者是否存在升级或打补丁的处理。若是,则向nfvmano返回失败;否则,则通知omu的bkm模块下发扩缩容任务,bkm将扩缩容信息记录到扩容任务表中,omu的升级工具模块通过定期读取扩容任务表中数据,来感知扩缩容任务。

升级工具模块感知到扩缩容任务后,创建一个scaleup的扩缩容任务。然后先尝试在vnf的扩缩容流程文件读取流程文件,若不存在,则使用omu提供的网元默认的scaleup扩缩容流程文件;若存在,则直接使用vnf的流程文件。

升级工具模块对扩缩容虚拟机划分平面。存在主备进程的按照进程主备关系将扩缩容虚拟机划分为0和1两个平面。若是负荷分担进程的扩缩容虚拟机,划分平面时,按照同类型虚拟机来划分,保证分布在两个平面上的同类型虚拟机数量一致(若是奇数个,保证两个平面同类型虚拟机数量接近),并支持产品通过适配接口做定制化的处理。

p3:划分完平面后,进行进程驱赶;

保证进程主备关系和虚拟机主备关系的一致。

p4:下电备平面虚拟机,虚拟机按照修改后的规格上电;

流程文件调用rebvm命令,通过rest协议消息通知nfvmano进行备用平面的扩缩容虚拟机的下电、扩缩容及上电处理。rebvm命令中会携带“cpunum”参数(vnf的虚拟机cpu个数)、“memsize”(虚拟机内存大小)等计算资源参数,另外还可以定制携带存储大小以及虚拟网卡个数参数。

omu创建任务等待时间较久,为防止nfvmano在该过程误认为omu停止响应,扩缩容流程文件中定时通过putrpt命令向nfvmano上报扩容进度。

p5:备平面备份完成后,倒换平面,再完成主平面的扩缩容虚拟机的扩缩容处理;

备平面的扩缩容虚拟机的状态和进程状态正常后,检查当前扩缩容虚拟机的cpu、内存规格、存储大小及虚拟网卡个数是否已经是设定的规格。对于扩缩容虚拟机上的主备进程,再备份完成后,倒换平面。

倒换平面后,再次使用rebvm命令对主平面的扩缩容虚拟机进行扩缩容。处理流程同备平面的扩缩容虚拟机一样。平面的扩缩容虚拟机完成扩缩容后,扩缩容虚拟机的状态和进程状态正常后,且虚拟机规格正确后,向nfvmano上报scaleup扩缩容流程完成。

p6:scaleup扩缩容结束。

扩缩容过程中上报扩缩容进度给nfvmano呈现。为保证扩缩容流程支持重试和回退,扩缩容流程需要支持可重入性。

上述实施例中对本申请中虚拟机资源的扩缩容方法和扩缩容装置对应的实体装置进行了说明,下面对虚拟机资源的扩缩容装置进行功能模块化的说明。

请参阅图6,本申请实施例提供一种虚拟机资源的扩缩容装置,包括:

获取模块601,用于获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容虚拟机至少为两个;

处理模块602,用于根据扩缩容任务确定扩缩容虚拟机及对应的扩缩容变化信息;

处理模块602,还用于将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机;

处理模块602,还用于根据扩缩容变化信息,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容处理。

本申请实施例中,在采用分布式架构的vnf的nfv架构系统中,当vnf因业务的需要变化时,会扩大或缩小虚拟机内的虚拟化资源,即通过垂直扩缩容方式调整虚拟机的规格。在nfvmano的vnfm界面生成vnf的扩缩容任务之后,将扩缩容任务发送到虚拟机资源的扩缩容装置,获取模块601获取vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息,扩缩容变化信息表示的是调整虚拟机的规格的前后的规格信息的变化,而且对于本申请来说扩缩容虚拟机至少为两个才有意义,由于扩缩容虚拟机的虚拟机标识已知,那么处理模块602根据扩缩容任务可以确定扩缩容虚拟机及对应的扩缩容变化信息,在已知了扩缩容虚拟机之后,将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机,由于扩缩容虚拟机已经划分为了至少两个平面,那么,处理模块602可以先对一个平面中的扩缩容虚拟机进行扩缩容处理,然后再对另外一个平面的扩缩容虚拟机进行扩缩容处理,从而依次完成对所有平面的扩缩容虚拟机的扩缩容处理,而每一个扩缩容虚拟机的扩缩容变化信息都是已知了,那么对每一个平面的扩缩容虚拟机的扩缩容处理自然能够实现。本申请的扩缩容方式是依次对每一个平面的扩缩容虚拟机进行扩缩容处理,那么在一个平面的扩缩容虚拟机进行扩缩容处理过程时,该平面的扩缩容虚拟不能进行业务,而其他平面的扩缩容虚拟机是能够进行业务的,而现有技术中,所有扩缩容虚拟机是同时进行扩缩容处理的,会导致业务无法进行,因此,可以实现业务过程中也能进行vnf的虚拟机资源的扩缩容。

可选的,本申请的一些实施例中,

获取模块601,还用于获取扩缩容虚拟机的进程类型,进程类型包括主备进程和负荷分担进程;

处理模块602,还用于根据进程类型将扩缩容虚拟机划分为至少两个平面,一个平面中包括至少一个扩缩容虚拟机。

本申请实施例中,在nfv架构系统中虚拟机的进程类型主要是包括主备进程和负荷分担进程两种,其中,主备进程的虚拟机原理为:一个虚拟机作为主虚拟机,一个或多个虚拟机作为备虚拟机,当主虚拟机正常工作时,由主虚拟机承担业务;当主虚拟机掉电时,由备虚拟机承担业务。负荷分担进程的虚拟机原理为:多个虚拟机分别承担部分业务。那么划分扩缩容虚拟机的时候,获取模块601需要获取扩缩容虚拟机的进程类型,处理模块602根据进程类型将扩缩容虚拟机划分为至少两个平面。将进程类型作为划分平面的依据,可以很好的保证业务不会中断。

可选的,本申请的一些实施例中,进程类型为主备进程,

处理模块,还用于根据进程类型,确定扩缩容虚拟机的主备关系;

处理模块,还用于根据主备关系将扩缩容虚拟机划分为两个平面。

本申请实施例中,以扩缩容虚拟机的进程类型是主备进程为例,对划分平面进行说明,首先,处理模块602确定扩缩容虚拟机的主备关系,例如,4个扩缩容虚拟机,1号和2号是对应的,1号是主虚拟机,2号是备虚拟机,3号和4号是对应的,3号是主虚拟机,4号是备虚拟机,处理模块602可以将1号和3号的扩缩容虚拟机划分到1平面,将2号和4号扩缩容虚拟机划分到2平面。并且不限定是两个平面,也可以是2的倍数的平面,处理模块也可以是将1号划分到1平面,将2号划分到2平面,将3号划分到3平面,将4号划分到4平面。由于主备关系已经确定,那么2的倍数的平面所能实现的效果与2个平面的效果是一致的。具体的说明了扩缩容虚拟机为主备进程时,对扩缩容虚拟机划分平面的方案。

可选的,本申请的一些实施例中,进程类型为负荷分担进程,

获取模块601,还用于根据进程类型,获取扩缩容虚拟机的业务类型,业务类型至少为一个;

处理模块602,还用于根据业务类型确定同一业务类型的扩缩容虚拟机;

处理模块602,还用于根据均分原则将同一业务类型的扩缩容虚拟机划分为至少两个平面。

本申请实施例中,以扩缩容虚拟机的进程类型是负荷分担进程为例,对划分平面进行说明,首先,获取模块601获取扩缩容虚拟机的业务类型,处理模块602根据业务类型确定同一业务类型的扩缩容虚拟机,例如a、b、c、d、e、f扩缩容虚拟机的业务类型相同,处理模块根据均分原则将扩缩容虚拟机划分为两个平面时,可以是a、b、c在一个平面,d、e、f在另外一个平面;也可以是a、b、d在一个平面,c、e、f在另外一个平面,具体的分配可以变化,但是要求两个平面的扩缩容虚拟机的数量相同;如果是三个平面时,可以是a、b在一个平面,c、d在一个平面,e、f在一个平面。如果扩缩容虚拟机的数量无法均分到每一个平面的情况,需要尽量保持各平面的扩缩容虚拟机的数量相同。具体的说明了扩缩容虚拟机为负荷分担进程时,对扩缩容虚拟机划分平面的方案。

可选的,本申请的一些实施例中,

处理模块602,还用于选择至少两个平面中的一个平面作为第一平面;

处理模块602,还用于根据扩缩容变化信息,对第一平面的扩缩容虚拟机进行扩缩容处理;

处理模块602,还用于当第一平面的扩缩容虚拟机的扩缩容完成后,根据扩缩容变化信息,对至少两个平面中第二平面的扩缩容虚拟机进行扩缩容处理,第二平面为至少两个平面中不同于第一平面的一个平面。

本申请实施例中吗,在划分出了至少两个平面之后,依次对至少两个平面中每一平面的扩缩容虚拟机进行扩缩容的过程具体为:处理模块602先选择至少两个平面中的一个平面作为第一平面,第一平面的选择可以是随机的,也可以是预先设置的,或者用户选择的。处理模块602选择了第一平面之后,根据扩缩容变化信息,对第一平面的扩缩容虚拟机进行扩缩容处理,扩缩容处理的过程为:将第一平面的扩缩容虚拟机的进程驱赶到其他的平面,然后下电第一平面的扩缩容虚拟机,按照扩缩容变化信息修改第一平面的扩缩容虚拟机的规格,再将修改后的扩缩容虚拟机上电,从而完成第一平面中扩缩容虚拟机的扩缩容处理。第一平面的扩缩容虚拟机的扩缩容完成后,处理模块602按照同样的方式进行第二平面的扩缩容虚拟机的扩缩容处理,依次进行完成所有平面的扩缩容虚拟机的扩缩容处理。

可选的,本申请的一些实施例中,

获取模块601,还用于获取vnf的扩缩容描述文件,扩缩容描述文件包含虚拟机变化信息,虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,虚拟机规格变化信息用于描述虚拟机规格的前后变化;

处理模块602,还用于解析扩缩容描述文件得到扩缩容虚拟机类型及虚拟机规格变化信息;

处理模块602,还用于根据扩缩容虚拟机类型确定扩缩容虚拟机,扩缩容虚拟机至少为两个;

处理模块602,还用于根据虚拟机规格变化信息确定扩缩容虚拟机对应的扩缩容变化信息;

处理模块602,还用于根据扩缩容虚拟机及扩缩容虚拟机对应的扩缩容变化信息,得到vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息。

本申请实施例中,扩缩容任务的形成的过程为:用户在mano界面的上传扩缩容的扩缩容描述文件,获取模块601获取vnf的扩缩容描述文件,扩缩容描述文件包含虚拟机变化信息,虚拟机变化信息包括扩缩容虚拟机类型及虚拟机规格变化信息,虚拟机规格变化信息用于描述虚拟机规格的前后变化,处理模块602解析扩缩容描述文件得到扩缩容虚拟机类型及虚拟机规格变化信息,根据扩缩容虚拟机类型确定扩缩容虚拟机,处理模块根据虚拟机规格变化信息确定扩缩容虚拟机对应的扩缩容变化信息,处理模块602根据扩缩容虚拟机及扩缩容虚拟机对应的扩缩容变化信息,得到vnf的扩缩容任务,扩缩容任务包括扩缩容虚拟机的虚拟机标识及扩缩容虚拟机的扩缩容变化信息。

本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行以上实施例所描述的虚拟机资源的扩缩容方法方法。

本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例所描述的虚拟机资源的扩缩容方法方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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