一种确定虚拟机数量调整操作的装置和方法
技术领域
本发明涉及云计算技术,尤其涉及一种确定虚拟机数量调整操作的装置和方法。
背景技术
云计算(Cloud Computing)技术将网络上分布的计算、存储、服务构件、网络软件/硬件等资源集中起来,基于资源虚拟化的方式为用户提供方便快捷的服务。
对于传统的网络,可通过一个或多个虚拟机实现网络中网元的功能。比如:对于移动通信核心网——演进型分组核心网(Evolved Packet Core,EPC),EPC网络中的EPC网元,比如:移动性管理实体(Mobility Management Entity,MME)、分组数据网络网关(Packetdata network GateWay,PGW)、服务网关(Serving GateWay,SGW)、归属用户服务器(HomeSubscriber Server,HSS)等,可作为虚拟网络功能(Virtualized Network Function,VNF)部署在云中。在采用了云技术的EPC网络内部,不同的VNF由一个或多个虚拟机(VirtualMachine,VM)组成。
VNF中VM的数量可随着业务的变化调整,这种自动调整过程被称为“自动扩容/缩容:”用户可以通过供应商提供的应用程序编程接口(Application ProgrammingInterface,API)设定相应的VM数量调整方案。
图1示出了现有的一种VM数量调整方案。该方案中,利用中央处理单元(CentralProcessing Unit,CPU)利用率来衡量系统的负载,根据系统负载调整VM数量。当系统的负载超过用户预先设定的扩容上限阈值时,执行与该阈值相对应的动作,比如:增加一个VM,并且此后长度为扩容冷却时间的时间段内,无论负载是否超过扩容上限阈值均不再增加VM;类似地,当系统的负载低于用户预先设定的缩容下限阈值时,执行与该阈值相对应的动作,比如:减少一个VM,并且在此后长度为缩容冷却时间的时间段内,无论系统的负载是否超过阈值下限均不能再减少VM。
该方案中,在满足扩容或缩容条件下,增加或减少的VM数量只能是固定值,实现不灵活,在某些场景下,比如:出现突发性业务的场景下,只能增加固定数目的VM,扩容的效果慢。
发明内容
本发明实施例提供一种确定VM数量调整操作的装置和方法,用以提供一种灵活的配置VM的方案。
第一方面,本发明实施例提供一种确定虚拟机VM数量调整操作的装置,包括:
数据采集模块,用于获取当前时刻系统的负荷指标和所述系统使用的VM的数量,其中,所述系统包括一个或多个VM;
第一判决模块,用于根据当前时刻所述系统的负荷指标和所述系统使用的VM的数量,确定要对所述系统执行的第一操作;
所述第一操作包括:增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数,且m、n是所述第一判决模块根据当前时刻所述系统的负荷指标和所述系统使用的VM的数量确定的。
结合第一方面,在第一种可能的实现方式中,所述第一判决模块具体用于:
确定第一操作,以使在执行第一操作之后,所述系统的性能指标符合预设的性能指标要求,且使用的VM的数量最少;
其中,执行第一操作之后所述系统的性能指标,是所述第一判决模块根据当前时刻所述系统的负荷指标,以及执行所述第一操作之后所述系统使用的VM的数量预测的;执行第一操作之后所述系统使用的VM的数量,是所述第一判决模块根据当前时刻所述系统使用的VM的数量,以及确定的第一操作预测的。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据采集模块还用于:在所述第一判决模块确定第一操作之前,获取当前时刻所述系统的性能指标;
所述第一判决模块具体用于:
根据当前时刻所述系统的负荷指标、性能指标和所述系统使用的VM的数量,确定当前时刻所述系统所处的当前状态;
对于可执行的第一操作的集合中的每一个第一操作,确定如下三项数值,并根据确定的如下三项数值,更新在所述当前状态下,对所述系统执行该第一操作得到的累积的回报值:
上一次所述系统处于所述当前状态下,对所述系统执行该第一操作得到的累积的回报值、在当前时刻对所述系统执行该第一操作得到的即时的回报值,以及上一次所述系统处于下一个状态下,对所述系统执行所述可执行的第一操作的集合中的每一个第一操作得到的累积的回报值中的最大值,其中,所述下一个状态为执行该第一操作之后所述系统所处的状态;
从更新后的每一个第一操作对应的、对所述系统执行该第一操作得到的累积的回报值中,选择最大的累积的回报值对应的第一操作,作为要对所述系统执行的第一操作;
其中,所述回报值是所述第一判决模块根据所述系统使用的VM的数量,以及所述系统在当前时刻所述系统的负荷指标所指示的负荷下的性能指标确定的,所述系统使用的VM的数量越少,所述系统的性能指标指示所述系统的性能越高,所述回报值越大。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一判决模块具体用于:
根据预测的执行该第一操作之后所述系统使用的VM的数量,以及当前时刻所述系统的负荷指标,预测执行该第一操作之后所述系统的性能指标;
根据预测的执行该第一操作之后所述系统使用的VM的数量和所述系统的性能指标,确定对所述系统执行该第一操作得到的即时的回报值。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述第一判决模块具体用于:
根据当前时刻所述系统的负荷指标、执行该第一操作之后所述系统使用的VM的数量,预测在执行该第一操作之后所述系统所处的下一个状态;
确定在所述下一个状态下,对所述系统执行所述可执行的第一操作的集合中的每一个第一操作得到的累积的回报值;
从确定的各累积的回报值中,选取最大的累积的回报值。
结合第一方面,在第五种可能的实现方式中,
所述装置还包括:VM数量调整方式选择模块,用于选择VM数量调整的方式;
所述第一判决模块具体用于:
若所述VM数量调整方式选择模块选择的VM数量调整的方式为:根据当前时刻所述系统的负荷指标和所述系统使用的VM的数量,调整所述系统使用的VM的数量,则
根据当前时刻所述系统的负荷指标和所述系统使用的VM的数量,确定要对所述系统执行的第一操作。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述装置还包括第二判决模块,用于:
在所述VM数量调整方式选择模块选择的VM数量调整的方式为:按照所述系统的负荷指标上限阈值和系统的负荷指标下限阈值,判断是否需要调整VM数量之后,
将所述数据采集模块获取的当前时刻所述系统的负荷指标与所述系统的负荷指标上限阈值和所述系统的负荷指标下限阈值比较,根据比较结果确定要对所述系统执行的第二操作,所述第二操作包括:增加p个VM、减小q个VM,或保持VM数量不变,所述p为预设的向上调整步长,所述q为预设的向下调整步长,p、q为正整数。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述数据采集模块还用于:获取当前时刻之前的T个历史时刻中,每一个历史时刻所述系统的负荷指标,其中T为正整数;
所述负荷指标上限阈值和所述负荷指标下限阈值是所述第二判决模块根据当前时刻之前的T个历史时刻中,每一个历史时刻所述系统的负荷指标,按照如下条件确定的:
在对所述系统执行所述第二操作之后,所述系统的性能指标符合所述预设的性能指标要求,且使用的VM的数量最少。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述第二判决模块具体用于按照如下步骤确定所述负荷指标上限阈值和所述负荷指标下限阈值:
针对每一个备选的负荷指标上限阈值和负荷指标下限阈值的组合,通过执行如下步骤,确定投入回报比:
对于所述数据采集模块获取的每一个历史时刻所述系统的负荷指标,预测根据该备选的负荷指标上限阈值和负荷指标下限阈值的组合对所述系统执行第二操作后,所述系统使用的VM数量;并根据该历史时刻所述系统的负荷指标和预测的执行第二操作后所述系统使用的VM数量,预测执行第二操作之后所述系统的性能指标;
根据每一个历史时刻所对应的、执行所述第二操作之后所述系统使用的VM数量和的性能指标,确定投入回报比,其中,各性能指标中符合所述预设的性能指标要求的性能指标的数量越多,各历史时刻所述系统使用的VM数量的总和越少,所述投入回报比越高;
选择最大投入回报比对应的备选的负荷指标上限阈值和负荷指标下限阈值的组合;将选择的该组合中的负荷指标上限阈值,作为确定的所述负荷指标上限阈值,将选择的该组合中的负荷指标下限阈值,作为确定的所述负荷指标下限阈值。
第二方面,本发明实施例提供一种确定虚拟机VM数量调整操作的方法,包括:
获取当前时刻系统的负荷指标和所述系统使用的VM的数量,其中,所述系统使用一个或多个VM;
根据当前时刻所述系统的负荷指标和所述系统使用的VM的数量,确定要对所述系统执行的第一操作;
所述第一操作包括:增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数,且m、n是根据当前时刻所述系统的负荷指标和所述系统使用的VM的数量确定的。
结合第二方面,在第一种可能的实现方式中,确定要对所述系统执行的第一操作,包括:
确定第一操作,以使执行第一操作之后所述系统的性能指标符合预设的性能指标要求,且使用的VM的数量最少;
其中,执行所述第一操作之后所述系统的性能指标,是根据当前时刻所述系统的负荷指标,以及执行所述第一操作之后所述系统使用的VM的数量预测的;执行所述第一操作之后所述系统使用的VM的数量,是根据当前时刻所述系统使用的VM的数量,以及确定的第一操作预测的。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,在确定要对所述系统执行的第一操作之前,还包括:获取当前时刻所述系统的性能指标;
确定要对所述系统执行的第一操作,包括:
根据当前时刻所述系统的负荷指标、性能指标和所述系统使用的VM的数量,确定在当前时刻所述系统所处的当前状态;
对于可执行的第一操作的集合中的每一个第一操作,确定如下三项数值,并根据确定的如下三项数值,更新在所述当前状态下,对所述系统执行该第一操作得到的累积的回报值:
上一次所述系统处于所述当前状态下对所述系统执行该第一操作得到的累积的回报值、在当前时刻对所述系统执行该第一操作得到的即时的回报值,以及上一次所述系统处于下一个状态下,对所述系统执行所述可执行的第一操作的集合中的每一个第一操作得到的累积的回报值中的最大值,其中,所述下一个状态为执行该第一操作之后所述系统所处的状态;
从更新后的每一个第一操作对应的、对所述系统执行该第一操作得到的累积的回报值中,选择最大的累积的回报值对应的第一操作,作为要对所述系统执行的第一操作;
其中,所述回报值是根据所述系统使用的VM的数量,以及所述系统在当前时刻所述系统的负荷指标所指示的负荷下的性能指标确定的,所述系统使用的VM的数量越少,所述系统的性能指标指示所述系统的性能越高,所述回报值越大。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,确定在当前时刻对所述系统执行该第一操作得到的即时的回报值,包括:
根据预测的执行该第一操作之后所述系统使用的VM的数量,以及当前时刻所述系统的负荷指标,预测执行该第一操作之后所述系统的性能指标;
根据预测的执行该第一操作之后所述系统使用的VM的数量和所述系统的性能指标,确定在当前时刻对所述系统执行该第一操作得到的即时的回报值。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,确定在执行该第一操作之后所述系统所处的下一个状态下,对所述系统执行所述可执行的第一操作的集合中的每一个第一操作得到的累积的回报值中的最大值,包括:
根据当前时刻所述系统的负荷指标、执行该第一操作之后所述系统使用的VM的数量,预测在执行该第一操作之后所述系统所处的下一个状态;
确定在所述下一个状态下,对所述系统执行所述可执行的第一操作的集合中的每一个第一操作得到的累积的回报值;
从确定的各累积的回报值中,选取最大的累积的回报值。
结合第二方面,在第五种可能的实现方式中,
在确定要对所述系统执行的第一操作之前,还包括:选择VM数量调整的方式;
确定要对所述系统执行的第一操作,包括:
若选择的VM数量调整的方式为:根据获取的当前时刻所述系统的负荷指标和所述系统使用的VM的数量,调整所述系统使用的VM的数量,则
根据获取的当前时刻所述系统的负荷指标和所述系统使用的VM的数量,确定要对所述系统执行的第一操作。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,若选择的VM数量调整的方式为:按照所述系统的负荷指标上限阈值和系统的负荷指标下限阈值,判断是否需要调整VM数量,则在选择VM数量调整的方式之后,还包括:
将获取的当前时刻所述系统的负荷指标与所述系统的负荷指标上限阈值和所述系统的负荷指标下限阈值比较,根据比较结果确定要对所述系统执行的第二操作,所述第二操作包括:增加p个VM、减小q个VM,或保持VM数量不变,所述p为预设的向上调整步长,所述q为预设的向下调整步长,p、q为正整数。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述负荷指标上限阈值和所述负荷指标下限阈值是根据获取的当前时刻之前的T个历史时刻中,每一个历史时刻所述系统的负荷指标,按照如下条件确定的:
在对所述系统执行所述第二操作之后,所述系统的性能指标符合所述预设的性能指标要求,且使用的VM的数量最少,其中T为正整数。
结合第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所述负荷指标上限阈值和所述负荷指标下限阈值具体是根据如下步骤确定的:
针对每一个备选的负荷指标上限阈值和负荷指标下限阈值的组合,通过执行如下步骤,确定投入回报比:
对于获取的每一个历史时刻所述系统的负荷指标,预测根据该备选的负荷指标上限阈值和负荷指标下限阈值的组合对所述系统执行第二操作后,所述系统使用的VM数量;并根据该历史时刻所述系统的负荷指标和预测的所述系统执行第二操作后使用的VM数量,预测在执行所述第二操作之后所述系统的性能指标;
根据每一个历史时刻所对应的、执行第二操作之后所述系统使用的VM数量和的性能指标,确定投入回报比,其中,各性能指标中符合所述预设的性能指标要求的性能指标的数量越多,各历史时刻所述系统使用的VM数量的总和越少,所述投入回报比越高;
选择最大投入回报比对应的备选的负荷指标上限阈值和负荷指标下限阈值的组合;将选择的该组合中的负荷指标上限阈值,作为确定的所述负荷指标上限阈值,将选择的该组合中的负荷指标下限阈值,作为确定的所述负荷指标下限阈值。
本发明实施例中,根据系统的负荷指标和系统使用的VM的数量调整VM的数量,在调整时,不仅可确定是增加、减少还是保持VM的数量不变,而且还能准确确定VM数量调整的数值,使得能够根据系统的负荷变化和当前时刻使用的VM的数量实时确定VM调整的数量,提高了VM调整的实时性。
进一步地,在根据系统的负荷指标和系统使用的VM的数量调整VM的数量时,使得在VM数量调整后,系统的性能指标符合预设的性能指标要求,且系统使用的VM的数量最少,能够兼顾系统的性能指标和系统的VM数量的要求,在保证系统的性能指标的要求前提下,提高VM利用率。
进一步地,在根据系统的负荷指标和系统使用的VM的数量调整VM的数量时,采用强化学习的方法,在确定调整的数值时,考虑了当前时刻前的历史时刻的累积的回报值,而且还考虑了下一时刻可能的回报值,从而不必再如图1所示的方法中,设置冷却时间,进而提高了VM数量调整的实时性。利用实施例一的强化学习的特性,能够减少不必要的扩容和缩容的操作,减缓了乒乓效应。
进一步地,本发明实施例中还可根据系统的历史负荷调整负荷指标上限阈值和负荷指标下限阈值,可根据系统的负荷灵活设置VM数量调整的阈值,对不同阈值进行评估,以选择最佳阈值,提高了系统VM利用率,保证了系统的性能指标要求。
进一步地,在根据系统的历史负荷调整负荷指标上限阈值和负荷指标下限阈值时,使得在调整VM数量后,系统的性能指标符合预设的性能指标要求,且使用的VM数量最少,能够兼顾系统的性能指标和系统的VM数量的要求。
进一步地,在根据系统的历史负荷调整负荷指标上限阈值和负荷指标下限阈值时,对不同的系统负荷情况,分别对各可用的阈值进行评估,选择最佳阈值,使得其在调整系统使用的VM的数量时,根据选择的最佳阈值进行调整,提高了VM的利用效率。
附图说明
图1为一种虚拟机数量调整方案的示意图;
图2为本发明实施例提供的第一种确定VM数量调整操作的装置的结构示意图;
图3为本发明实施例提供的第二种确定VM数量调整操作的装置的结构示意图;
图4为本发明实施例提供的第三种确定VM数量调整操作的装置的结构示意图;
图5为强化学习的方法示意图;
图6为本发明实施例一的流程图;
图7为累积回报表的示意图;
图8为本发明实施例一中更新累积回报表的过程示意图;
图9为本发明实施例二中数据拟合过程的示意图;
图10为本发明实施例三的流程图;
图11、图12为本发明实施例四中VM数量调整操作的装置与VNF的关系示意图;
图13和图14为本发明实施例五中本发明实施例可应用的业务场景的示意图;
图15为本发明实施例提供的第四种确定VM数量调整操作的装置的结构示意图;
图16为本发明实施例提供的确定VM数量调整操作的方法的流程图。
具体实施方式
本发明实施例提供一种确定VM数量调整操作的装置和方法,用以提供一种灵活的配置VM的方案。
在本发明实施例提供的一种确定VM数量调整操作的装置中,数据采集模块获取当前时刻系统的负荷指标和系统使用的VM的数量,其中,系统包括一个或多个VM;第一判决模块数据采集模块根据获取的当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作;其中,第一操作包括:增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数,且m、n是第一判决模块根据当前时刻系统的负荷指标和系统使用的VM的数量确定的。
与图1所示的VM数量调整方案相比,增加或减少的VM数量可根据当前时刻系统的负荷指标和系统使用的VM的数量确定,不再是固定设置的值,实现更灵活,可适应系统的负荷情况和VM的使用情况来灵活确定增加或减少VM数量,适应不同的场景。
下面,首先介绍本发明实施例中涉及的一些概念。
一、系统
本发明实施例中,系统包括一个或多个VM,由该一个或多个VM实现。其中,系统可为任何由VM实现的VNF,比如前述的网络中的各种网元:MME、PGW、HSS等。本发明实施例提供的确定VM数量调整操作的装置可位于系统之外,也可位于系统之内,具体可参见实施例四。
本发明实施例提供的确定VM数量调整的装置,用于对VM数量调整的操作进行判决,将判决结果发给执行VM数量调整的装置,由执行执行VM数量调整的装置根据本发明实施例提供的确定VM数量调整的装置发送的判决结果,对系统执行调整VM数量的操作。这里,执行VM数量调整的装置可为图12中的网络功能虚拟化-管理和编配(Network FuncitonsVirtualization-Management and Orchestration,NFV-MANO)中的VNF管理器(VNFmanager)和虚拟化基础设施管理器(Virtualised Infrastructure Manager,VIM),由该两个装置配合执行系统VNF的VM数量调整。具体执行的方案可参考2014年2月公开的标准文献“组规范网络功能虚拟化-管理与编排V0.3.2”(GS NFV-MAN 001 v0.3.2),这里不再赘述。
需要说明的是,上述标准文献中公开的VM数量调整的方式仅为一种可选的实现方式,本发明实施例旨在提供一种确定VM数量调整操作的装置和方法,实现对VM数量调整操作的判决,并不对VM数量调整操作的执行加以限定,可认为本发明实施例提供的判决方案可适用于包括上述标准文献公开的方式在内的任何VM数量调整的执行方案。
二、系统的负荷指标
系统的负荷指标可包括但不限于下面的表1所列出的各种业务负荷指标和各种资源负荷指标。
表1、系统的负荷指标
三、系统的性能指标
系统的性能指标可包括但不限于表2所列的指标:
表2、系统的性能指标列表
性能指标 |
业务建立成功率 |
业务建立时延 |
数据包传输时延 |
抖动 |
数据包丢包率 |
误块率 |
误比特率 |
接下来,结合附图对本发明实施例进行详细说明。
本发明实施例中,确定VM数量调整操作的装置有如下三种:
第一种
如图2所示的装置10,包括:
数据采集模块201和第一判决模块202;
其中,第一判决模块202根据数据采集模块201获取的当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作;
其中,第一操作包括:
增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数;
并且,上述m和n是第一判决模块202根据当前时刻系统的负荷指标和系统使用的VM的数量确定的。
第二种
如图3所示的装置11,包括:
数据采集模块201、第一判决模块202和第二判决模块203,以及VM数量调整方式选择模块204;
其中,数据采集模块201和第一判决模块202的实现可参考上面第一种确定VM数量调整操作的装置10;VM数量调整方式选择模块204用于选择VM数量调整方式,即:是通过第一判决模块202判决,还是通过第二判决模块203判决。
其中,第二判决模块203具体用于:
将数据采集模块201获取的当前时刻系统的负荷指标与系统的负荷指标上限阈值和系统的负荷指标下限阈值比较,根据比较结果确定要对系统执行的第二操作;
其中,第二操作包括:增加p个VM、减小q个VM,或保持VM数量不变;p为预设的向上调整步长,q为预设的向下调整步长,p、q为正整数。
与第一操作的区别包括:第二操作中VM数量调整的数量是预设的,第一操作中,VM数量调整的数量是根据数据采集模块201获取的当前时刻系统的负荷指标和系统使用的VM的数量确定的。
第三种
如图4所示的装置12;包括:数据采集模块201和第二判决模块203,其中数据采集模块201和第二判决模块203的实现可参考如图3所示的第二种确定VM数量调整操作的装置11。
下面,分别对上述三种确定VM数量调整操作的装置进行详细介绍。
图2为本发明实施例提供的第一种确定VM数量调整操作的装置10的结构示意图。如图2所示,该装置10包括:
数据采集模块201,用于获取当前时刻系统的负荷指标和系统使用的VM的数量,其中,系统包括一个或多个VM;
第一判决模块202,用于根据数据采集模块201获取的当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作;
第一操作包括:增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数,且m、n是第一判决模块202根据获取的当前时刻系统的负荷指标和系统使用的VM的数量确定的。
其中,数据采集模块201可以预设的周期获取系统的负荷指标和系统使用的VM的数量。比如:1分钟或5分钟等。
本发明实施例中,数据采集模块201可采集表1中所列的各种指标中的一种,作为系统的负荷指标,比如:CPU利用率。
或者,也可采集表1中所列的多种指标,将各种指标进行加权、归一化处理后,综合计算出系统的负荷指标。
比如:采集用户数User_Num和磁盘利用率Disk_occupation_rate,按照下列公式一,计算出系统的负荷指标load:
其中,max_User_num为系统最大用户数,α为加权因子,0≤α≤1,0≤Disk_occupation_rate≤1。
第一判决模块202在根据获取的当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作时,可有多种可选方式,这里列举其中的几种加以说明。无论采用何种方式,与图1所示的方式相比,都能够实现灵活设置调整的VM数量的目的。
方式一
预存系统的负荷指标与系统使用的VM数量的对应表,如表3所示。该表用于表示在系统的负荷指标所指示的系统负荷下,若保证系统的性能指标,系统应使用的VM数量。
表3、系统负荷和系统应使用的VM的数量的对应表
与前述的系统的负荷指标类似,系统的性能指标可采用表2中的某个具体的性能指标,比如:业务建立时延来衡量,也可综合各种性能指标,采用与公式一类似的方式进行加权求和来计算。
可将系统的性能指标与预设的性能指标阈值比较,确定是否保证了系统的性能指标。比如:系统的性能指标为丢包率,则确定丢包率在小于预设的丢包率阈值时,保证了系统的性能指标。再比如:系统的性能指标为业务建立成功率,则确定业务建立成功率大于预设的业务建立成功率阈值时,保证了系统的性能指标。
第一判决模块202查表3,确定获取的当前时刻系统的负荷指标对应的系统应使用的VM数量,根数据采集模块201获取的当前时刻系统使用的VM数量,确定要对系统执行的第一操作,即:增加还是减少VM的数量,或保持VM的数量不变,以及若增加或减少VM的数量,增加或减少的VM的数量的具体数值,使得对系统执行第一操作后,系统使用的VM数量等于当前时刻系统的负荷指标对应的系统应使用的VM数量。
比如:第一判决模块202获取当前时刻系统的负荷指标为25%,查表3,确定系统应使用的VM的数量为3个,若获取的当前时刻系统使用的VM的数量为5个,则确定要减少2个VM。
再比如:第一判决模块202获取当前时刻系统的负荷指标为75%,查表3,确定系统应使用的VM的数量为8个,若获取的当前时刻系统使用的VM的数量为4个,则确定要增加4个VM。
可选地,数据采集模块201还可获取前若干时刻系统的负荷指标,第一判决模块202根据数据采集模块201获取的当前时刻,以及前若干时刻系统的负荷指标,确定系统的负荷指标的变化趋势,若确定系统的负荷指标递增,则可使调整后的系统使用的VM的数量,比表3中系统应使用的VM的数量大预设的系统缓冲VM数量。
比如:数据采集模块201获取当前时刻,以及前4个时刻的系统的负荷指标分别为:20%、30%、35%、40%和45%,获取的当前时刻系统使用的VM数量为2,则在增加3个VM的基础上,考虑到系统的负荷指标的递增趋势,再增加预设的系统缓冲VM数量(假设为1),则总共增加4个VM,调整后系统使用的VM的数量为6。
该方式一可适用于突发性业务的场景,能够迅速增加或减少VM的数量,以符合系统的负荷情况。
方式二
第一判决模块202确定要对系统执行的第一操作,以使在执行第一操作之后系统的性能指标符合预设的性能指标要求,且使用的VM的数量最少;
其中,在执行第一操作之后系统的性能指标,是第一判决模块202根据当前时刻系统的负荷指标,以及在执行第一操作之后系统使用的VM的数量预测的;在执行第一操作之后系统使用的VM的数量,是第一判决模块202根据当前时刻系统使用的VM的数量,以及确定的要对系统执行的第一操作预测的。
可选地,该预设的性能指标要求可为预设的服务水平协议(Service LevelAgreement,SLA)要求。SLA是指在一定的费用下,为了保障服务的性能和可靠性,运营商与客户签订的双方认可的协议。通常该费用是驱动运营商提供服务质量的主要因素。
比如,在SLA中规定了三个性能指标分别为:业务处理时延、业务报文的丢包率、处理业务的带宽。这三个性能指标的基准值分别为时延100毫秒,丢包率为1%,带宽为100Mbps,则当业务处理时延小于100ms、丢包率小于1%,带宽大于100Mbps时称为遵守SLA,若有其中一项指标不满足基准值的要求,则称为违反SLA,运营商会付出相应的惩罚。惩罚的方法可以基于违反SLA的时间设定,比如:单位时间内违反业务处理时延需要付出的惩罚为p_1,违反丢包率需要付出的惩罚为p_2,违反带宽需要付出的惩罚为p_3,则总的惩罚为penalty=p_1*t_1+p_2*t_2+p_3*t_3,其中t_1,t_2,t_3分别为违反相应基准值的时间。
具体地,数据采集模块201还用于:在第一判决模块202确定要对系统执行的第一操作之前,获取当前时刻系统的性能指标;
第一判决模块202可采用强化学习(Reinforcement Learning)的方法,确定要对系统执行的第一操作。
强化学习的主要思想是通过学习,选择能达到目标的最优动作。如图5所示,当主体在其环境中做出每个动作ai,获得回报值ri,主体从获得的回报值中学习,以便后续动作产生最大的累积的回报值。
其中,回报值分为累积的回报值和即时的回报值。累积的回报值为当前时刻以前的若干时刻回报值的累积结果,比如:加和的结果;即时的回报值为当前时刻执行了第一操作ai后得到的回报值。
本发明实施例中,主体为第一判决模块202,环境为上述“系统”,回报值可由系统使用的VM的数量,以及系统在当前时刻系统的负荷指标所指示的负荷下的性能指标确定,系统使用的VM的数量越少,系统的性能指标指示系统的性能越高,回报值越大。比如:即时的回报值r可由下列公式二定义:
其中,Performance为系统的性能指标,可为表2中的某个具体的性能指标,比如:业务建立成功率,业务建立时延的倒数;也可综合各种性能指标,采用与公式一类似的方式进行加权求和来计算,加权的结果满足:加权求和后的性能指标越大,系统的性能越好,其中,诸如表2中的业务建立时延、数据包传输时延、抖动、数据包丢包率、误块率、误比特率的性能指标越小,则加权求和后的性能指标越大;诸如业务建立成功率的性能指标越大,加权求和后的性能指标越大。vm_number为系统使用的VM的数量。
可选地,第一判决模块202通过如下方式确定执行第一操作得到的即时的回报值:
根据预测的执行该第一操作之后系统使用的VM的数量,以及当前时刻系统的负荷指标,预测执行该第一操作之后系统的性能指标;
根据预测的执行该第一操作之后系统使用的VM的数量和系统的性能指标,确定对系统执行该第一操作得到的即时的回报值。
可选地,第一判决模块202可通过如下方式,确定在执行该第一操作后系统所处的下一个状态下,执行可执行的第一操作集合中的每一个第一操作得到的累积的回报值中的最大值:
根据当前时刻系统的负荷指标、在执行该第一操作之后系统使用的VM的数量,预测在执行该第一操作之后系统所处的下一个状态;
确定在该下一个状态下,对系统执行上述可执行的第一操作的集合中的每一个第一操作得到的累积的回报值;
从确定的各累积的回报值中,选取最大的累积的回报值。
上述对第一判决模块202确定要对系统执行的第一操作的方式二进行了详细说明。后面会通过具体的实施例一举例说明。
图3为本发明实施例提供的第二种确定VM数量调整操作的装置11的结构示意图。如图3所示,该装置11包括:
数据采集模块201、第一判决模块202和第二判决模块203,以及VM数量调整方式选择模块204;
其中,数据采集模块201和第一判决模块202的实现可参考上面第一种确定VM数量调整操作的装置10中对应模块的实现;VM数量调整方式选择模块204用于选择VM数量调整方式,即:是通过第一判决模块202判决,还是通过第二判决模块203判决。
其中,第二判决模块203具体用于:
将数据采集模块201获取的当前时刻系统的负荷指标与系统的负荷指标上限阈值和系统的负荷指标下限阈值比较,根据比较结果确定要对系统执行的第二操作;
其中,第二操作包括:增加p个VM、减小q个VM,或保持VM数量不变;p为预设的向上调整步长,q为预设的向下调整步长,p、q为正整数。
与第一操作的区别包括:第二操作中VM数量调整的数量是预设的,第一操作中,VM数量调整的数量是根据数据采集模块201获取的当前时刻系统的负荷指标和系统使用的VM的数量确定的。
与图1所示的VM数量调整的方案类似之处在于,均是将当前时刻系统的负荷指标与预设的阈值进行比较,根据比较结果确定是否调整VM的数量。区别在于,本发明实施例中,阈值是根据历史时刻系统的负荷指标确定的。
具体地,数据采集模块201还用于:获取当前时刻之前的T个历史时刻中,每一个历史时刻系统的负荷指标,其中,T为正整数;
负荷指标上限阈值和负荷指标下限阈值是第二判决模块203根据数据采集模块201获取的当前时刻之前的T个历史时刻中,每一个历史时刻系统的负荷指标确定的,并满足:
系统在执行第二操作之后的性能指标符合预设的性能指标要求,且使用的VM的数量最少,其中T为正整数。
这里,预设的性能指标要求也可为前述的SLA的要求。
可选地,第二判决模块203具体用于按照如下步骤确定负荷指标上限阈值和负荷指标下限阈值:
针对每一个备选的负荷指标上限阈值和负荷指标下限阈值的组合,通过执行如下步骤,确定投入回报比:
对于数据采集模块201获取的每一个历史时刻系统的负荷指标,预测根据该备选的负荷指标上限阈值和负荷指标下限阈值的组合对系统执行第二操作后,系统使用的VM数量;并根据该历史时刻系统的负荷指标和预测的系统执行第二操作后使用的VM数量,预测子啊执行第二操作之后系统的性能指标;
根据每一个历史时刻所对应的、执行第二操作之后系统使用的VM数量和的性能指标,确定投入回报比,其中,各性能指标中符合预设的性能指标要求的性能指标的数量越多,各历史时刻系统使用的VM数量的总和越少,投入回报比越高;
选择最大投入回报比对应的备选的负荷指标上限阈值和负荷指标下限阈值的组合;将选择的该组合中的负荷指标上限阈值,作为确定的负荷指标上限阈值,将选择的该组合中的负荷指标下限阈值,作为确定的负荷指标下限阈值。
后面的实施例三是第二判决模块203确定负荷指标下限阈值和负荷指标上限阈值的方法举例。
图4为本发明实施例提供的第三种确定VM数量调整操作的装置12的结构示意图。如图4所示,该装置12包括:
数据采集模块201和第二判决模块203,其中数据采集模块201和第二判决模块203的实现可参考如图3所示的第二种确定VM数量调整操作的装置11中对应模块的实现。
下面,分别介绍实施例一~实施例五。其中,
实施例一为第一判决模块202判决VM数量操作的方法的举例;
实施例二为数据分析模块205进行拟合的方法举例;
实施例三为第二判决模块203判决VM数量调整操作的方法的举例;
实施例四说明了本发明实施例提供的确定VM数量调整操作的装置与VNF的关系;
实施例五给出了本发明实施例应用的业务场景。
下面,逐一对各实施例加以介绍。
【实施例一】
实施例一介绍了第一判决模块202调整VM数量的一种方法。
实施例一中,本发明实施例提供的确定VM数量调整操作的装置还可包括数据分析模块205,该模块用于从数据采集模块201获取历史时刻的系统的负荷指标、性能指标和系统使用的VM的数量,根据获取的上述数据,拟合出系统的性能指标与系统的负荷指标和系统使用的VM的数量的函数关系,供第一判决模块202在计算即时的回报值时使用(见步骤S604)。
实施例一中,系统可能的状态si组成状态集合(State Set):{si|i=1..M},每个状态下,对系统有N种可执行的动作,即第一操作有N种可能的选择,N种可执行的动作组成动作集合(Action Set):{ai|i=1..N},M、N为正整数。第i个状态si对应的第j个动作aj的即时的回报值为ri,j,累积的回报值为qi,j;系统的负荷指标、系统使用的VM的数量与系统的性能指标之间的函数关系如公式三所示:
performance=f(workload,vm_number)......公式三
其中,performance为系统的性能指标、workload为系统的负荷指标、vm_number为系统使用的VM的数量。数据分析模块拟合的具体方法可参考后面的实施例二。
即时的回报值如下面的公式四所示:
r=g(vm_number,performance)......公式四
图6中的Q表,即累积的回报值表,简称“累积回报表”,如图7所示。
如图6所示,实施例一的方法具体包括如下步骤:
S601:对状态集、动作集和累积回报表进行初始化。状态集包含了系统所有可能的状态;动作集为系统可以执行的第一操作的集合;累积回报表用于保存各个状态对应于每个动作的累积的回报值;
S602:第一判决模块202从数据采集模块201处获得当前时刻t系统的负荷指标、性能指标和系统使用的VM的数量;
S603:第一判决模块202确定进行状态匹配,根据步骤S602中获得的当前时刻t系统的负荷指标、性能指标和系统使用的VM的数量,确定当前时刻系统所处的状态st;
如前所述,状态集中包括有限M个状态,该M个状态可通过如下方式定义:将系统的负荷指标取值分为A个区间,将系统的性能指标的取值分为B个区间,将系统使用的VM的数量的取值分为C个区间,A、B、C为正整数,A*B*C=M。
步骤S603在确定当前时刻系统所处的状态时,可通过分别确定系统的负荷指标、性能指标和系统使用的VM的数量落入的区间,然后根据三者分别落入的区间,从状态集中找出当前时刻系统所处的状态st,简称“当前状态”。
S604:对于当前状态st,有N种可选动作,即动作集中的N种动作a1,a2,...,aN,对每一个可选动作aj,j=1..N进行如下处理:
根据当前时刻t系统使用的VM的数量vm_number,以及执行的动作aj,确定执行该动作aj之后,系统使用的VM的数量vm_number’;
根据从数据分析模块205获得的函数关系r=g(vm_number,performance),计算执行动作aj后系统的新的性能指标:performance′=f(workload,vm_number′),其中,workload为当前时刻系统的负荷指标;
按照上述公式四计算即时的回报值:
rt,j=g(vm_number′,performance′)
S605:更新累积回报表;
根据当前时刻t系统的负荷指标workload、执行动作aj后系统的新的性能指标performance’,以及执行动作aj后系统使用的VM的数量vm_number’,确定执行动作aj后系统所处的状态,记为st+k;
从当前时刻t的累积回报表中,获取状态st+k的所有累积的回报值(即在状态st+k下,每一个动作a1,a2,...,aN对应的累积的回报值qt+k,1,qt+k,2,qt+k,3,...,qt+k,N,并从中选取最大值,记为qt+k,l;
其中,qt+k,j为系统上一次处于状态st+k下,执行动作aj得到的累积的回报值;
用当前时刻t的累积回报表中,当前状态st与动作aj对应的累积的回报值qt,j、即时的回报值rt,j、执行完动作后的下一状态的最大累积的回报值qt+k,l,计算当前状态st与动作aj对应的新的累积的回报值:q′t,j=y(qt,j,rt,j,qt+k,l),比如:按照如下公式五计算累积的回报值:
q′t,j=qt,j+rt,j+qt+k,l......公式五
用q′t,j取代qt,j填充到累积回报表,即Q表中,完成一个Q表项的更新
对于当前状态st的所有可选的动作a1,a2,...,aN,均通过步骤S604和步骤S605更新累积的回报值。
其中,累积的回报值与即时的回报值区别在于,累积的回报值不仅考虑了当前时刻的即时的回报值,还考虑了历史运行过程中,该状态的所有回报值的累积,以及可能的下一状态最大的累积的回报值。即:累积的回报值不仅考虑历史状态对当前状态的影响,还包括可能的下一状态对当前状态的影响。
S606:依次更新完qt+k,1,qt+k,2,qt+k,3,...,qt+k,N之后,选择其中最大值对应的动作,作为要对系统执行的动作,即要对系统执行的第一操作。
上述步骤S604~步骤S605也可参考图8所示的示意图。对于动作集中的动作aj,计算执行该动作后系统的性能指标performance’,根据执行该动作后的系统的新的VM的数量vm_number’,以及performance’计算即时的回报值rt,j;根据即时的回报值rt,j、执行动作后下一状态St+k下Q表中各动作对应的最大累积的回报值qt+k,l,以及当前状态t的Q表中,当前状态t下执行动作aj得到的累积的回报值qt,j,计算得到更新后的q′t,j,用该值更新Q表中状态t对应的执行动作aj的累积的回报值。
S607:确定冷却时间,在冷却时间内,系统不再增加或减少VM的数量。
步骤S607为可选的步骤,通过冷却时间保证系统的可靠性,冷却时间可以包括:扩容冷却时间、缩容冷却时间、防震荡冷却时间。
其中,扩容冷却时间指两次扩容动作(即增加VM的数量)之间的间隔时间,每进行一次扩容/缩容决策,扩容冷却时间定时器就会减1,若定时器取值大于零,则能不允许实施新的扩容动作(即保持当前VM数量不变),若定时器小于或等于零,则允许执行扩容决策,一旦做出实施扩容的决策,扩容冷却时间定时器就会被复位。
缩容冷却时间的实施过程与扩容冷却时间类似,只不过针对的是缩容动作。
防震荡冷却时间是指做出扩容决策后到允许再次做出缩容决策之间间隔的时间。每次作出扩容决策后,该定时器会被复位,之后每进行一次扩容/缩容决策,定时器就会减1,如果定时器取值大于零,即使作出的决策是缩容,也不允许执行该动作(即保持当前VM的数量不变),若定时器取值小于或等于零,则允许执行缩容决策。
步骤S607为可选步骤,若不执行步骤S607,则在执行步骤S606之后,直接执行步骤S608:调整系统使用的VM的数量。
实施例一中,不仅对当前状态下采取不同动作的即时的回报值判断,还考虑了当前状态之前的历史的累积的回报值,以及下一状态下的回报值对当前状态的影响。通过实施例一调整VM数量时,增加或减少的VM数量可依据当前时刻系统的负荷指标和当前时刻系统使用的VM的数量动态改变,可选地,可实现系统的性能指标符合预设的性能指标的要求下,系统使用的VM的数量最少,进而提高了VM的利用效率。
与图1所示的方案相比,实施例一中,VM调整的数量可动态变化。图1中,与扩容上限阈值或扩容下限阈值对应的扩容或缩容的VM的数量是确定的,无法根据系统的负荷指标实时调整。而实施例一中会对增加或删除不同VM数量的回报值进行量化评估,选取回报值最大的动作作为要对系统执行的扩容或缩容的动作。
由于第一判决模块202在确定第一操作时,不仅可以确定是增加、减少还是保持VM的数量不变,而且还能够准确确定出VM数量的调整的数值,实现了根据系统的负荷指标来确定VM数量调整的数值,在确定调整的数值时,考虑了当前时刻之前的历史时刻的累积的回报值,而且还考虑了下一时刻可能的回报值,从而不必再像图1所示的方法中,设置冷却时间,进而提高了VM数量调整的实时性。利用实施例一的强化学习的特性,能够减少不必要的扩容和缩容的操作,减缓了乒乓效应。
此外,实施例一中,由于第一操作是根据系统的负荷指标和当前时刻系统使用的VM的数量确定的,VM调整的数量能够适应不同的系统负荷和系统资源占用情况。
【实施例二】
实施例二介绍了数据分析模块205进行数据拟合的一种方法。该方法可应用于本发明实施例提供的任意一种确定VM数量调整操作的装置中,用于拟合出系统的性能指标与系统的负荷指标和系统使用的VM的数量之间的函数关系。
参考图9,数据采集模块201采集当前时刻之前的历史时间段内的系统的负荷指标、系统使用的VM的数量,系统的性能指标。可选地,数据采集模块201可将采集到的上述数据存储于历史数据库中,该历史数据库可位于数据采集模块201内,或独立于数据采集模块201。
可选地,该历史时间段可以是过去的若干天,若干周、若干个月,或者其他更长或者更短的时间周期,其长度可以根据系统运行的实际需求而定。
可选地,数据采集模块201可周期性地采集上述数据,上述数据可以是一个采样周期内定额平均值、最大值或采样时刻的瞬时值。
可选地,数据采集模块201可以向用于监控上述数据的监控模块发起数据查询请求,这些监控模块在收到查询请求后,将请求的数据发给数据采集模块201;或者,这些监控模块周期性地主动将这些数据上报给数据采集模块201。
数据分析模块205从历史数据库中提取某一历史时间段内的系统的负荷指标、性能指标和系统使用的VM的数量,利用拟合算法计算性能指标performance与负荷指标workload和系统使用的VM的数量之间vm_number的函数关系:
performance=f(workload,vm_number)
可选地,可采用线性拟合、多项式拟合等机器学习算法。
实施例二中,根据采集的历史时刻的数据,得出性能指标与负荷指标和系统使用的VM的数量之间的关系,使得第一判决模块202和第二判决模块203可根据实施例二提供的函数关系,预测不同操作的回报值,并选择回报最高的操作。根据不同精确度和复杂度的需求,本实施例在实施过程中可以选择不同的拟合算法。
【实施例三】
实施例三给出了上述第二种确定VM数量调整操作的装置11和第三种确定VM数量调整操作的装置12中,第二判决模块203确定负荷指标上限阈值和负荷指标下限阈值的可选方案。
实施例三中,数据采集模块201还用于获取当前时刻之前的T个历史时刻中,每一个历史时刻系统的负荷指标,其中T为正整数。数据采集模块201可以预设的数据采集周期Period为周期,周期性地采集系统的负荷指标。上述T个负荷指标可以为当前时刻的前T*Period之内的T个历史时刻采集的负荷指标,也可为当前时刻之前的任何T个采集周期内采集的负荷指标。该T个历史时刻可以为过去的若干天、若干周或若干个月内的历史时刻。
可选地,数据采集模块201可将采集的T个历史时刻的系统的负荷指标存储在历史数据库中,可选地,该历史数据库可位于数据采集模块201内,或独立于数据采集模块201。
可选地,该T个历史时刻的负荷指标可为过去一天的所有采集周期采集到的负荷指标:w1,w2,...,wT,则实施例三的基本思路是:认为系统负荷指标的变化基本以天为单位,根据前一天的系统负荷指标变化可基本预测当前的系统的负荷指标的变化。根据前一天系统的负荷指标的变化,选择最佳的负荷指标上限阈值和负荷指标下限阈值,以使当前的系统的VM的数量的调整适应系统的负荷指标的变化,实现以最少的VM的数量,达到预设的性能指标的要求。
类似地,该T个历史时刻的负荷指标可为过去一周所有采集周期采集到的负荷指标,则认为系统负荷指标的变化基本以周为单位;或者,该T个历史时刻的负荷指标可为过去一个月所有采集周期采集到的负荷指标,则认为系统负荷指标的变化基本以月为单位。
设负荷指标上限阈值的可能取值有th1,th2,...,thU,负荷指标下限阈值的可能取值有tl1,tl2,...,tlL,阈值更新流程就是以历史的负荷指标为参考,从所有可能的阈值对(tli,thj)中选择一对最佳阈值,所采用的评价标准为投入回报比,各性能指标中符合所述预设的性能指标要求的性能指标的数量越多,各历史时刻使用的VM数量的总和越少,投入回报比越高。具体计算过程如图10所示,包括如下步骤:
S1001:第二判决模块203从数据采集模块201中获取T个历史时刻的系统的负荷指标w1,w2,...,wT;
其中,数据采集模块201将采集的负荷指标存储在自身的历史数据库中;
S1002:第二判决模块203从备选阈值对中选择一组阈值对(tli,thj),用该阈值对作为负荷指标阈值下限与负荷指标阈值上限,针对T个历史时刻的系统的负荷指标w1,w2,...,wT,确定要对系统执行的第二操作;
对第t个负荷指标wt,用选定的阈值对(tli,thj)确定要对系统执行的第二操作,预测在执行第二操作之后,系统使用的VM的数量为为vt;利用数据分析模块205输出的performance=f(workload,vm_number),按照下列公式六计算得到性能指标pt:
pt=f(wt,vt)......公式六
依次处理w1,w2,...,wT后,得到VM数量(v1,v2,...,vT)和性能数据(p1,p2,...,pT)。
S1003:针对每一个阈值对(tli,thj),按照下面的公式七,计算得到该阈值对所对应的投入回报比ROIi,j:
ROIi,j=h((v1,v2,...,vT),(p1,p2,...,pT))......公式七
可选地,ROIi,j可定义为:T个历史时刻中,系统的性能指标符合预设的性能指标阈值的总时间,与VM运行的总时间的比值。
比如:T个历史时刻中,符合预设的性能指标阈值的性能指标数量为X,数据采集模块201的采集周期为Period,则ROIi,j可由下面的公式八计算得到:
S1004:从步骤S1003计算得到的U×L个ROI中,选择最大的ROI对应的阈值对,作为最佳阈值对,将最佳阈值对中的负荷指标上限阈值作为最佳的负荷指标上限阈值,负荷指标下限阈值作为最佳的负荷指标下限阈值;
S1005:根据选择的最佳的负荷指标下限阈值和最佳的负荷指标上限阈值,对系统使用的VM的数量进行调整。
实施例三本实施例提供了一种确定负荷指标上限阈值和负荷指标下限阈值的方法。采用该方法可以解决阈值难以确定的问题。第二判决模块203可定期运行本实施例中提到的步骤S1001~步骤S1003,调整负荷指标上限阈值和负荷指标下限阈值,使得其在调整系统使用的VM的数量时,采用最佳的阈值进行调整,提高VM的利用效率。
与图1所示的VM数量调整方案中,负荷指标上限阈值和负荷指标下限阈值是人为指定,预先配置好的,用户调用云服务供应商的应用程序接口(Application ProgrammingInterface,API)对阈值进行配置,配置的阈值无法适应当前系统负荷的变化,盲目地设置可能导致资源浪费或者性能指标无法满足要求。采用实施例三提供的方法,阈值可适应系统负荷的变化,提高了VM的利用效率。
【实施例四】
实施例四说明了本发明实施例提供的确定VM数量调整操作的装置与VNF的关系。
根据不同的应用策略,本发明实施例提供的确定VM数量调整操作的装置可部署在各VNF的内部,如图11所示;也可以部署在VNF之外的负责对VNF进行管理和编排的的网元内,比如:VNF管理器(VNF Manager,VNFM)内,如图12所示。
如图11所示,若部署在VNF内部,则本发明实施例提供的确定VM数量调整操作的装置可以位于该VNF内的用于进行业务控制的业务控制单元或用于进行资源控制的资源控制单元中,其中用于进行业务控制的单元用于建立业务、释放业务以及调整业务,用于进行资源控制的单元用于对包括VM在内的资源进行调整、增加、删除等控制。图11中,VNF-1、VNF-2和VNF3中各有一个确定VM数量调整操作的装置。
如12所示,若本发明实施例提供的确定VM数量调整操作的装置部署在VNF之外的负责对VNF进行管理和编排的网元内,比如:VNF管理器中。由于一个VNF由一个VNF管理器进行管理,所以,对于不同的VNF,需要分别在其对应的VNF管理器中部署本发明实施例提供的确定VM数量调整操作的装置,以实现对不同的VNF的VM数量调整。
【实施例五】
本发明实施例可应用的业务场景可包括如图13所示的两种基本的业务场景(基本场景1和基本场景2),以及图14所示的综合场景。
其中,图13示出的基本场景1是一种日常忙时闲时特征的业务场景,该场景的主要特征是系统负载会随着时间呈现出明显的波峰与波谷,并且波峰与波谷的持续时间较长。比如:每天上午8点到下午10点为忙时,其他时间段为闲时;
图13示出的基本场景2是一种突发性业务场景。该场景的主要特征是:也包括波峰和波谷,但波峰和波谷的持续时间较短。比如:在中午12点30到12点45之间出现了短时的业务波峰。
图14示出的综合场景,该场景是图13示出的两个基本的业务场景的组合。
本发明实施例适用于上述任何一种业务场景,均可实现准确实时地调整VM的数量。
以上,介绍了本发明实施例提供的三种确定VM数量调整操作的装置,下面,介绍本发明实施例提供的第四种确定VM数量调整操作的装置。
如图15所示,本发明实施例提供的第四种确定VM数量调整操作的装置包括:
存储器1501,用于存储VM数量调整操作的程序;
处理器1502,用于调用存储器1501中的所述程序,确定对系统执行的VM数量调整的操作。
处理器1502执行的处理可具体参见本发明实施例提供的第一种、第二种和第三种确定VM数量调整操作的装置中的处理,重复之处不再赘述。
其中,可选地,处理器1502进行如下处理:
获取当前时刻系统的负荷指标和系统使用的VM的数量,其中,系统使用一个或多个VM;
根据当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作;
第一操作包括:增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数,且m、n是根据当前时刻系统的负荷指标和系统使用的VM的数量确定的。
其中,在图15中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1502代表的一个或多个处理器和存储器1501代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。用户接口1503还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
以上,介绍了本发明实施例提供的确定VM数量调整操作的装置,基于与该装置相同的发明构思,本发明实施例还提供了一种确定VM数量调整操作的方法,其实施可参照装置的实施,重复之处不再赘述。
图16为本发明实施例提供的确定VM数量调整操作的方法的流程图。如图16所示,该方法包括:
S1601:获取当前时刻系统的负荷指标和系统使用的VM的数量,其中,系统包括一个或多个VM;
S1603:根据当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作;
第一操作包括:增加m个VM、减少n个VM,或保持VM数量不变,其中,m、n为正整数,且m、n是根据当前时刻系统的负荷指标和系统使用的VM的数量确定的。
可选地,确定要对系统执行的第一操作,包括:
确定第一操作,以使执行第一操作之后系统的性能指标符合预设的性能指标要求,且使用的VM的数量最少;
其中,执行第一操作之后系统的性能指标,是根据当前时刻系统的负荷指标,以及执行第一操作之后系统使用的VM的数量预测的;执行第一操作之后系统使用的VM的数量,是根据当前时刻系统使用的VM的数量,以及确定的第一操作预测的。
可选地,在确定要对系统执行的第一操作之前,还包括:获取当前时刻系统的性能指标;
确定要对系统执行的第一操作,包括:
根据当前时刻系统的负荷指标、性能指标和系统使用的VM的数量,确定在当前时刻系统所处的当前状态;
对于可执行的第一操作的集合中的每一个第一操作,确定如下三项数值,并根据确定的如下三项数值,更新在当前状态下,对系统执行该第一操作得到的累积的回报值:
上一次系统处于当前状态下对系统执行该第一操作得到的累积的回报值、在当前时刻对系统执行该第一操作得到的即时的回报值,以及上一次系统处于下一个状态下,对系统执行可执行的第一操作的集合中的每一个第一操作得到的累积的回报值中的最大值,其中,下一个状态为执行该第一操作之后系统所处的状态;
从更新后的每一个第一操作对应的、对系统执行该第一操作得到的累积的回报值中,选择最大的累积的回报值对应的第一操作,作为要对系统执行的第一操作;
其中,回报值是根据系统使用的VM的数量,以及系统在当前时刻系统的负荷指标所指示的负荷下的性能指标确定的,系统使用的VM的数量越少,系统的性能指标指示系统的性能越高,回报值越大。
可选地,确定在当前时刻对系统执行该第一操作得到的即时的回报值,包括:
根据预测的执行该第一操作之后系统使用的VM的数量,以及当前时刻系统的负荷指标,预测执行该第一操作之后系统的性能指标;
根据预测的执行该第一操作之后系统使用的VM的数量和系统的性能指标,确定在当前时刻对系统执行该第一操作得到的即时的回报值。
可选地,确定在执行该第一操作之后系统所处的下一个状态下,对系统执行可执行的第一操作的集合中的每一个第一操作得到的累积的回报值中的最大值,包括:
根据当前时刻系统的负荷指标、执行该第一操作之后系统使用的VM的数量,预测在执行该第一操作之后系统所处的下一个状态;
确定在下一个状态下,对系统执行可执行的第一操作的集合中的每一个第一操作得到的累积的回报值;
从确定的各累积的回报值中,选取最大的累积的回报值。
可选地,在确定要对系统执行的第一操作之前,还包括:选择VM数量调整的方式;
确定要对系统执行的第一操作,包括:
若选择的VM数量调整的方式为:根据获取的当前时刻系统的负荷指标和系统使用的VM的数量,调整系统使用的VM的数量,则
根据获取的当前时刻系统的负荷指标和系统使用的VM的数量,确定要对系统执行的第一操作。
可选地,若选择的VM数量调整的方式为:按照系统的负荷指标上限阈值和系统的负荷指标下限阈值,判断是否需要调整VM数量,则在选择VM数量调整的方式之后,还包括:
将获取的当前时刻系统的负荷指标与系统的负荷指标上限阈值和系统的负荷指标下限阈值比较,根据比较结果确定要对系统执行的第二操作,第二操作包括:增加p个VM、减小q个VM,或保持VM数量不变,p为预设的向上调整步长,q为预设的向下调整步长,p、q为正整数。
可选地,负荷指标上限阈值和负荷指标下限阈值是根据获取的当前时刻之前的T个历史时刻中,每一个历史时刻系统的负荷指标,按照如下条件确定的:
在对系统执行第二操作之后,系统的性能指标符合预设的性能指标要求,且使用的VM的数量最少,其中T为正整数。
可选地,负荷指标上限阈值和负荷指标下限阈值具体是根据如下步骤确定的:
针对每一个备选的负荷指标上限阈值和负荷指标下限阈值的组合,通过执行如下步骤,确定投入回报比:
对于获取的每一个历史时刻系统的负荷指标,预测根据该备选的负荷指标上限阈值和负荷指标下限阈值的组合对系统执行第二操作后,系统使用的VM数量;并根据该历史时刻系统的负荷指标和预测的系统执行第二操作后使用的VM数量,预测在执行第二操作之后系统的性能指标;
根据每一个历史时刻所对应的、执行第二操作之后系统使用的VM数量和的性能指标,确定投入回报比,其中,各性能指标中符合预设的性能指标要求的性能指标的数量越多,各历史时刻系统使用的VM数量的总和越少,投入回报比越高;
选择最大投入回报比对应的备选的负荷指标上限阈值和负荷指标下限阈值的组合;将选择的该组合中的负荷指标上限阈值,作为确定的负荷指标上限阈值,将选择的该组合中的负荷指标下限阈值,作为确定的负荷指标下限阈值。
综上,本发明实施例提供一种确定VM数量调整操作的装置和方法。其中,若根据系统的负荷指标和系统使用的VM的数量调整VM的数量,则在调整时,不仅可确定是增加、减少还是保持VM的数量不变,而且还能准确确定VM数量调整的数值,使得能够根据系统的负荷变化和当前时刻使用的VM的数量实时确定VM调整的数量,提高了VM调整的实时性。
其中,若根据系统的历史负荷调整负荷指标上限阈值和负荷指标下限阈值,可根据系统的负荷灵活设置VM数量调整的阈值,对不同阈值进行评估,以选择最佳阈值,提高了系统VM利用率,保证了系统的性能指标要求。
可选地,在根据系统的负荷指标和系统使用的VM的数量调整VM的数量时,使得在VM数量调整后,系统的性能指标符合预设的性能指标要求,且系统使用的VM的数量最少,能够兼顾系统的性能指标和系统的VM数量的要求,在保证系统的性能指标的要求前提下,提高VM利用率。
可选地,在根据系统的负荷指标和系统使用的VM的数量调整VM的数量时,采用强化学习的方法,在确定调整的数值时,考虑了当前时刻前的历史时刻的累积的回报值,而且还考虑了下一时刻可能的回报值,从而不必再如图1所示的方法中,设置冷却时间,进而提高了VM数量调整的实时性。利用实施例一的强化学习的特性,能够减少不必要的扩容和缩容的操作,减缓了乒乓效应。
可选地,在根据系统的历史负荷调整负荷指标上限阈值和负荷指标下限阈值时,使得在调整VM数量后,系统的性能指标符合预设的性能指标要求,且使用的VM数量最少,能够兼顾系统的性能指标和系统的VM数量的要求。
可选地,在根据系统的历史负荷调整负荷指标上限阈值和负荷指标下限阈值时,对不同的系统负荷情况,分别对各可用的阈值进行评估,选择最佳阈值,使得其在调整系统使用的VM的数量时,根据选择的最佳阈值进行调整,提高了VM的利用效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。