一种启动虚拟机的方法和装置与流程

文档序号:11406889阅读:346来源:国知局
一种启动虚拟机的方法和装置与流程
本发明实施例涉及通信领域,并且更具体地,涉及一种启动虚拟机的方法和装置。
背景技术
:在运营商、数据中心、云计算服务商以及大型网络企业中,nfv的部署与应用占据着越来越重要的地位。nfv即网络功能虚拟化(networkfunctionvirtualization),通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理,从而降低网络昂贵的设备成本。nfv可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务(在本领域所提到的网络均指网络业务)需求进行自动部署、弹性伸缩、故障隔离和自愈等。按照nfv的技术原理,一个网络业务可以包括至少一个vnf(vnf,virtualisednetworkfunction),每个vnf又可以分解为一组vnfc(vnfc,virtualisednetworkfunctioncomponent);即nfv网络由一个或者多个vnf组成;vnf又由一个或者多个vnfc组成;其中vnfc是提供特定网络业务功能的软件包的一组进程或软件模块,vnfc对应到物理上包括:接口板、软件包、交换板、业务处理板、主控板等;vnfc对应到软件上包括:接口进程、交换进程、业务处理进程、主控进程等。相同种类的vnfc能够实现相同的功能,每个vnfc最终映射到一个虚拟机(vm,virtualmachine)上。通常同一种vnfc会在多个虚拟机上运行(从而提供更强的业务处理能力或者更高的业务可靠性),同一个虚拟机也会运行多个不同的虚拟化网络功能组件。虚拟机启动时,虚拟机上运行的虚拟化网络功能组件同时启动并运行。通常情况下,一个vnf可以拥有若干种vnfc,其中每种vnfc各自实现的功能都是不同的。在一个完整的nfv网络中,同一种vnf的个数为x0,那么该种vnf的各种vnfc也对应着有x0个;对于同一种vnfc可以有多个,只是启动的时间或运行所在的虚拟机有所差别,值得注意的是所有的vnfc并不是规则地分布在虚拟机中。请参阅图1,图1为一种vnfc在虚拟机中的分布示意图。以vfn0和vnf11为例,vnf0包含的vnfc为vnf000、vnf001、vnf002,vnf1包含的vnfc为vnf010、vnf011。图1中,vm0和vm4表示同一种vnf的所有vnfc都可以运行在同一个虚拟机中,且不同的虚拟机中运行的vnf可能不同;图1中,vm1表示一个虚拟机中可以只运行一种vnf的部分vnfc;图1中,vm4和vm5表示一个虚拟机中可以运行一种vnf的部分vnfc,并且每种vnfc的个数也可以为一个或多个;图1中,vm3表示一个虚拟机中可以运行不同vnf的vnfc。nfv网络能够正常提供业务需要至少一个特定的vnfc集合正常工作,该vnfc集合通常包含不同vnf的vnfc。不同类型或者优先级的业务的vnfc集合可能不同。大型的nfv网络会运行大量的虚拟机,这些虚拟机共享物理资源,例如存储,网络和主机资源等。这些虚拟机启动时,需要从共享存储读取os(operationssystem,操作系统)和vnfc进程等数据,会产生大量存储i/o操作,如果同时启动的虚拟机太多,形成虚拟机启动风暴,会导致共享存储i/o等资源过载,导致每个虚拟机启动时间都很长甚至引起复位或者挂死等异常。因此nfv网络的虚拟机管理系统会限制同时启动的虚拟机的数量,避免虚拟机启动时共享存储i/o等资源过载。虚拟机管理系统限制同时启动的虚拟机数量的情况下会相应地带来可靠性的问题,现有技术中虚拟机管理系统按照主机或者vnf顺序启动虚拟机(逐个启动部署在各个主机上的虚拟机或者逐个启动各个vnf的虚拟机)。由于同时启动的虚拟机数量有限且没有规划,而无法迅速启动所有的虚拟机以运行某一特定网络业务要求的所有vnfc,由于某一特定的网络业务要求的vnfc没有全部运行,而使得在启动的一段时间内,该网络业务不能正常提供,造成提供网络业务的效率低下。技术实现要素:本发明实施例提供了一种启动虚拟机的方法和装置,在虚拟机业务故障恢复或者初始系统建立的过程中,可以实现业务快速提供以及业务处理能力的快速提升。第一方面,本发明实施例提供了一种启动虚拟机的方法,所述方法应用于部署了第一网络业务的网络功能虚拟化nfv网络,所述nfv网络由运行于计算设备上的多个虚拟机实现,所述第一网络业务由n个类型的虚拟化网络功能组件vnfc共同实现,所述方法包括:获取所述n个类型的vnfc与所述多个虚拟机的分布关系,所述分布关系描述了所述n个类型的vnfc中每个类型的vnfc在所述多个虚拟机中的每个虚拟机中的数量;根据所述分布关系,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合,使得第一组虚拟机中的所述每个类型的vnfc的数量总和分别满足所述每个类型的vnfc对应的预设数量,所述第一组虚拟机集合包括已启动虚拟机集合及所述待启动虚拟机集合,所述已启动虚拟机集合中的已启动虚拟机数量大于等于0,当数量大于0时,所述已启动虚拟机属于所述多个虚拟机;启动所述待启动虚拟机集合中的虚拟机。该方法能够根据各个虚拟机中vnfc的种类和数量,有针对性地、有选择性地选择出来尽量少的虚拟机,进而能够实现nfv网络中第一网络业务的尽快实现。第二方面,本发明实施例提供了一种启动虚拟机的装置,所述装置应用于应用于部署了第一网络业务的网络功能虚拟化nfv网络,所述nfv网络由运行于计算设备上的多个虚拟机实现,所述第一网络业务由n个类型的虚拟化网络功能组件vnfc共同实现,其中n为正整数,所述装置包括:获取模块,用于获取所述n个类型的vnfc与所述多个虚拟机的分布关系,所述分布关系描述了所述n个类型的vnfc中每个类型的vnfc在所述多个虚拟机中的每个虚拟机中的数量;选择模块,用于根据所述获取模块获取到的分布关系,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合,使得第一组虚拟机中的所述每个类型的vnfc的数量总和分别满足所述每个类型的vnfc对应的预设数量,所述第一组虚拟机集合包括已启动虚拟机集合及所述待启动虚拟机集合,所述已启动虚拟机集合中的已启动虚拟机数量大于等于0,当数量大于0时,所述已启动虚拟机属于所述多个虚拟机;启动模块,用于启动所述选择模块选择出来的待启动虚拟机集合中的虚拟机。该装置能够根据各个虚拟机中vnfc的种类和数量,有针对性地、有选择性地选择出来尽量少的虚拟机,进而能够实现nfv网络中业务的尽快实现。第一方面和第二方面的技术方案可以应用于单一业务类型需求的场景中;单一业务类型需求的场景包括两种情况:一种是指nfv网络只有一种业务优先级sla(servicelevelagreement,服务水平协议)可用度级别的业务,网络中不存在其他不同业务优先级的业务,网络中所有的虚拟机都支持这一种优先级业务类型的业务。另一种是指nfv网络中存在多种业务,网络中的虚拟机中含有不同业务对应的vnfc,但是本次启动虚拟机的目的只为了实现其中一种特定的业务。根据第一方面或者第二方面,在一种可能的设计中,所述根据所述分布关系,从所述未启动的虚拟机中选择至少一个待启动虚拟机包括:步骤1:根据确定所述第一组虚拟机中所述每个类型的vnfc的当前数量权重,其中,α_i为第i类型的vnfc的当前数量权重,qi为所述第一组虚拟机中所述第i类型的vnfc的当前数量总和,qj为所述第一组虚拟机中第j类型的vnfc的当前数量总和,所述第i类型的vnfc以及所述第j类型的vnfc属于所述n个类型的vnfc,所述i,j的取值范围包括不大于n的正整数;步骤2:根据确定的所述每个类型的vnfc的当前数量权重与所述每个类型的vnfc的预设数量权重,查找出当前数量权重低于预设数量权重程度最大的第k类型的vnfc,所述第k类型的vnfc为所述n个类型vnfc中的一个;步骤3:从所述多个虚拟机中选择一个含有所述第k类型的vnfc的未启动虚拟机加入到所述待启动虚拟机集合中;按顺序重复执行所述步骤1、所述步骤2和所述步骤3,直到所述第一组虚拟机中的所述n个类型中每个类型的vnfc的数量总和分别满足所述每个类型的vnfc对应的预设数量。该技术方案能够根据各个虚拟机中vnfc的种类和数量,通过一定的算法,有选择地选择最稀缺的vnfc所在的虚拟机,在保证第一网络中业务尽快实现的前提下,能够充分发挥当前已经启动的虚拟机中的vnfc的最大效能,使得第一网络业务的业务能力迅速提升。根据第一方面或者第二方面,在一种可能的设计中,所述从所述多个虚拟机中选择一个含有所述第k类型的vnfc的未启动虚拟机加入到所述待启动虚拟机集合中包括以下任一方式:选择一个含有所述第k类型的vnfc的数量最多的未启动虚拟机加入到所述待启动虚拟机集合中;或若含有所述第k类型的vnfc的数量最多的未启动虚拟机为多个时,则选择一个含有所述n个类型中vnfc类型数量最多的未启动虚拟机加入到所述待启动虚拟机集合中,或者选择一个含有用于实现所述第一网络业务的vnfc数量总和最多的未启动虚拟机加入到所述待启动虚拟机集合中。该技术方案使得系统在选择虚拟机时面临同种筛选条件的未启动虚拟机存在多个时,提供一种优先的选择方案。根据第一方面或者第二方面,在一种可能的设计中,在所述按顺序重复执行所述步骤1、所述步骤2和所述步骤3的过程中,获取所述至少一个未启动虚拟机的选择顺序;所述启动所述待启动虚拟机集合中的虚拟机包括:按照所述选择顺序,启动所述至少一个未启动虚拟机。该技术方案使得在选择至少一个未启动虚拟机的过程中,无疑产生了一个虚拟机编排启动的顺序,与现有技术相比,启动的顺序已经不在是单纯地按照虚拟机编号,并且这种顺序使得已启动的虚拟机中的vnfc能够发挥最大效能。根据第一方面或者第二方面,在一种可能的设计中,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合包括:根据所述分布关系确定出k个类型,所述k个类型为所述n个类型的子集,且所述k个类型的vnfc在所述已启动虚拟机中不存在;按照第一预设规则从所述多个虚拟机中选择出l个未启动虚拟机加入到所述待启动虚拟机集合中中,所述l个虚拟机中包含所述k个类型的vnfc,所述第一预设规则使得l不大于k;再按照第二预设规则从所述多个虚拟机中选择出h个未启动虚拟机加入到所述待启动虚拟机集合中,所述第二预设规则使得所述第一组虚拟机中的所述每个类型的vnfc的数量总和分别满足所述每个类型的vnfc对应的预设数量。其中,第一预设规则可以是优先选择含有k个类型中种类最丰富的未启动虚拟机;例如k=3,类型分别为k1、k2、k3,优先选择同时含有k1、k2、k3这三种vnfc的虚拟机,若没有则选择含有k1、k2、k3其中两种的vnfc的虚拟机,若还没有再选择含有k1、k2、k3其中一种的vnfc的虚拟机。第二预设规则可以是一种随机顺序,只需要遵照简单的加法原理即可;第二预设规则也可以是一种数量优先的顺序,即含有第一业务对应的vnfc数量(只看数量不看种类)最多的虚拟机优先被选择;第二预设规则也可以是一种种类优先的顺序,即含有第一业务对应的vnfc种类最多的虚拟机优先被选择。在上述任何一种预设规则的具体实现形式中,若出现优先级等同的虚拟机有多个时,可以采用随机的方式进行选择。该技术方案可以使得启动数量尽可能少的虚拟机就能保证第一网络业务的基本实现,使得在虚拟机故障或者新建一个虚拟机系统时第一网络业务功能起码能够恢复或者建立。根据第一方面或者第二方面,在一种可能的设计中,在所述按照第一预设规则从所述多个虚拟机中选择出l个未启动虚拟机的过程中,获取所述l个未启动虚拟机的第一选择顺序;在所述按照第二预设规则从所述多个虚拟机中选择出h个未启动虚拟机的过程中,获取所述h个未启动虚拟机的第二选择顺序;所述启动所述待启动虚拟机集合中的虚拟机包括:先按照所述第一选择顺序启动所述l个未启动虚拟机,再按照所述第二选择顺序启动所述h个未启动虚拟机。按照上述的选择顺序进行编排启动虚拟机,能够使已启动的虚拟机中包含尽可能数量众多、种类丰富的vnfc,实现了第一网络业务的快速恢复或者建立。根据第一方面或者第二方面,在一种可能的设计中,任意一个虚拟机的属性信息表中包含一个vnfc字段,所述一个vnfc字段记录了所述任意一个虚拟机中运行的第i类型的vnfc数量;所述获取所述n个类型的vnfc与虚拟机的分布关系包括:读取所述一个vnfc字段,得到所述任意一个虚拟机中运行的第i类型的vnfc数量。这是一种获取vnfc在虚拟机中分布关系的一种方法,可以使系统掌握每个虚拟机运行的vnfc的情况以及每种vnfc在哪些虚拟机中有分布情况。根据第一方面或者第二方面,在一种可能的设计中,任意一个虚拟机中含有软件包,所述软件包中记录所述第i类型的vnfc的数量;所述获取所述n个类型的vnfc与虚拟机的分布关系包括:通过加载软件包获取到所述任意一个虚拟机中含有所述第i类型的vnfc的数量。这是另一种获取vnfc在虚拟机中分布关系的一种方法,可以使系统掌握每个虚拟机运行的vnfc的情况以及每种vnfc在哪些虚拟机中有分布情况。根据第一方面或者第二方面,在一种可能的设计中,在启动上述至少一个待启动虚拟机之后,可以按照随机的顺序启动剩余的还没启动的待启动虚拟机。通常每一次启动的虚拟机都会在满足vnfc目标使用量的前提下留有一定的余量,以确保vnfc具备一定的可靠性。而本方法在实现目标使用量的vnfc之后,可以不再对之后启动的虚拟机有任何的顺序限定,可以减少系统的处理功耗。第三方面,本发明实施例提供了一种启动虚拟机的方法,所述方法应用于部署了m个网络业务的网络功能虚拟化nfv网络,所述nfv网络由运行于计算设备上的多个虚拟机实现,其中,第x业务为所述m个网络业务中的一个网络业务;所述第x业务由n(x)个类型的vnfc共同实现,n为正整数;x的取值包括不大于m的所有正整数,m为大于1的自然数;所述方法包括:获取所述n(x)个类型的vnfc与所述多个虚拟机的分布关系;所述分布关系描述了第xi类型的vnfc分布在所述多个虚拟机中的每个虚拟机中的数量;其中,所述第xi类型为所述第x业务对应的n(x)个类型中的一个,i的取值包括不大于所述n(x)的所有正整数;根据所述分布关系,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合,使得第一组虚拟机中的m个网络业务下的每个类型的vnfc的数量总和满足所述每个类型的vnfc对应的预设数量,所述第一组虚拟机集合包括已启动虚拟机集合及所述待启动虚拟机集合,所述已启动虚拟机集合中的已启动虚拟机数量大于等于0,当数量大于0时,所述已启动虚拟机属于所述多个虚拟机;启动所述待启动虚拟机集合中的虚拟机。该方法能够根据各个虚拟机中vnfc的种类和数量,有针对性地、有选择性地选择出来尽量少的虚拟机,进而能够实现m个业务的尽快实现。第四方面,本发明实施例提供了一种启动虚拟机的装置,所述装置应用于部署了m个网络业务的网络功能虚拟化nfv网络,所述nfv网络由运行于计算设备上的多个虚拟机实现,其中,第x业务为所述m个网络业务中的一个网络业务;所述第x业务由n(x)个类型的vnfc共同实现,n为正整数;x的取值包括不大于m的所有正整数,m为大于1的自然数;所述装置包括:获取模块,用于获取所述n(x)个类型的vnfc与所述多个虚拟机的分布关系;所述分布关系描述了第xi类型的vnfc分布在所述多个虚拟机中的每个虚拟机中的数量;其中,所述第xi类型为所述第x业务对应的n(x)个类型中的一个,i的取值包括不大于所述n(x)的所有正整数;选择模块,用于根据所述获取模块获取到的分布关系,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合,使得第一组虚拟机中的m个网络业务下的每个类型的vnfc的数量总和满足所述每个类型的vnfc对应的预设数量,所述第一组虚拟机集合包括已启动虚拟机集合及所述待启动虚拟机集合,所述已启动虚拟机集合中的已启动虚拟机数量大于等于0,当数量大于0时,所述已启动虚拟机属于所述多个虚拟机;启动模块,用于启动所述选择模块选择出来的待启动虚拟机集合中的虚拟机。该装置能够根据各个虚拟机中vnfc的种类和数量,有针对性地、有选择性地选择出来尽量少的虚拟机,进而能够实现nfv网络中业务的尽快实现。根据第三方面或者第四方面,在一种可能的设计中,所述根据所述分布关系,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合包括:步骤1:根据确定所述第一组虚拟机中所述第xi类型的vnfc的当前数量权重;其中,αxi为第xi类型的vnfc的当前数量权重,qxi为所述第一组虚拟机中所述第xi类型的vnfc的当前数量总和,qxj为所述第一组虚拟机中第xj类型的vnfc的当前数量总和,所述第xj类型为所述第x业务对应的n(x)个类型中的一个,j的取值包括不大于n(x)的所有正整数;步骤2:根据确定的所述第xi类型的vnfc的当前数量权重αxi与所述第xi类型的vnfc的预设数量权重,查找出当前数量权重低于预设数量权重程度最大的第k类型的vnfc,所述第k类型的vnfc为所述n(x)个类型vnfc中的一个;步骤3:从所述多个虚拟机中选择一个含有所述第k类型的vnfc的未启动虚拟机加入到所述待启动虚拟机集合中;按顺序重复执行所述步骤1、所述步骤2和所述步骤3,直到所述第一组虚拟机中所含有的m个网络业务下的每个类型的vnfc的数量总和满足所述每个类型的vnfc对应的预设数量。该技术方案能够根据各个虚拟机中vnfc的种类和数量,通过一定的算法,有选择地选择最稀缺的vnfc所在的虚拟机,在保证m个业务尽快实现的前提下,能够充分发挥当前已经启动的虚拟机中的vnfc的最大效能。根据第三方面或者第四方面,在一种可能的设计中,所述根据所述分布关系,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合包括:确定所述m个业务的优先级的高低顺序,并按照所述优先级的高低顺序依次对所述m个业务中的各个业务执行业务拉通操作;所述业务拉通操作包括:步骤1:根据确定所述第一组虚拟机中每个类型的vnfc的当前数量权重;其中,αxi为第xi类型的vnfc的当前数量权重,qxi为所述第一组虚拟机中所述第xi类型的vnfc的当前数量总和,qxj为所述第一组虚拟机中所述第xj类型的vnfc的当前数量总和,xj的取值包括不大于所述当前业务对应的n(x)的所有正整数;步骤2:根据确定的所述当前业务中每个类型的vnfc的当前数量权重αxi与所述当前业务中每个类型的vnfc的预设数量权重,查找出当前数量权重低于预设数量权重程度最大的第k类型的vnfc,所述第k类型为所述当前业务中n(x)个类型中的一个;步骤3:从所述多个虚拟机中选择一个含有所述第k类型的vnfc的未启动虚拟机加入到所述待启动虚拟机集合中;按顺序重复执行所述步骤1、所述步骤2和所述步骤3,直到所述第一组虚拟机中的当前业务下每个类型的vnfc的数量总和分别满足所述当前业务中每个类型的vnfc对应的预设数量。该技术方案能够根据各个虚拟机中vnfc的种类和数量,通过一定的算法,有选择地选择最稀缺的vnfc所在的虚拟机,在保证m个业务尽快实现的前提下,能够充分发挥当前已经启动的虚拟机中的vnfc的最大效能,并且具有业务优先级的区分,优先保证优先级高的业务的vnfc能够达到最大效能后,再去考虑优先级低的业务的vnfc,尤其确保了高优先级的业务快速恢复。根据第三方面或者第四方面,在一种可能的设计中,所述从所述多个虚拟机中选择一个含有所述第k类型的vnfc的未启动虚拟机加入到所述待启动虚拟机集合中包括以下任一方式:选择一个含有所述第k类型的vnfc的数量最多的未启动虚拟机加入到所述待启动虚拟机集合中;若含有所述第k类型的vnfc的数量最多的未启动虚拟机为多个时,则选择一个含有vnfc类型数量最多的未启动虚拟机加入到所述待启动虚拟机集合中;或者选择一个含有vnfc数量最多的未启动虚拟机加入到所述待启动虚拟机集合中。该技术方案为系统在选择至少一个未虚拟机时面临同种筛选条件的未启动虚拟机存在多个时,提供一种优先的选择方案。根据第三方面或者第四方面,在一种可能的设计中,在所述重复执行所述步骤1、所述步骤2和所述步骤3的过程中,获取所述选择的至少一个未启动虚拟机的选择顺序;所述启动所述待启动虚拟机集合中的虚拟机包括:按照所述选择顺序,启动所述选择的至少一个未启动虚拟机。在选择至少一个未启动虚拟机的过程中,无疑产生了一个虚拟机编排启动的顺序,与现有技术相比,启动的顺序已经不在是单纯地按照虚拟机编号,并且这种顺序使得已启动的虚拟机中的vnfc能够发挥最大效能。根据第三方面或者第四方面,在一种可能的设计中,在所述按照所述优先级的高低顺序依次对所述m个业务中的各个业务执行所述业务拉通操作过程中,获取所述选择的至少一个未启动虚拟机的选择顺序;所述启动所述待启动虚拟机集合中的虚拟机包括:按照所述选择顺序,启动所述选择的至少一个未启动虚拟机。在选择至少一个未启动虚拟机的过程中,无疑产生了一个虚拟机编排启动的顺序,与现有技术相比,启动的顺序已经不在是单纯地按照虚拟机编号,并且这种顺序使得已启动的虚拟机中的vnfc能够发挥最大效能。根据第三方面或者第四方面,在一种可能的设计中,所述从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合包括:根据所述分布关系确定出k个类型,所述k个类型为所述m个业务对应的所有vnfc类型的子集,且所述k个类型的vnfc在所述已启动虚拟机中不存在;按照第一预设规则从所述多个虚拟机中选择出l个未启动启动虚拟机加入到所述待启动虚拟机集合中,所述l个未启动虚拟机中包含所述k个类型的vnfc,所述第一预设规则使得l不大于k;再按照第二预设规则从所述多个虚拟机中选择出h个未启动虚拟机加入到所述待启动虚拟机集合中,所述第二预设规则使得所述第一组虚拟机中所含有的m个网络业务下的每个类型的vnfc的数量总和满足所述每个类型的vnfc对应的预设数量。例如k=3,类型分别为k1、k2、k3,优先选择同时含有k1、k2、k3这三种vnfc的虚拟机,若没有则选择含有k1、k2、k3其中两种的vnfc的虚拟机,若还没有再选择含有k1、k2、k3其中一种的vnfc的虚拟机。第二预设规则可以是一种随机顺序,只需要遵照简单的加法原理即可;第二预设规则也可以是一种数量优先的顺序,即含有相应业务对应的vnfc数量(只看数量不看种类)最多的虚拟机优先被选择;第二预设规则也可以是一种种类优先的顺序,即含有第一业务对应的vnfc种类最多的虚拟机优先被选择。在上述任何一种预设规则的具体实现形式中,若出现优先级等同的虚拟机有多个时,可以采用随机的方式进行选择。该技术方案提供了一种新的虚拟机编排启动方法,可以使得启动数量尽可能少的虚拟机就能保证业务的基本实现,使得在虚拟机故障或者新建一个虚拟机系统时m个业务功能能够恢复或者建立。根据第三方面或者第四方面,在一种可能的设计中,在所述按照第一预设规则从所述多个虚拟机中选择出l个未启动虚拟机的过程中,获取所述l个待启动虚拟机的第一选择顺序;在所述按照第二预设规则从所述多个虚拟机中选择出h个未启动虚拟机的过程中,获取所述h个待启动虚拟机的第二选择顺序;所述启动所述待启动虚拟机集合中的虚拟机包括:先按照所述第一选择顺序启动所述l个未启动虚拟机,再按照所述第二先后选择顺序启动所述h个未启动虚拟机。该技术方案提供了一种新的虚拟机编排启动方法,可以使得启动数量尽可能少的虚拟机就能保证业务的基本实现,使得在虚拟机故障或者新建一个虚拟机系统时m个业务功能能够恢复或者建立。根据第三方面或者第四方面,在一种可能的设计中,从所述多个虚拟机中选择至少一个未启动虚拟机作为待启动虚拟机集合包括:确定所述m个业务的优先级的高低顺序,并按照所述优先级的高低顺序依次对所述m个业务中的每个业务执行业务保障操作,从所述多个虚拟机中选择出h1个未启动虚拟机加入到所述待启动虚拟机集合中;对所述m个业务中的每个业务执行业务保障操作之后,再按照第四预设规则从所述多个虚拟机中选择出h2个未启动虚拟机加入到所述待启动虚拟机集合中,所述第四预设规则使得所述第一组虚拟机中所含有的m个网络业务下的每个类型的vnfc的数量总和满足所述每个类型的vnfc对应的预设数量;其中;所述业务保障操作包括:根据所述分布关系确定出k(x)个类型,所述k(x)个类型为当前业务中n(x)个类型的子集,且所述k(x)个类型的vnfc在所述已启动虚拟机中不存在;按照第三预设规则从所述多个虚拟机中选择出l(x)个未启动虚拟机加入到所述待启动虚拟机集合中,所述l(x)个未启动虚拟机中包含所述k(x)个类型的vnfc,所述第三预设规则使得l(x)不大于k(x)。该技术方案提供一种虚拟机编排选择方法,这种编排顺序可以使得启动数量尽可能少的虚拟机就能保证业务的基本实现,尤其是多业务存在的时候,能保证优先级高的业务优先实现,使得在虚拟机故障或者新建一个虚拟机系统时业务功能起码能够恢复或者建立。根据第三方面或者第四方面,在一种可能的设计中,在对所述m个业务中的每个业务执行业务保障操作的过程中,获取所述h1个未启动虚拟机的第三选择顺序;在所述按照第四预设规则从所述多个虚拟机中选择出h2个未启动虚拟机的过程中,获取所述h2个未启动虚拟机的第四选择顺序;所述启动所述待启动虚拟机集合中的虚拟机包括:先按照所述第三选择顺序启动所述h1个未启动虚拟机,再按照所述第四选择顺序启动所述h2个未启动虚拟机。该技术方案可以使得启动数量尽可能少的虚拟机就能保证业务的基本实现,尤其是多业务存在的时候,能保证优先级高的业务优先实现,使得在虚拟机故障或者新建一个虚拟机系统时业务功能起码能够恢复或者建立。根据第三方面或者第四方面,在一种可能的设计中,任意一个虚拟机的属性信息表中包含一个vnfc字段,所述一个vnfc字段记录了所述任意一个虚拟机中运行的第xi类型的vnfc数量;所述获取所述n(x)个类型的vnfc与虚拟机的分布关系包括:读取所述一个vnfc字段,得到所述任意一个虚拟机中运行的第xi类型的vnfc数量。这是一种获取vnfc在虚拟机中分布关系的一种方法,可以使系统掌握每个虚拟机运行的vnfc的情况以及每种vnfc在哪些虚拟机中有分布情况。根据第三方面或者第四方面,在一种可能的设计中,任意一个虚拟机中含有软件包,所述软件包中记录所述第xi类型的vnfc的数量;所述获取所述n个类型的vnfc与虚拟机的分布关系包括:通过加载所述软件包获取到所述任意一个虚拟机中含有所述第xi类型的vnfc的数量。这是另一种获取vnfc在虚拟机中分布关系的一种方法,可以使系统掌握每个虚拟机运行的vnfc的情况以及每种vnfc在哪些虚拟机中有分布情况。根据第三方面或者第四方面,在一种可能的设计中,在启动上述至少一个待启动虚拟机之后,可以按照随机的顺序启动剩余的还没启动的待启动虚拟机;在实现目标使用量的vnfc之后,可以不再对之后启动的虚拟机有任何的顺序限定。通常每一次启动的虚拟机都会在满足vnfc目标使用量的前提下留有一定的余量,以确保vnfc具备一定的可靠性。不限定次序可以减少系统的处理功耗。第五方面,本发明提供了一种虚拟机启动设备,所述设备至少包括:处理器、存储器和总线;所述处理器、所述存储器通过所述总线连接通信;所述存储器存储有程序和指令,所述处理器调用所述存储器中的程序和指令,用于实现上述任意一种可能的设计方法与等同方法。现有技术中,为了避免虚拟机的启动风暴,需要限制同时启动的虚拟机数量,因此在存在启动数量的约束下,通常按照主机或者vnf的顺序启动虚拟机,这样会导致实现某种特定业务(目标业务)的必备的多种类型的vnfc不能快速启动齐全,从而导致业务启动效率较低。而在本发明实施例中,通过获取虚拟机中vnfc的类型和数量分布情况,可以按照业务需求选择出待启动虚拟机并对待启动虚拟机编排顺序,该方法可以保证用于运行有特定业务或高优先级业务对应的vnfc类型的虚拟机优先被启动,而不再像现有技术中随机的批量启动,从而实现业务快速提供和业务处理能力的快速提升。附图说明图1为一种vnfc在虚拟机中的分布示意图;图2a为本发明实施例可以应用的nfv系统000的系统架构示意图;图2b为一种虚拟机共享物理资源示意图;图3为一种nfv网络中业务与vnfc的对应关系示意图;图4是本发明实施例中一种启动虚拟机的方法的流程示意图;图5是本发明实施例中一种会话控制业务中的vnf与vnfc的对应关系图;图6是本发明实施例中一种多业务场景下启动虚拟机的方法的流程示意图;图7a和图7b为采用现有技术和本发明方法对虚拟机进行编排的对比实例;图8是本发明实施例中一种启动虚拟机的装置结构示意图;图9为本发明实施例中一种虚拟机启动装置中的选择模块303示意图;图10为本发明实施例中另一种虚拟机启动装置中的选择模块303示意图;图11为本发明实施例中一种虚拟机启动的计算机结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参考图2a,为本发明实施例可以应用的nfv系统000的系统架构示意图。需要说明的是,该nfv系统只是举例说明,本发明的应用范围并不局限于此。图2a所示的nfv系统可以通过多种网络实现,例如数据中心网络、服务提供者网络、或者局域网(localareanetwork,lan)。如图2a所示,该nfv系统可以包括nfv管理和编制系统(managementandorchestrationsystem)028,nfv基础设施(nfvinfrastructure,nfvi)030,多个虚拟网络功能(vnf)008,多个网元管理系统(elementmanagementsystem,ems)022,服务、vnf和基础设施描述(service,vnfandinfrastructuredescription)系统026,以及一个或多个运营支撑系统/业务支撑系统(operationsupportsystem/businesssupportsystem,oss/bss)024。nfv管理和编制系统128可以包括编制器(orchestrator)002、一个或多个vnf管理器(vnfmanager)004,以及一个或多个虚拟基础设施管理器(virtualizedinfrastructuremanager)006。nfvi030可以包括计算硬件012、存储硬件014、网络硬件016组成的硬件资源层、虚拟化层、以及虚拟计算010(例如虚拟机)、虚拟存储018和虚拟网络020组成的虚拟资源层。计算硬件012可以为专用的处理器或通用的用于提供处理和计算功能的处理器。存储硬件014用于提供存储能力,该存储能力可以是存储硬件014本身提供的(例如一台服务器的本地内存),也可以通过网络提供(例如服务器通过网络连接一个网络存储设备)。网络硬件016可以是交换机、路由器和/或其他网络设备,网络硬件016用于实现多个设备之间的通信,多个设备之间通过无线或有线连接。nfvi030中的虚拟化层用于抽象硬件资源层的硬件资源,将vnf008和硬件资源所属的物理层解耦,向vnf提供虚拟资源。如图2a所示,虚拟资源可以包括虚拟计算010、虚拟存储018和虚拟网络020。虚拟计算010、虚拟存储018可以以虚拟机或其他虚拟容器的形式向vnf008提供,例如一个或多个vnf008可以部署在一台虚拟机上。虚拟化层通过抽象网络硬件016形成虚拟网络020。虚拟网络020,例如虚拟交换机(例如vswitches),用于实现多个虚拟机之间,或多个承载vnf的其他类型的虚拟容器之间的通信。网络硬件的虚拟化可以通过虚拟lan(vrituallan,vlan)、虚拟专用局域网业务(virtualprivatelanservice,vpls)、虚拟可扩展局域网(virtualextensiblelocalareanetwork,vxlan)或通用路由封装网络虚拟化(nerworkvirtualizationusinggenericroutingencapsulation,nvgre)等技术实现。oss/bss124主要面向电信服务运营商,提供综合的网络管理和业务运营功能,包括网络管理(例如故障监控、网络信息收集等)、计费管理以及客户服务管理等。vnf和基础设施描述系统026在etsigsnfv002v1.1.1标准中有详细介绍,本发明实施例在此不再赘述。nfv管理和编制系统028可以用于实现vnf008和nfvi030的监控和管理。编制器002可以与一个或多个vnf管理器004通信以实现与资源相关的请求、发送配置信息给vnf管理器004、以及收集vnf008的状态信息。另外,编制器002还可以与虚拟基础设施管理器006进行通信以实现资源分配,和/或实现虚拟化硬件资源的配置信息和状态信息的预留和交换。vnf管理器004可以用于管理一个或多个vnf008,执行各种管理功能,例如初始化、更新、查询、和/或终止vnf008。虚拟基础设施管理器006可以用于控制和管理vnf108和计算硬件012、存储硬件014、网络硬件016、虚拟计算010、虚拟存储018、虚拟网络020的交互。例如,虚拟基础设施管理器006可以用于执行资源向vnf008的分配操作。vnf管理器004和虚拟基础设施管理器006可以互相通信以交换虚拟化硬件资源配置和状态信息。nfvi030包含硬件和软件,二者共同建立虚拟化环境以部署、管理和执行vnf008。换句话说,硬件资源层和虚拟资源层用于向vnf008提供虚拟资源,例如虚拟机和/或其他形式的虚拟容器。如图2a所示,vnf管理器004可以与vnf008和ems022通信以执行vnf生命周期管理和实现配置信息/状态信息的交换。vnf008是至少一个网络功能的虚拟化,该网络功能之前是由物理网络设备提供的。在一种实现方式下,vnf008可以是一个虚拟化的移动管理实体(mobilitymanagemententity,mme)节点,用于提供典型的非虚拟化的mme设备提供的所有网络功能。在另一种实现方式下,vnf008可以用于实现非虚拟化的mme设备上提供的全部组件中的部分组件的功能。一个虚拟机(或其他形式的虚拟容器)上可以部署有一个或多个vnf008。ems022可以用于管理一个或多个vnf。mme是3gpp(3rdgenerationpartnershipproject)协议lte(longtermevolution)接入网络的关键控制节点,它负责空闲模式的ue(userequipment)的定位,传呼和中继,简单的说mme负责信令处理部分。当一个ue初始化并且连接到该mme时,该mme负责为这个ue选择一个sgw(servinggateway)。mme还用于通过和hss(homesubscriberserver)交互认证一个用户,为一个用户分配一个临时id(identifier)。mme也支持在法律许可的范围内进行拦截和监听。本发明中涉及到对虚拟网络功能的编排和管理,因此本发明所涉及的方法和装置主要对应于028虚拟网络功能管理和编排系统。本发明中首先需要关注的是nfv网络中vnfc的分布情况,大型的nfv网络会运行大量的虚拟机,这些虚拟机可以共享一些物理资源,物理资源包括主机和共享存储,例如。如图2b所示,vm0和vm1共享主机1,vm2和vm3共享主机2,vm4和vm5共享主机3,vm6和vm7共享主机4,vm0、vm1、vm2、vm3、vm4、vm5、vm6和vm7共享存储资源。vnfc组件运行在虚拟机上,通常多个虚拟机会运行相同的vnfc,从而提供更强的业务处理能力或者更高的业务可靠性,有些虚拟机也会运行多个不同的虚拟化网络功能组件,如图2b所示,vm0和vm2均运行vnfc000和vnfc001,vm1和vm3运行vnfc002,vm4和vm5运行vnfc010,以及vm6和vm7运行vnfc010。在实际应用中,nfv网络需要正常提供一个或多个网络业务(简称业务),每一个网络业务都对应有一个特定的vnfc集合,因此上述nfv网络就需要一个或多个特定的vnfc集合正常工作。不同类型业务的vnfc集合一般不尽不同。例如,如图3所示,业务0需要{vnfc000,vnfc001,vnfc010,vnfc011}这个集合中vnfc来共同实现,业务1需要{vnfc000,vnfc002,vnfc020,vnfc021}这个集合中的vnfc来共同实现。其中,vnfc000,vnfc001和vnfc002属于vnf00,vnfc010和vnfc011属于vnf01,vnfc020和vnfc021属于vnf02;值得注意的是,不同的vnf通常不会对应有相同的vnfc。具体实现过程中,一个大的nfv网络能够提供众多的网络业务,如语音业务、融合通信rcs(短消息、图片共享)业务等等。对于任何一个特定的业务,nfv网络都需要一个特定的vnfc集合,该集合中至少包含一种类型的vnfc,并且vnfc集合中的vnfc种类各不相同;该集合中的所有vnfc共同组合实现这一特定的网络业务,且缺一不可。现有技术中,为了避免虚拟机的启动风暴,需要限制同时启动的虚拟机数量,因此在存在启动数量的约束下通常按照主机或者vnf的顺序启动虚拟机,这样会导致实现某种特定业务(目标业务)的必备的多种类型的vnfc不能快速启动齐全,从而导致业务启动效率较低。在虚拟机的集中启动的过程中或者在虚拟机大片出现故障需要恢复的场景中,该问题尤为需要解决。因此为了解决该问题,本文提供了一种启动虚拟机的方法和装置,能够根据vnfc在虚拟机中的分布情况对虚拟机的启动顺序进行合理的编排规划,使得能够在尽量短的时间内能够恢复目标业务。满足目标业务需求主要包括以下两个方面:1)目标业务能够尽快实现,提供目标业务的全套vnfc能够启动齐全;例如若目标业务为业务0,则需要vnfc000、vnfc001、vnfc010、vnfc011这四种vnfc启动齐全,使业务0的功能得以实现或恢复。2)目标业务的每种vnfc的数量尽快达到预设数量,以满足对目标业务服务的数量需求;例如若目标业务为业务1(业务1对应的vnfc包括vnfc000、vnfc002、vnfc020、vnfc021),服务商通过对用户使用习惯的大量统计得出vnfc000、vnfc002、vnfc020、vnfc021的预计运行数量,通常每一种vnfc的预计数量各不相同,大部分时间用户可能是在利用vnfc000,仅有小部分的时间在利用vnfc002,假设服务商所期望的vnfc000、vnfc002、vnfc020、vnfc021的数量分别为100个、30个、20个、10个;此时服务商则需要尽快启动一些虚拟机以使得vnfc000、vnfc002、vnfc020、vnfc021最终在已启动虚拟机中运行的个数分别达到100个、30个、20个、10个。在没有启动齐全的过程中,服务商希望vnfc000、vnfc002、vnfc020、vnfc021的数量比例能够接近100:30:20:10,以充分利用当前已启动虚拟机中有限数量的vnfc000、vnfc002、vnfc020、vnfc021。由于本发明的应用场景按照需求不同可以涉及到单一业务类型和多业务类型,因此下文也将主要针对这两种场景进行分开阐述。一.单一业务场景单一业务类型需求场景包括两种情况:一种是指nfv网络只有一种业务优先级sla(servicelevelagreement,服务水平协议)可用度级别的业务,网络中不存在其他不同业务优先级的业务,网络中所有的虚拟机都支持这一种优先级业务类型的业务。另一种是指nfv网络中存在多种业务,网络中的虚拟机中含有不同业务对应的vnfc,但是本次启动虚拟机的目的只为了实现其中一种特定的业务。请参阅图4,图4是本发明实施例中一种启动虚拟机的方法的流程示意图。该方法100包括:步骤101:根据第一网络业务,确定n个类型的虚拟化网络功能组件vnfc,其中,第一网络业务为虚拟机能够实现的众多网络业务中的任意一种网络业务,如语音或多媒体传输等;这n个类型构成第一vnfc集合,n为正整数;步骤102:获取这n个类型的vnfc与虚拟机的分布关系,该分布关系描述了第i类型的vnfc分布在目标查询范围内每个虚拟机中的数量;其中,每个虚拟机包括已启动虚拟机和未启动虚拟机,第i类型为上述n个类型中的一个,i的取值包括不大于n的所有正整数;未启动虚拟机即还没有上电运行的虚拟机,可以包括系统自动检测到的由于故障需要重启的虚拟机,也可以包括系统初始化阶段需要启动的虚拟机;已启动虚拟机可以包括已经执行完启动动作的虚拟机以及在执行本次启动操作之前就已经在运行工作的虚拟机。值得注意的是,本申请文件中所指的待启动虚拟机是指从未启动虚拟机中已经被选择出来的,被编排即将启动的虚拟机。因此,整个虚拟机系统在方法执行前的组成包括:已启动虚拟机(数量可以为0)和未启动虚拟机;整个虚拟机系统在方法执行过程中的组成包括:已启动虚拟机、待启动虚拟机、和未启动虚拟机。步骤103:根据102中获得的分布关系,从未启动的虚拟机中选择至少一个未启动虚拟机,使得第一组虚拟机中所含有的第i类型的vnfc的数量总和满足相应的预设数量,第一组虚拟机集合包括已启动虚拟机和选出的至少一个未启动虚拟机。其中,至少一个未启动虚拟机可以作为待启动虚拟机集合。步骤104:启动103中确定的至少一个待启动虚拟机。以下以第一业务为例进行说明,第一业务对应的vnfc集合为{vnfc1,vnfc2,vnfc3,vnfc4},其中,第一业务并非某一特定业务也不是限定次序,而是一种业务的泛指,在实现方法的原理上可以进行等同替换的任何业务都应属于本发明所保护的范围。作为可选的,步骤102可以具体为:任意一个虚拟机的属性信息表中包含一个vnfc字段,这一个vnfc字段记录了所述任意一个虚拟机中运行的第i类型的vnfc数量;读取这一个vnfc字段,得到所述任意一个虚拟机中运行的第i类型的vnfc数量。通常这个属性信息表是虚拟机在创建时生成的,可以设置一个专门的vnfc字段,或替换现有的某个字段,来记录虚拟机与vnfc的对应关系。如下表所示。字段名称描述vmtypenamevm类型名image虚拟机加载运行的软件包cpuresource需要的cpu资源memoryresource需要的内存资源volumeresource需要的存储资源vnfcvm上运行的vnfc类型及数量(列表)…其他字段作为可选的,步骤102也可以具体为:任意一个虚拟机中含有软件包,软件包中记录第i类型的vnfc的数量;所述任意一个虚拟机通过加载软件包获取到所述任意一个虚拟机中含有第i类型的vnfc的数量,获知虚拟机与vnfc的对应关系。软件包中的描述文件如下表所示。字段名称描述imagename软件包名称vnfc软件包包含的vnfc类型及数量(列表)…其他字段上述虚拟机与vnfc的对应关系可以包含一个虚拟机标识和在该虚拟机上运行的所有vnfc类型标识,不仅可以得到虚拟机中运行vnfc的情形,如:vm0{10-vnfc000}表示vm0虚拟机中运行着10个vnfc000,vm1{10-vnfc000,20-vnfc001,30-vnfc100}表示vm1虚拟机中运行着10个vnfc000、20个vnfc001、30个vnfc100;还可以得到vnfc在虚拟机中的分布情形,如:vnfc000{10-vm0,20-vm1,30-vm3}表示vnfc000分布在vm0、vm1、vm3中的数量各为10、20、30;vnfc001{15-vm2,25-vm3}表示vnfc001分布在vm2、vm3中的数量各为15、25。需要说明的是,本发明技术方案不限定虚拟机与vnfc的对应关系配置数据具体的配置方式或者存储方式以及字段的表现方式。作为可选的,步骤103可以具体为:根据102中获得的分布关系,执行“业务保障操作”,其中“业务保障操作”可以具体为:判断已启动虚拟机中是否已经包含了第一业务对应的4个vnfc类型。若判断结果为否,则确定出已启动虚拟机中还没有覆盖到4个vnfc类型中的哪些,也就是还需要运行哪些类型的vnfc才能够实现第一业务;然后从未启动虚拟机中选出l个待启动虚拟机(l不大于4),这l个待启动虚拟机含有已启动虚拟机中还未包含的第一vnfc集合中的k个vnfc类型(k不大于4,且不小于l)。例如,第一业务需要{vnfc1,vnfc2,vnfc3,vnfc4}这个集合中的vnfc来共同实现,如果已经启动的虚拟机中只运行有vnfc1和vnfc3,此时第一业务是实现不了的,因为还需要有vnfc2和vnfc4;此时就要选择含有vnfc2和含有vnfc4的未启动虚拟机,并且可以优先选择同时运行有vnfc2和vnfc4的未启动虚拟机,并且含有vnfc2和vnfc4的数量越多越好;如果不存在同时含有vnfc2和含有vnfc4的未启动虚拟机,可以先挑选含有vnfc2数量最多的一个未启动虚拟机,然后再挑选含有vnfc4数量最多的一个未启动虚拟机。具体的选择顺序不限定,总之,已启动虚拟机中和已编排启动的虚拟机中没有哪一种vnfc,就选择一个含有该种vnfc数量最多的一个未启动虚拟机,直到已启动的虚拟机和这l个虚拟机中含有第一业务对应的所有种类的vnfc。作为一种可选的实现方式,在编排了l个待启动虚拟机之后,再从未启动虚拟机中选择出h个待启动虚拟机,其中,已启动虚拟机、l个待启动虚拟机、h个待启动虚拟机中所含有的第一业务对应的所有种类的vnfc的数量都满足相应的预设数量。若判断结果为是,则从未启动虚拟机中选出l个待启动虚拟机;所述已启动虚拟机和所述l个待启动虚拟机中所含有的第一业务对应的所有种类的vnfc的数量都满足相应的预设数量。这一实现思路可以通过简单的加法原理来实现。例如vnfc1,vnfc2,vnfc3,vnfc4的数量分别达到400,300,200,100个以及以上。作为另一种可能的设计中,步骤103可以具体为:根据步骤102中获得的分布关系,执行“业务高效操作”,其中“业务高效操作”可以具体包括:步骤1031:确定第i类型的vnfc的实际数量权重其中,qi为第二组虚拟机中第i类型的vnfc的数量总和,qj为第二组虚拟机中第j类型的vnfc的数量总和,j的取值包括不大于n的所有正整数;本发明中所指的第二组虚拟机包括当前已启动的虚拟机和当前已经选择完的待启动虚拟机。步骤1032:根据第i类型的vnfc的实际数量权重αi与第i类型的vnfc的预设数量权重,查找出实际数量权重低于自身预设数量权重程度最大的第k类型;第k类型为所述n个类型中的一个;步骤1033:选择一个含有第k类型的vnfc的虚拟机作为新的待启动虚拟机;若含有第k类型的vnfc的数量最多的虚拟机为多个时,选择单元3033可以从中选择一个含有n个类型中vnfc类型数量最多的虚拟机;或者,选择一个含有第一业务的vnfc数量总和最多的虚拟机,第一业务的vnfc为上述n个vnfc类型中各种类型的vnfc。重复执行步骤1031、步骤1032和步骤1033,直到第一组虚拟机中所含有的第i类型的vnfc的数量总和满足相应的预设数量。作为补充说明,本申请文件中的第二组虚拟机也可以理解为每次进行新一轮运算时的当前第一组虚拟机,即第一组虚拟机在每次编排选择出来一个新的待启动虚拟机后,都是实时更新的。如下为举例说明:在具体实现的过程中,最简单的情形是存在一个未启动虚拟机,该未启动虚拟机中所包含的各组件的数量足够的多使得能够满足预定的数量。然而这种情形极为少见或者说几乎不存在,绝大多数的实际情况是为了运行达到预定数量的各种vnfc,往往要启动很多个未启动虚拟机,通常至少为几百个,这个时候就面临一个问题,在众多的未启动虚拟机中需要先启动哪些。正如上文提到的,服务商通过对用户习惯的大量统计会得出满足用户需求的各组件的基本数量关系。仍以第一业务需要vnfc1,vnfc2,vnfc3,vnfc4的预定数量分别为400,300,200,100个为例;然而这仅是一个最终值,已启动的虚拟机可能无法立刻达到这种数量关系,待启动虚拟机在逐渐地进行启动,数量会逐渐地逼近这个预定数量。从最终的数量也不难得出vnfc1、vnfc2、vnfc3、vnfc4这4种组件在数量比例满足400:300:200:100(即4:3:2:1)的条件时,第一业务的实现效率是最高的。这伴随着每一种组件都有一个预定的数量权重,vnfc1、vnfc2、vnfc3、vnfc4的预定数量权重分别为:rvnfc1=4/(1+2+3+4)=0.4;rvnfc2=3/(1+2+3+4)=0.3;rvnfc3=2/(1+2+3+4)=0.2;rvnfc4=1/(1+2+3+4)=0.1。由于在实际情况中,当前正在编排启动的待启动虚拟机(即当前已经选择完的待启动虚拟机)和当前已启动的虚拟机中含有的各种vnfc的数量并不是时时刻刻完全符合比例的,绝大多数时间内是处在一个动态的波动中,因此业务的实现效率取决于这些vnfc中实际数量权重相对预设数量权重偏少的那一种。首先需要确定当前的vnfc1、vnfc2、vnfc3、vnfc4各自的实际数量权重,比如某一时刻第二组虚拟机(即当前已启动的虚拟机和当前正在编排启动的待启动虚拟机)中运行的vnfc1、vnfc2、vnfc3、vnfc4的实际数量为50、10、10、30,相应的实际数量权重为:r’vnfc1=50/(50+10+10+30)=0.5;r’vnfc2=10/(50+10+10+30)=0.1;r’vnfc3=10/(50+10+10+30)=0.1;r’vnfc4=30/(50+10+10+30)=0.3。这些vnfc在第二组虚拟机中实际数量权重相对预设数量权重的偏离程度可以用公式s=(r’-r)/r来进行评价。则该时刻,vnfc1、vnfc2、vnfc3、vnfc4在第二组虚拟机中的实际数量权重相对预设数量权重的偏离程度对应为:svnfc1=(0.5-0.4)/0.4=+25%;svnfc2=(0.1-0.3)/0.3=-66.7%;svnfc3=(0.1-0.2)/0.2=-50%;svnfc4=(0.3-0.1)/0.1=+200%;不难看出,偏离结果为正表明该种vnfc的数量过剩,且正值结果越大,过剩程度越大;偏离结果为负表明该种vnfc的数量偏少,且负值结果越小,表明稀缺程度越大。本例中可以看出就当下vnfc的数量分布情况而言,第二组虚拟机中vnfc1和vnfc4相对数量过剩,尤其vnfc4数量更是相对偏多,而vnfc2、vnfc3数量相对偏少,尤其是vnfc2偏少的程度最大。所以如果想要尽快地使第一业务能够充分利用当前vnfc的资源,使得当前vnfc的利用效率尽快提升的方法就是首先增加vnfc2的数量。因此此时更需要选择出含有vnfc2的未启动虚拟机,并且优先选择含有vnfc2数量最多的虚拟机,如果含有vnfc2的数量最多的未启动虚拟机同时存在多个,那么这些未启动虚拟机中同时能含有其他的vnfc种类越多、或数量越多,被优先选择启动的机会也就越大。比如优先选择含有最多vnfc2、且含有vnfc3的未启动虚拟机,或者优先选择含有最多vnfc2且含有vnfc1和vnfc3和vnfc4的未启动虚拟机。总之,能够尽快补充稀缺vnfc资源的虚拟机具有更高的被选择优先级,尤其是能同时补充所有稀缺vnfc资源的虚拟机。每选择完一个新的待启动虚拟机后,第二组虚拟机的vnfc分布情况就会更新,系统也会对第二组虚拟机中的vnfc的实际数量权重相对预设数量权重的偏离程度进行计算更新,每次更新后的结果也是千差万别的,所以在虚拟机逐个被选择编排进行的过程中,各vnfc组件的偏离程度的正负与偏离大小都是动态变化的,每一次更新计算后所采用的优先选择机理都如上所述,使得在选择的过程中,vnfc能发挥当前各自数量下的最大效能,直到第一组虚拟机中所有类别的vnfc都达到了预定数量,比如连续启动了若干个虚拟机后,vnfc1、vnfc2、vnfc3、vnfc4所需要的数量都分别达到了400、300、200、100个,代表着此时第一组虚拟机已经能够满足用户对第一业务的需求,那么此后被选择的待启动虚拟机就可以不再受到任何顺序的约束而随机进行了。相应地,在待启动虚拟机的选择过程中存在着一个先后选择顺序,这些待启动虚拟机的启动顺序也如同上述先后选择顺序一样进行。例如,在重复执行上述步骤1031-步骤1033的过程当中,每执行一次步骤1031-步骤1033,就会选择出一个相对最合适的待启动虚拟机出来,可以被编排列入到启动序列中,多次执行后,待启动的虚拟机也就存在着被选择的先后顺序,相应地,越先被选择的待启动虚拟机在启动序列中排列越靠前,就会越先被启动。虚拟机的启动机制按照该先后顺序进行启动选择出来的待启动虚拟机。作为可选的,一种虚拟机的启动方式为:起初会得到一个待启动虚拟机的编排启动顺序,接下来会按照该启动顺序对待启动虚拟机进行启动操作,若待启动虚拟机数量过多,例如超出了启动风暴的限制数量,假设限制数量为c,因此会有c个虚拟机迅速启动;由于每个虚拟机自身运行状况的千差万别,使得各自的启动时间也长短不一;若某一时刻同时有c个待启动虚拟机在启动了,则排序在这c个待启动虚拟机后面的待启动虚拟机不能立即启动,而是需要当前正在启动的某个虚拟机启动完成后,才能启动待启动序列中的下一个虚拟机,类似于堆栈溢出的方式,这种方法无疑可以解决虚拟机的启动风暴的限制下,仍能发挥已启动虚拟机中vnfc的最大效能。上述计算偏离程度的算法仅仅是一种举例说明,还可以根据数学原理将其衍生和变形成其他的计算方式,本发明实施例中不进行详细的一一列举。此外,在选择虚拟机的过程中,有可能会遇到满足条件的未启动虚拟机为多个时,比如满足某一条件的两个未启动虚拟机中运行的vnfc的种类、和各自的数量都完全一样,那么此时可以随机选择当中的一个。任何进行简单的、不加创造性的等同替换方案理应属于本发明所保护的范围。在具体实现过程中,步骤103的实现方式还可以有很多种,可因系统预先设置的业务策略的不同从而衍生出多种实现方式。例如,在选择至少一个待启动虚拟机的过程中(不限定全过程,包括一些局部过程):可以按照含有vnfc1、vnfc2、vnfc3、vnfc4最多的顺序对当前未启动虚拟机进行重复轮询选择;也可以按照虚拟机中含有vnfc总数量从多到少的顺序对当前未启动虚拟机进行轮询选择;也可以按照虚拟机中含有vnfc种类数量从多到少的顺序当前未启动虚拟机进行轮询选择;直到已启动虚拟机和已编排启动的待虚拟机中含有的第i类型的vnfc达到预定数量。值得说明的是以上任意情况出现多个虚拟机具备相同的筛选条件时,可以采用随机的方式择一选择,也可以参照一定的算法规定。本发明实施例提供了一种启动虚拟机的方法,通过根据vnfc与虚拟机的分布关系,有针对性地按照一定的规则选择出待启动虚拟机,并按选择的先后顺序进行相应地启动,能在较短的时间内将业务的性能提升并充分利用当前已启动虚拟机中的vnfc资源,使得vnfc在资源较少的条件下,能够实现效率利用最大化。为了更加清楚地理解本发明,以下将以一个实际应用的示例进行详细说明。请参见图5,图5是本发明实施例中一种会话控制业务中的vnf与vnfc的对应关系图。在一种简单的ims会话控制业务中,终端ue1发起语音呼叫,语音信号经由ims(ipmultimediasubsystem)ip多媒体系统到达终端ue2。ims包括p-cscf(proxy-callsessioncontrolfuntion),i-cscf(interrogatingcallsessioncontrolfunction),s-cscf(servingcallsessioncontrolfunction)。1)代理cscf(p-cscf)p-cscf即代理呼叫会话控制功能。p-cscf是连接ims终端和ims网络的入口节点,所有ims终端发起和终止于ims终端的会话发起协议sip(sessioninitiationprotocol)信令都要通过p-cscf。p-cscf实际上扮演了一个代理服务器的角色,它接收sip请求与响应,并向ims网络或ims用户转发。p-cscf可以处于拜访网络,也可以处于归属网络。2)查询cscf(i-cscf)i-cscf即询问呼叫会话控制功能。i-cscf是处于拜访网络中的ims终端进入本地ims网络域的入口节点。i-cscf路由外地终端的sip请求和响应至本地s-cscf。i-cscf处于归属网络,在特殊情况下,也可以处于拜访网络。3)服务cscf(s-cscf)s-cscf即服务呼叫会话控制功能。s-cscf是sip信令平面的中心节点,其作用类似软交换系统中的软交换设备。s-cscf为ims终端执行会话控制服务,并保持会话状态。所有ims终端发出和接收的sip信令都要通过s-cscf,它检查这些sip信令,决定是否需要访问应用服务器,并将信令转发至最终目的地。s-cscf总是处于归属网络。p-cscf,i-cscf,s-cscf都有完成语音呼叫业务所必需的:dpu、scu、rdb。其中,dpu(dispatchingunit)分发单元,是cscf系统对外的出入口,用于完成sip消息的分发;scu(sessioncontrolunit)会话处理单元,用于完成各逻辑网元的业务处理功能;rdb(remotedistributeddatabase)分布式存储单元,用于完成用户数据和会话数据的分布式存储,实现数据与程序的分离。在语音呼叫业务中,对应的vnf为p-cscf、i-cscf、s-cscf。p-cscf、i-cscf、s-cscf各自有相应的进程/软件模块,这个进程/软件模块就是vnfc,例如p-cscf中的dpu00、scu01、rdb02,i-cscf中的dpu10、scu11、rdb12,s-cscf中的dpu20、scu21、rdb22。当然p-cscf、i-cscf、s-cscf中还会有一些其它附加功能的vnfc,由于在语音呼叫中不是必需的,因此本实施例中不予以列举和赘述。在本发明的方案中,根据语音呼叫业务,确定出的vnfc类型为dpu00、scu01、rdb02、dpu10、scu11、rdb12、dpu20、scu21、rdb22。例如某运营商需要完成一项语音呼叫业务部署工作,预期dpu00、scu01、rdb02、dpu10、scu11、rdb12、dpu20、scu21、rdb22的个数分别为1000、2500、1500、600、1500、900、400、1000、600;即dpu00、scu01、rdb02、dpu10、scu11、rdb12、dpu20、scu21、rdb22的相应的预设权重分别为:10%、25%、15%、6%、15%、9%、4%、10%、6%。虚拟网络功能管理和编排系统通过读取各个虚拟机的属性信息来获知上述9个vnfc在各个虚拟机中的分布关系,即上述9个vnfc在已启动的虚拟机中的分布数量各有多少,以及上述9个vnfc在未启动的虚拟机中的分布数量各有多少。并计算dpu00、scu01、rdb02、dpu10、scu11、rdb12、dpu20、scu21、rdb22在已启动虚拟机中的初始实际权重。选择出初始实际权重低于预设数量权重、并且偏离程度最大(相对最为稀缺)的一种vnfc,例如scu01。那么根据分布关系来确定出含有scu01的未启动虚拟机有哪些,并从中选择出含有scu01数量最多的一个未启动虚拟机作为新的待启动虚拟机,如果scu01数量最多且数量一样的未启动虚拟机有多个时,可以从中选择出一个含有这9个vnfc数量总和最多的一个,或者从中选择出一个含有这9个vnfc中类型最多的一个,倘若有多个未启动虚拟机含有vnfc的类型以及各类型数量都一样,则可以采取随机的方式选择一个。选择完这个新的待启动虚拟机后,第二组虚拟机新增了一个虚拟机,因此dpu00、scu01、rdb02、dpu10、scu11、rdb12、dpu20、scu21、rdb22在第二组虚拟机中的数量发生了变化,因此实际权重被更新;因此基于新的实际权重,依照与上述方法等同的规则选择出一个新的待启动虚拟机;每选择出一个虚拟机后,基于新的实际权重,依照同样的规则选择出新的待启动虚拟机,反复轮询执行多次,直到第一组虚拟机中dpu00、scu01、rdb02、dpu10、scu11、rdb12、dpu20、scu21、rdb22的个数分别达到1000、2500、1500、600、1500、900、400、1000、600以上,如果后续还有备用的未启动虚拟机需要编排启动,可以继续遵照与上述方法等同的规则继续进行虚拟机的选择,或者可以采取随机的方式编排启动的顺序。二.多业务场景多业务是指nfv网络支持多种不同业务优先级的业务,不同业务类型的业务vnfc集合不相同。在有些场景下,大量运行高优先级业务vnfc的vm与运行低优先级业务vnfc的vm同时启动时,先启动哪些虚拟机要考虑的因素就会更加复杂,本发明会根据用户对业务的实际需求策略给出相应的技术方案。多业务类型可以指:nfv网络中有a种业务优先级sla(servicelevelagreement,服务水平协议)可用度级别的业务,本次启动虚拟机的目的为了实现其中b种特定的业务,其中b小于等于a,a、b均为正整数。例如某一次批量启动虚拟机为了满足用户对第二业务、第三业务和第四业务的需求,其中第二业务需要{vnfc21,vnfc22,vnfc23,vnfc24}这个集合中vnfc来共同实现,第三业务需要{vnfc31,vnfc32,vnfc33}这个集合中vnfc来共同实现,第四业务需要{vnfc41,vnfc42}这个集合中vnfc来共同实现。可见多业务需求中,涉及到的vnfc种类繁多,因此现有的虚拟机启动方式会因为vnfc的不确定分布而使得启动的过程中不能充分利用已经启动的vnfc资源,因此本发明对于多业务需求的环境下也进行了虚拟机的启动规划,具体方案如下。请参阅图6,图6是本发明实施例中一种多业务场景下启动虚拟机的方法的流程示意图。该方法应用于具有m个网络业务需求的网络功能虚拟化nfv网络,其中m为大于1的自然数;该方法200包括:步骤201:根据第x业务,确定与第x业务对应的n(x)个类型的虚拟化网络功能组件vnfc;其中,所述第x业务为m个网络业务中的一个网络业务;所述n(x)个类型的vnfc能够共同实现所述第x业务,n为正整数;x的取值包括不大于m的所有正整数;步骤202:获取所述n(x)个类型的vnfc与虚拟机的分布关系;分布关系描述了第xi类型的vnfc分布在每个虚拟机中的数量;其中,每个虚拟机包括已启动虚拟机和未启动虚拟机,第xi类型为所述n(x)个类型中的一个,xi的取值包括不大于所述n(x)的所有正整数。步骤203:根据202中的分布关系,从未启动的虚拟机中选择至少一个待启动虚拟机,使得第一组虚拟机中所含有的第xi类型的vnfc的数量总和满足相应的预设数量,第一组虚拟机集合包括已启动虚拟机和所述至少一个待启动虚拟机;其中,至少一个未启动虚拟机可以作为待启动虚拟机集合。步骤204:启动203中确定的至少一个待启动虚拟机。在具体实现过程中,可选的,若策略中对于某一业务没有绝对的优先级,例如第二业务、第三业务、第四业务并没有区分谁具有绝对的优先级,此时并不在意某业务一定要优先达到预期的性能标准,而是以每一种业务下的各个类型的vnfc达到各自预计的数量为目标。这种情形下,步骤203可以具体为:根据步骤202中获得的分布关系,执行“业务高效操作”,其中“业务高效操作”可以具体包括:步骤2031a:确定第xi类型的vnfc的实际数量权重其中,qxi为第二组虚拟机中第xi类型的vnfc的总和,qxj为第二组虚拟机中第xj类型的vnfc的总和,xj的取值包括不大于n(x)的所有正整数;第二组虚拟机包括当前已启动的虚拟机和当前已经选择完的待启动虚拟机;步骤2032a:根据第xi类型的vnfc的实际数量权重αxi与第xi类型的vnfc的预设数量权重,查找出实际数量权重低于自身预设数量权重程度最大的第k类型;步骤2033a:选择一个含有所述第k类型的vnfc的未启动虚拟机作为新的待启动虚拟机;重复执行步骤2031a、步骤2032a和步骤2033a,直到第一组虚拟机中所含有的第xi类型的vnfc的数量总和满足相应的预设数量。作为补充说明,本申请文件中的第二组虚拟机也可以理解为每次进行新一轮运算时的当前第一组虚拟机,即第一组虚拟机在每次编排选择出来一个新的待启动虚拟机后,都是实时更新的。在另一种具体实现过程中,若策略中对于某一业务有绝对的优先级,例如第二业务大于第三业务大于第四业务,首先一定要使得第二业务满足预期的业务能力,即使得第二业务下面的各种vnfc的数量都达到相应的预设数量,之后才去关注第三业务,使得第三业务下面的各种vnfc的数量都达到相应的预设数量,再去关注第四业务,使得第四业务下面的各种vnfc的数量都达到相应的预设数量。这种情形下,步骤203可以具体包括:确定m个业务的优先级的高低顺序,并按照优先级的高低顺序依次对m个业务中的各个业务执行“业务拉通操作”;所述“业务拉通操作”包括:步骤2031b:确定当前业务中第xi类型的vnfc的实际数量权重其中,qxi为第二组虚拟机中当前业务中第xi类型的vnfc的总和,qxj为第二组虚拟机中当前业务中第xj类型的vnfc的总和,xj的取值包括不大于当前业务对应的n(x)的所有正整数,第二组虚拟机包括当前已启动的虚拟机和当前已经选择完的待启动虚拟机;步骤2032b:根据当前业务中第xi类型的vnfc的实际数量权重αxi与当前业务中第xi类型的vnfc的预设数量权重,查找出实际数量权重低于自身预设数量权重程度最大的第k类型;步骤2033b:选择一个含有第k类型的vnfc的未启动虚拟机作为新的待启动虚拟机;重复执行步骤2031b、步骤2032b和步骤2033b,直到第一组虚拟机中所含有当前业务的第xi类型的vnfc的数量总和满足相应的预设数量。在上述方法的具体实现过程中,在未启动虚拟机中选择一个含有第k类型的vnfc的虚拟机作为新的待启动虚拟机时,可以选择一个含有第k类型的vnfc的数量最多的未启动虚拟机,若含有第k类型的vnfc的数量最多的未启动虚拟机为多个时,则从中选择一个含有vnfc类型数量最多的未启动虚拟机;或者从中选择一个含有vnfc(不分类别)数量最多的未启动虚拟机;此外,在选择虚拟机的过程中,有可能会遇到运行vnfc情形完全一样的未启动虚拟机为多个情形,比如满足某一条件的两个未启动虚拟机中运行的vnfc的种类、和各自的数量都完全一样,那么此时可以选择随机选择当中的一个。在重复执行上述步骤2031a-步骤2033a或者步骤2031b-步骤2033b的过程当中,每执行一次步骤2031a-步骤2033a或者步骤2031b-步骤2033b,就会选择出一个相对最合适的未启动虚拟机出来,并列入到待启动序列中,多次执行后,被选择出来的待启动的虚拟机也就在序列中存在着选择的先后顺序,虚拟机的编排启动机制使得这些被选中的待启动虚拟机后续能够按照该先后顺序进行启动。在具体实现过程中,步骤203在具体执行的过程中,还要参考系统预先制定的策略。步骤203可因预先设置的多业务策略的不同从而衍生出多种实现方式。例如:选择该至少一个待启动虚拟机的过程中,可以针对多个业务对应的每种vnfc,按照含有当前类型vnfc数量最多的顺序在未启动虚拟机中重复轮询选择;也可以按照虚拟机中含有vnfc总数量从多到少的顺序从未启动虚拟机中重复轮询进行选择;也可以按照虚拟机中含有vnfc种类数量从多到少的顺序从未启动虚拟机中重复轮询进行选择;值得说明的是以上任意情况出现多个未启动虚拟机具备相同的筛选条件时,均可以采用随机的方式择一启动。本发明实施例可以应用于网络初始化阶段,即所有的虚拟机均未运行,此时可以按照业务,来启动虚拟机;本发明实施例也可以应用于网络运行阶段,例如,在现有技术中按照虚拟机顺序或者主机顺序启动了虚拟机之后,在网络的运行阶段,如果有多个新加入的虚拟机,或者由于大面积中断故障后恢复的虚拟机,需要按照业务来启动新加入的虚拟机或者中断的虚拟机。在本发明实施例中,确定第一业务对应的n个vnfc类型,根据n个类型的vnfc与虚拟机的分布关系,从需要启动的虚拟机中确定出待启动虚拟机,并启动待启动虚拟机。本发明可以尽快启动运行特定业务对应的vnfc类型的虚拟机,从而可以解决限制虚拟机启动数量避免虚拟机启动风暴所带来的,业务长时间无法提供或者业务处理能力长时间无法提升的问题,从而实现业务快速提供或业务处理能力的快速提升。另外,上述方法中所提到的单/多业务策略能够通过当前虚拟机中vnfc的数量状态,来选择出最稀缺的vnfc所在的未启动虚拟机,从而使得当前已启动虚拟机中所运行的当前业务下的vnfc在各个时段能够充分发挥利用效率,提高系统的效能。举一个比较简单的例子,业务0对应的vnfc类型为vnfc000、vnfc001、vnfc010、vnfc011,8个初始未启动虚拟机vm0-vm7中含有的vnfc状态如图7a所示(与业务0无关的vnfc在图中未视出)。如果按照现有技术按照虚拟机编号的顺序进行编排启动(如图7a)所示,需要在编排启动了vm0-vm6这7个虚拟机之后才可以使得业务0正常运行,如果按照本发明实施例中的方法,即按照当前选择业务0中最缺少的vnfc类型的虚拟机进行选择,只需要启动了vm0(或vm1)、vm2(或vm3)、vm4(或vm5)、vm6(或vm7)这4个虚拟机之后就可以使得业务0正常运行,一种可能的实现形式如图7b;从而本发明可以保证启动最少的未启动虚拟机即可尽快地提供业务,从而使得提供业务的时间缩短。请参阅图8,图8是本发明实施例中一种启动虚拟机的装置结构示意图。该装置300包括:确定模块301、获取模块302、选择模块303以及启动模块304。由于可能的实现方式较多,下文将继续以示例的方式对该装置进行说明,对于任何可以进行等同和替换的技术方案,都应属于本发明的保护范围内。示例1一种启动虚拟机的装置,该装置应用于具有单一网络业务需求的网络功能虚拟化nfv网络(单一业务类型需求场景如上文所述,该示例1继续以第一业务为例),该装置300包括:确定模块301,用于根据第一业务,确定n个类型的虚拟化网络功能组件vnfc;其中,第一业务为虚拟机能够实现的众多网络业务中的一种网络业务;这n个类型的vnfc能够共同实现所述第一业务,n为正整数;获取模块302,用于获取确定模块301确定的n个类型的vnfc与虚拟机的分布关系,该分布关系描述了第i类型的vnfc分布在每个虚拟机中的数量;其中,每个虚拟机包括已启动虚拟机和未启动虚拟机,所述第i类型为所述n个类型中的一个,i的取值包括不大于n的所有正整数;选择模块303,用于根据获取模块302获取到的分布关系,从未启动的虚拟机中选择至少一个待启动虚拟机,使得第一组虚拟机中所含有的第i类型的vnfc的数量总和满足相应的预设数量,第一组虚拟机集合包括已启动虚拟机和所述至少一个待启动虚拟机;启动模块304,用于启动选择模块303选择出来的至少一个待启动虚拟机。在具体实现的过程中,获取模块302获取所述n个类型的vnfc与虚拟机的分布关系的形式有很多种,典型的两种方式可参见上述实施例中的表1和表2所对应的实现方法。在具体实现的过程中,区别于传统的启动虚拟机装置,本发明中的选择模块303起着非常关键的作用,可以根据获取模块302获取到的分布关系来选择未启动虚拟机编排为待启动虚拟机。一种可选的方式是,运用加法理论,可以先挑选出y个未启动虚拟机,使得这y个虚拟机和已启动的虚拟机中运行的第i类型的vnfc总和达到相应的预定数量。选择模块303的实现方式有很多种,可因其内部存储或调用的业务策略的不同从而衍生出多种实现方式。仍以上述实施例中的第一业务为例,例如:按照vnfc1、vnfc2、vnfc3、vnfc4的顺序重复轮询选择(step1:选出含有vnfc1的未启动虚拟机;step2:选出含有vnfc2的未启动虚拟机,step3:选出含有vnfc3的未启动虚拟机;step4:选出含有vnfc4的未启动虚拟机;重复执行step1-step4,直到已启动虚拟机和被编排启动的待启动虚拟机中所含有的各种vnfc的数量能够满足第一业务对应的各种vnfc的预定数量),在轮询的过程中,由于含有vnfc1的虚拟机个数大于1,因此可以优先选择含有vnfc1数量最多的那个未启动虚拟机;对于其他种类的vnfc,同理。再例如,也可以按照虚拟机中含有vnfc总数量从多到少的顺序进行依次选择;也可以按照虚拟机中含有vnfc种类数量从多到少的顺序进行依次选择,值得说明的是以上任意情况出现多个未启动虚拟机具备相同的筛选条件时,均可以采用随机的方式择一选择。相应地,启动模块可以根据待启动虚拟机被选择的先后顺序依次对被选择的待启动虚拟机进行启动。相比于传统的虚拟机按序号启动方式,按照分布关系来选择虚拟机更有快速的针对性,使得第一业务的第i类型的vnfc总和达到预定的数量这一目标能够更快被满足,从而使得第一业务的业务能力能尽快满足预期效果。在一种可能的设计中,选择模块303可以根据获取模块302获得的分布关系,执行上述实施例中的“业务保障操作”、该方法对应的实例以及所有可以进行等同替换的实现方式。在另一种可能的设计中,选择模块303可以根据获取模块302获得的分布关系,执行上述实施例中的“业务高效操作”,即步骤1031-步骤1033所述的方法、该方法对应的实例以及所有可以进行等同替换的实现方式。在一种可能的设计中,选择模块303的形式可以请参阅图9,图9为本发明实施例中一种虚拟机启动装置中的选择模块303示意图,该装置应用于具有单一网络业务需求的网络功能虚拟化nfv网络,具体实施方式如下:选择模块303包括计算单元3031、确定单元3032、选择单元3033。计算单元3031用于确定所述第i类型的vnfc的实际数量权重其中,qi为第二组虚拟机中所述第i类型的vnfc的数量总和,qj为第二组虚拟机中第j类型的vnfc的数量总和,j的取值包括不大于n的所有正整数;第二组虚拟机包括当前已启动的虚拟机和当前已经选择完的待启动虚拟机;确定单元3032,用于根据所述第i类型的vnfc的预设数量权重与计算单元3031得到的第i类型的vnfc的实际数量权重αi,查找出实际数量权重低于自身预设数量权重程度最大的第k类型,第k类型为所述n个类型中的一个;选择单元3033,用于选择一个含有确定单元3032确定出的第k类型的vnfc的未启动虚拟机作为新的待启动虚拟机;可以选择一个含有第k类型的vnfc的数量最多的未启动虚拟机;若含有第k类型的vnfc的数量最多的未启动虚拟机为多个时,选择单元3033可以从中选择一个含有n个类型中vnfc类型数量最多的未启动虚拟机;或者,选择一个含有第一业务的vnfc数量总和最多的未启动虚拟机,第一业务的vnfc为上述n个vnfc类型中各种类型的vnfc。选择模块303还可以包括控制单元3034,用于控制计算单元3031、确定单元3032、选择单元3033按顺序依次循环工作,直到第一组虚拟机中所含有的第i类型的vnfc的数量总和满足相应的预设数量。在控制单元3034控制计算单元3031、确定单元3032、选择单元3033按顺序循环工作的过程中,存在选择单元3033对所述至少一个待启动虚拟机的先后选择顺序;选择模块303还可以包括顺序记录单元3035,顺序记录单元3035用于记录所述至少一个待启动虚拟机被选择单元选择的先后顺序;启动模块304按照顺序记录单元记录的先后顺序,对所述至少一个待启动虚拟机进行相应地启动。选择模块303在具体实现过程中,可因其内部存储或调用的策略的不同从而衍生出多种实现方式。例如,在选择至少一个待启动虚拟机的过程中(不限定全过程,包括一些局部过程):可以按照含有vnfc1、vnfc2、vnfc3、vnfc4最多的顺序对当前未启动虚拟机进行重复轮询选择;也可以按照虚拟机中含有vnfc总数量从多到少的顺序对当前未启动虚拟机进行轮询选择;也可以按照虚拟机中含有vnfc种类数量从多到少的顺序当前未启动虚拟机进行轮询选择;直到已启动虚拟机和已编排启动的待虚拟机中含有的第i类型的vnfc达到预定数量。值得说明的是以上任意情况出现多个虚拟机具备相同的筛选条件时,均可以采用随机的方式择一选择,也可以参照一定的算法规定。示例2一种启动虚拟机的装置,该装置应用于具有m个网络业务需求的网络功能虚拟化nfv网络,(多业务场景如上文所述,该示例2继续以m个网络业务为例)其中m为大于1的自然数;该装置300包括:确定模块301,用于根据第x业务,确定与所述第x业务对应的n(x)个类型的虚拟化网络功能组件vnfc类型;其中,第x业务为m个网络业务中的一个网络业务;这n(x)个类型的vnfc能够共同实现上述第x业务,n为正整数;x的取值包括不大于m的所有正整数;获取模块302,用于获取确定模块301确定的n(x)个类型的vnfc与虚拟机的分布关系;该分布关系描述了第xi类型的vnfc分布在每个虚拟机中的数量;其中,所述每个虚拟机包括已启动虚拟机和未启动虚拟机,所述第xi类型为所述第x业务对应的n(x)个类型中的一个,i的取值包括不大于n(x)的所有正整数;选择模块303,用于根据预设的多业务策略以及获取模块302获取到的分布关系,从未启动的虚拟机中选择至少一个待启动虚拟机,使得第一组虚拟机中所含有的第xi类型的vnfc的数量总和满足相应的预设数量,第一组虚拟机集合包括已启动虚拟机和所述至少一个待启动虚拟机;启动模块304,用于启动选择模块303选择出来的至少一个待启动虚拟机。在具体实现的过程中,获取模块302获取n(x)个类型的vnfc与虚拟机的分布关系的形式有很多种,如同上述示例1中获取模块302的描述,此处不再赘述。在一种可能的设计中,若策略中对于某一业务没有绝对的优先级,例如第二业务、第三业务、第四业务并没有区分谁具有绝对的优先级,此时并不在意某业务一定要优先达到预期的性能标准,而是以每一种业务下的各个类型的vnfc达到各自预计的数量为目标。这种情形下,选择模块303可以执行如同步骤2031a-2033a所述的方法、该方法所对应的实例以及所有可以进行等同替换的实现方式。在一种可能的设计中,选择模块303的实现形式可以参阅图11,图11为本发明实施例中另一种虚拟机启动装置中的选择模块303的结构示意图,此时m个网络业务不需要区分优先级,具体实施方式如下:选择模块303包括计算单元3031a、确定单元3032a、选择单元3033a。计算单元3031a用于确定所述第xi类型的vnfc的实际数量权重其中,qxi为第二组虚拟机中所述第xi类型的vnfc的总和,qxj为第二组虚拟机中第xj类型的vnfc的总和,所述第xj类型为所述第x业务对应的n(x)个类型中的一个,j的取值包括不大于n(x)的所有正整数;第二组虚拟机包括当前已启动的虚拟机和当前已经选择完的待启动虚拟机;确定单元3032a,用于根据所述第xi类型的vnfc的预设数量权重与计算单元3031a计算出来的第xi类型的vnfc的实际数量权重αxi,查找出实际数量权重低于自身预设数量权重程度最大的第k类型,第k类型为所述n(x)个类型中的一个;选择单元3033a,用于选择一个含有确定单元3032a确定出的第k类型的vnfc的未启动虚拟机作为新的待启动虚拟机;可以选择一个含有第k类型的vnfc的数量最多的未启动虚拟机;若含有第k类型的vnfc的数量最多的未启动虚拟机为多个时,选择单元3033a可以从中选择一个含有vnfc类型数量最多的未启动虚拟机;或者,选择一个含有vnfc数量总和最多的未启动虚拟机。该选择模块还可以包括控制单元3034a,用于控制计算单元3031a、确定单元3032a、选择单元3033a按顺序依次循环工作,直到第一组虚拟机中所含有的第xi类型的vnfc的数量总和满足相应的预设数量。在控制单元3034a控制计算单元3031a、确定单元3032a、选择单元3033a按顺序依次循环工作的过程中,存在选择单元3033a选择待启动虚拟机的先后选择顺序;该装置还包括顺序记录单元3036a,用于记录选择单元3033a对待启动虚拟机的先后选择顺序,启动模块304获取所述顺序记录单元3036a记录的先后选择顺序后,按照先后选择顺序,对选择单元3033a选择的待启动虚拟机进行启动。在另一种可能的设计中,若启动策略中对于某一业务有绝对的优先级,例如第二业务大于第三业务大于第四业务,此时需要第二业务优先达到预期的性能标准,即需要第二业务对应的各类vnfc全部达到预期数量后,然后再去以同样的思路去考虑第三业务,再去考虑第四业务。这种情形下,选择模块303可以执行如同步骤2031b-2033b所述的方法、该方法所对应的实例以及所有可以进行等同替换的实现方式。在一种可能的设计中,选择模块303的实现形式可以参阅图10,图10为本发明实施例中另一种虚拟机启动装置中的选择模块303示意图,此时m个网络业务区分优先级,具体实施方式如下:选择模块303包括计算单元3031b、确定单元3032b、选择单元3033b,还可以包含控制单元3034b,遍历单元3035b。图10中的计算单元3031b、确定单元3032b、选择单元3033b、控制单元3034b与图9中计算单元3031a、确定单元3032a、选择单元3033a、控制单元3034a对应执行的功能是相同的,且单元之间的信号传递原理也是相似的,都是按照“计算单元-确定单元-选择单元”这个工作模式来进行工作的,并且控制单元来控制计算单元、确定单元、选择单元按照这个工作模式重复执行。区别在于图10所示的实施例中还有遍历单元3035b,遍历单元3035b用于确定所述m个业务的优先级的高低顺序,使控制单元3034b按照业务的优先级针对每个业务都控制计算单元3031b、确定单元3032b、选择单元3033b按照“计算单元-确定单元-选择单元”这个工作模式依次循环工作,直到第一组虚拟机中每个业务下的各类vnfc的数量都已经达到各自的预设数量。在遍历单元3035b使控制单元3034b针对每个业务都控制计算单元3031b、确定单元3032b、选择单元按照3033b“计算单元-确定单元-选择单元”这个工作模式依次循环工作的过程中,存在选择单元3033b选择待启动虚拟机的先后选择顺序;顺序记录单元3036b,用于记录选择单元3033b对待启动虚拟机的先后选择顺序,启动模块304获取到所述先后选择顺序后,对选择单元3033b选择出来的待启动虚拟机进行启动。选择模块303在具体实现过程中,可因其内部存储或调用的策略的不同从而衍生出多种实现方式。例如,在选择至少一个待启动虚拟机的过程中(不限定全过程,包括一些局部过程):可以按照含有vnfc1、vnfc2、vnfc3、vnfc4最多的顺序对当前未启动虚拟机进行重复轮询选择;也可以按照虚拟机中含有vnfc总数量从多到少的顺序对当前未启动虚拟机进行轮询选择;也可以按照虚拟机中含有vnfc种类数量从多到少的顺序当前未启动虚拟机进行轮询选择;直到已启动虚拟机和已编排启动的待虚拟机中含有的第i类型的vnfc达到预定数量。值得说明的是以上任意情况出现多个虚拟机具备相同的筛选条件时,均可以采用随机的方式择一选择,也可以参照一定的算法规定。在本发明实施例中,一种启动虚拟机的装置包括确定模块、获取模块、选择模块和启动模块。确定模块用于确定第x业务对应的n(x)个vnfc类型,选择模块根据单/多业务策略以及获取模块获取到的n个类型的vnfc与虚拟机的分布关系,从需要启动的虚拟机中确定出待启动虚拟机,由启动模块启动。本发明可以根据业务需求的vnfc而尽快查找出并启动运行特定业务对应的vnfc类型的虚拟机,从而可以解决限制虚拟机启动数量避免虚拟机启动风暴所带来的,业务长时间无法提供或者业务处理能力长时间无法提升的问题,从而实现业务快速提供或业务处理能力的快速提升。另外,上述选择模块的多种实现方式能够通过当前虚拟机中vnfc的数量状态,来选择出最稀缺的vnfc所在的未启动虚拟机,从而使得当前虚拟机中所运行的当前业务下的vnfc在各个时段能够充分发挥利用效率,提高系统的效能。请参阅图11,图11为本发明实施例中一种虚拟机启动的计算机结构示意图。该设备500包括:处理器501,用于产生相应的操作控制信号,发给计算处理设备相应的部件,读取以及处理软件中的数据,尤其是读取和处理存储器502中的数据和程序,以使其中的各个功能模块执行相应的功能,从而控制相应的部件按指令的要求进行动作。存储器502,用于存储程序和各种数据,主要存储操作系统、应用和功能指令等软件单元、或者他们的子集、或者他们的扩展集。操作系统包括各种系统程序如windows系列等,用于实现各种基础业务以及处理基于硬件的任务器,还可以包括非易失性随机存取存储器(nvram),向处理器501提供包括管理计算处理设备中的硬件、软件及数据资源,支持控制软件和应用。上述各个硬件单元可以通过总线503连接进行通信。如此一来,通过调用存储器502存储的程序或指令,处理器501根据第一业务,确定n个类型的虚拟化网络功能组件vnfc,并获得所述n个类型的vnfc与虚拟机的分布关系,该分布关系描述了第i类型的vnfc分布在每个虚拟机中的数量,第i类型为所述n个类型中的一个,i的取值包括不大于n的所有正整数;根据所述分布关系以及存储器502中预设的业务策略,从未启动的虚拟机中选择至少一个待启动虚拟机,使得第一组虚拟机中所含有的第i类型的vnfc的数量总和满足相应的预设数量,所述第一组虚拟机集合包括已启动虚拟机和所述至少一个待启动虚拟机;启动所述至少一个待启动虚拟机。同理,通过调用存储器502存储的程序或指令,处理器501可以执行步骤101-104、步骤201-204所述的方法及相关实例。另外,在具体实现过程中,通过调用存储器502存储的程序或指令,处理器501可以执行上述方法实施例中所有场景下可能实现的方法、方法对应的实例以及所有可以等同替换的方法。本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。以上上述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围。只要满足按照业务来启动相应的虚拟机即在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1