虚拟机扩缩容方法、装置、计算设备及计算机存储介质与流程

文档序号:33145428发布日期:2023-02-03 21:26阅读:83来源:国知局
虚拟机扩缩容方法、装置、计算设备及计算机存储介质与流程

1.本发明涉及通信技术领域,具体涉及一种虚拟机扩缩容方法、装置、计算设备及计算机存储介质。


背景技术:

2.在云化环境下,很多应用运行在虚拟化资源池上。当虚拟机负载过高时,需要对虚拟机进行扩容,以免发生故障。当虚拟机负载空闲时,需要对虚拟机进行缩容,以便节省资源,提高资源池利用效率。现有技术中,往往通过预设资源使用率警戒线,当资源使用率超过预设范围时产生告警,由人工排查确认资源使用情况后,依靠业务经验决定扩容或缩容的资源配置,再进行手动扩缩容处置。然而,人工干预决策和处置工作量大,及时性差,准确性低,往往导致富余资源无法及时释放,紧急需求无法快速扩容的问题。


技术实现要素:

3.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的虚拟机扩缩容方法、装置、计算设备及计算机存储介质。
4.根据本发明实施例的一个方面,提供了一种虚拟机扩缩容方法,包括:
5.s1,获取虚拟机的历史资源使用量数据;
6.s2,根据历史资源使用量数据,利用时序预测算法预测虚拟机的下一周期预期资源需求量;
7.s3,根据下一周期预期资源需求量和当前的实际资源使用量,确定虚拟机扩缩容策略;
8.s4,对虚拟机扩缩容策略进行后向校验;若校验通过,则执行s5;若校验未通过,则跳转执行s2;
9.s5,判断是否符合虚拟机扩缩容策略的触发条件;若是,则执行s6;若否,则跳转执行s2;
10.s6,基于虚拟机扩缩容策略对虚拟机进行扩容或缩容处理。
11.根据本发明实施例的另一方面,提供了一种虚拟机扩缩容装置,包括:
12.获取模块,适于获取虚拟机的历史资源使用量数据;
13.预测模块,适于根据历史资源使用量数据,利用时序预测算法预测虚拟机的下一周期预期资源需求量;
14.确定模块,适于根据下一周期预期资源需求量和当前的实际资源使用量,确定虚拟机扩缩容策略;
15.后向校验模块,适于对虚拟机扩缩容策略进行后向校验;若校验通过,则触发判断模块执行;若校验未通过,则触发预测模块执行;
16.判断模块,适于判断是否符合虚拟机扩缩容策略的触发条件;若是,则触发扩缩容处理模块执行;若否,则触发预测模块执行;
17.扩缩容处理模块,适于基于虚拟机扩缩容策略对虚拟机进行扩容或缩容处理。
18.根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
19.存储器用于存放至少一可执行指令,可执行指令使处理器执行上述虚拟机扩缩容方法对应的操作。
20.根据本发明实施例的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述虚拟机扩缩容方法对应的操作。
21.根据本发明上述实施例提供的方案,实现了虚拟机资源使用量的趋势预测,智能推荐扩缩容策略并进行自动扩缩容,从而解决人工设置资源利用率阈值和策略,准确性低、工作量大、及时性差的问题,提高资源池整体利用效率,提升了虚拟机扩缩容的准确率,避免误操作。
22.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
23.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
24.图1示出了本发明实施例提供的虚拟机扩缩容方法流程图;
25.图2示出了本发明实施例提供的虚拟机扩缩容装置的结构示意图;
26.图3示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
27.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
28.图1示出了本发明实施例提供的虚拟机扩缩容方法的流程图。如图1所示,该方法包括以下步骤:
29.步骤s101,获取虚拟机的历史资源使用量数据。
30.虚拟机(virtual machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的cmos、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
31.虚拟机的历史资源使用量数据是虚拟机历史所使用的资源量的数据,本步骤获取虚拟机的历史资源使用量数据,以进行下一周期预期资源需求量的预测。
32.步骤s102,根据历史资源使用量数据,利用时序预测算法预测虚拟机的下一周期
预期资源需求量。
33.在本实施例中,可以利用时序预测算法来预测虚拟机的下一周期预期资源需求量,例如,利用prophet时序预测算法,prophet时序预测算法把时间序列y(t)分解为几个部分,分别是趋势项g(t),周期项s(t),节假日项h(t)。对所有的t≥0,有y(t)=g(t)+s(t)+h(t)+ε
t

34.其中,趋势项g(t)表示时间序列在非周期上面的变化趋势;周期项s(t),或者称为季节项;节假日项h(t)表示在当天是否存在节假日;εt表示误差项或者称为剩余项。
35.prophet时序预测算法对虚拟机历史资源使用量数据,例如,cpu和内存资源使用量数据进行分段线性拟合,从而预测得到虚拟机的下一周期预期资源需求量,这里可以通过最近60个采集周期的虚拟机历史资源使用量数据实时预测出下一周期预期资源需求量。当然,本实施例并不限于prophet时序预测算法,还可以采用其它预测算法,这里不再一一列举。
36.步骤s103,根据下一周期预期资源需求量和当前的实际资源使用量,确定虚拟机扩缩容策略。
37.在本步骤中,可以将预测的下一周期预期资源需求量和当前的实际资源使用量进行对比,来自动确定虚拟机扩缩容策略,更具体地,可以通过如下方法实现:计算下一周期预期资源需求量与当前的实际资源使用量之间的差值;若差值为正且差值与当前的实际资源使用量之比大于预设扩容百分比,则确定虚拟机扩容策略;若差值为负并且差值的绝对值与当前的实际资源使用量之比大于预设缩容百分比,则确定虚拟机缩容策略。
38.虚拟机扩容定义为,在符合扩容判别条件下,将虚拟机的cpu或内存的资源量增大至上述下一周期预期资源需求量匹配;虚拟机缩容定义为,在符合缩容判别条件下,将虚拟机的cpu或内存的资源量减小至上述下一周期预期资源需求量匹配;
39.虚拟机扩缩容策略判别算法如下:
40.1)虚拟机扩容判别
41.将虚拟机的下一周期预期资源需求量减去当前的实际资源使用量,若得到的差值为正,且为差值与当前的实际资源使用量之比大于预设扩容百分比,则确定虚拟机扩容策略,例如,下一周期预期资源需求量为16g,当前的实际资源使用量为12g,差值为4g,4g/12g》10%,则确定虚拟机扩容策略,例如,扩容4g;
42.2)虚拟机缩容判别
43.将虚拟机的下一周期预期资源需求量减去当前的实际资源使用量,若得到的差值为负,并且差值的绝对值与当前的实际资源使用量之比大于预设缩容百分比,则确定虚拟机缩容策略,例如下一周期预期资源需求量为8g,当前的实际资源使用量为12g,差值为-4g,|-4g/12g|》10%,则确定虚拟机缩容策略,例如,缩容4g。
44.步骤s104,对虚拟机扩缩容策略进行后向校验;若校验通过,则执行步骤s105;若校验未通过,则跳转执行步骤s102。
45.为了避免预测结果不准确而引起的误操作问题,本实施例在确定了虚拟机扩缩容策略后,并没有立即根据虚拟机扩缩容策略进行虚拟机扩容或缩容处理,而是需要先对虚拟机扩缩容策略进行后向校验,具体地,获取虚拟机的下一周期实际资源使用量;根据下一周期实际资源使用量、下一周期预期资源需求量、当前的实际资源使用量确定资源使用量
变化趋势;若资源使用量变化趋势与虚拟机扩缩容策略相匹配,则确定后向校验通过;若资源使用量变化趋势与虚拟机扩缩容策略不匹配,则确定后向校验未通过。若校验通过,则执行s105;若校验未通过,则跳转执行s102。
46.步骤s105,判断是否符合虚拟机扩缩容策略的触发条件;若是,则执行步骤s106;若否,则跳转执行步骤s102。
47.为了进一步限制虚拟机扩缩容执行频率,在后向校验通过的情况下,还需要进一步判断是否符合虚拟机扩缩容策略的触发条件,例如,判断后向校验连续通过次数是否大于或等于预设次数;若是,则确定符合虚拟机扩缩容策略的触发条件;若否,则确定不符合虚拟机扩缩容策略的触发条件。
48.步骤s106,基于虚拟机扩缩容策略对虚拟机进行扩容或缩容处理。
49.若步骤s103中确定的是虚拟机扩容策略,则将虚拟机的资源量增大至与下一周期预期资源需求量匹配;若步骤s103中确定的是虚拟机缩容策略,将虚拟机的资源量减小至与下一周期预期资源需求量匹配。
50.举例说明,在对虚拟机扩缩容策略进行后向校验时,根据实际采集的虚拟机的下一周期实际资源使用量,对步骤s103确定的虚拟机扩缩容策略的准确性进行校验。当虚拟机扩缩容策略具体为扩容时,暂不执行扩容操作,等待采集到下一周期实际资源使用量时,判断资源使用量变化趋势是否与虚拟机扩缩容策略相匹配,得出后向校验结果是否命中的判定。例如,在t时刻实际的资源使用量为12g,预测的t+1时刻的资源需求量为16g,推荐扩缩容策略为扩容4g;实际采集的t+1时刻的资源使用量为15g,资源使用量变化趋势与虚拟机扩缩容策略相匹配,即(15g-12g)/(16g-12g)》0,则后向校验结果为通过;否则为未通过。
51.触发条件:触发条件是对触发自动扩缩容操作的前置条件进行定义,当后向校验的结果为通过达到一定次数后,才真正执行自动扩缩容操作,否则对虚拟机扩缩容策略的建议保持挂起。例如,定义触发条件为持续通过2次后才执行扩缩容策略,则在接收到预测结果和建议扩缩容策略时,不立刻执行操作,执行后向校验,当后向校验结果连续通过2次时,才执行扩缩容操作;否则始终挂起。可选地,还可以不设定触发条件,即,在后向校验通过后,则基于虚拟机扩缩容策略立刻触发自动扩缩容。
52.在本发明一种可选实施方式中,在获取虚拟机的历史资源使用量数据之后,可以对获取的历史资源使用量数据进行数据清洗,数据清洗主要分为以下三个流程:1)对历史资源使用量数据进行重复值过滤处理,例如,对于虚拟机型号、时间和指标字段均重复的字段进行剔除,对于只有虚拟机型号、时间字段重复的数据进行指标字段的数据合并(求和或求均值处理),得到性能指标在时空上的唯一性(虚拟机唯一标识、时间);2)对过滤处理后的历史资源使用量数据进行异常值剔除处理,例如,由采集误差、系统网络问题等造成的大幅度偏离数据中心的异常值,在进行时序预测过程中会影响预测性能。一般情况下,呈现正态分布的数据可通过k-sigma方法进行异常的剔除处理;或者不能明确数据的分布时,可通过kde核密度估计算法进行异常值的剔除,其中,所谓kde核密度估计,就是采用平滑的峰值函数(“核”)来拟合观察到的数据点,从而对真实的概率分布曲线进行模拟。在我们知道某一事物的概率分布的情况下,如果某一个数在观察中出现了,我们可以认为这个数的概率密度很大,和这个数比较近的数的概率密度也会比较大,而那些离这个数远的数的概率密度会比较小;3)对异常值剔除处理后的历史资源使用量数据进行归一化处理,不同虚拟机
上指标会出现量纲不一致的情况,不利于数据的统一化预测工作,采用最大最小归一化处理,具体计算公式如下:可得到归一化后的数据。
53.本发明提供的方案,能够提前预测资源利用率风险并进行自动扩缩容,实现端到端虚拟机扩缩容,准确、及时发现资源利用率问题并自动处置,解决了事后分析处置及时性差工作量大的问题,起到事前预警和提前干预的作用,有效地提高资源池整体利用率和整体的运维效率。
54.本发明方案解决了现有的虚拟机扩缩容方案存在的依赖业务经验、事后分析处置实时性较差、工作量大的问题,通过时序预测算法实现了虚拟机资源使用量的趋势预测,智能推荐扩缩容策略并进行自动扩缩容,节约人力时间成本,避免了人工设定阈值参数和策略分析对业务经验的高度依赖,提高资源池整体利用率和运维效率,提升了虚拟机扩缩容的准确率,避免误操作。
55.图2示出了本发明实施例提供的虚拟机扩缩容装置的结构示意图。如图2所示,该装置包括:获取模块201、预测模块202、确定模块203、后向校验模块204、判断模块205、扩缩容处理模块206。
56.获取模块201,适于获取虚拟机的历史资源使用量数据;
57.预测模块202,适于根据历史资源使用量数据,利用时序预测算法预测虚拟机的下一周期预期资源需求量;
58.确定模块203,适于根据下一周期预期资源需求量和当前的实际资源使用量,确定虚拟机扩缩容策略;
59.后向校验模块204,适于对虚拟机扩缩容策略进行后向校验;若校验通过,则触发判断模块执行;若校验未通过,则触发预测模块执行;
60.判断模块205,适于判断是否符合虚拟机扩缩容策略的触发条件;若是,则触发扩缩容处理模块执行;若否,则触发预测模块执行;
61.扩缩容处理模块206,适于基于虚拟机扩缩容策略对虚拟机进行扩容或缩容处理。
62.可选地,后向校验模块进一步适于:获取虚拟机的下一周期实际资源使用量;
63.根据下一周期实际资源使用量、下一周期预期资源需求量、当前的实际资源使用量确定资源使用量变化趋势;
64.若资源使用量变化趋势与虚拟机扩缩容策略相匹配,则确定后向校验通过;
65.若资源使用量变化趋势与虚拟机扩缩容策略不匹配,则确定后向校验未通过。
66.可选地,判断模块进一步适于:判断后向校验连续通过次数是否大于或等于预设次数;
67.若是,则确定符合虚拟机扩缩容策略的触发条件;
68.若否,则确定不符合虚拟机扩缩容策略的触发条件。
69.可选地,确定模块进一步适于:计算下一周期预期资源需求量与当前的实际资源使用量之间的差值;
70.若差值为正且差值与当前的实际资源使用量之比大于预设扩容百分比,则确定虚拟机扩容策略;
71.若差值为负并且差值的绝对值与当前的实际资源使用量之比大于预设缩容百分
比,则确定虚拟机缩容策略。
72.可选地,扩缩容处理模块进一步适于:将虚拟机的资源量增大至与下一周期预期资源需求量匹配;或者
73.将虚拟机的资源量减小至与下一周期预期资源需求量匹配。
74.可选地,装置还包括:数据清洗模块,适于对历史资源使用量数据进行重复值过滤处理;对过滤处理后的历史资源使用量数据进行异常值剔除处理;对异常值剔除处理后的历史资源使用量数据进行归一化处理。
75.本发明方案解决了现有的虚拟机扩缩容方案存在的依赖业务经验、事后分析处置实时性较差、工作量大的问题,通过时序预测算法实现了虚拟机资源使用量的趋势预测,智能推荐扩缩容策略并进行自动扩缩容,节约人力时间成本,避免了人工设定阈值参数和策略分析对业务经验的高度依赖,提高资源池整体利用率和运维效率,提升了虚拟机扩缩容的准确率,避免误操作。
76.本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的虚拟机扩缩容方法。
77.图3示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
78.如图3所示,该计算设备可以包括:处理器(processor)、通信接口(communications interface)、存储器(memory)、以及通信总线。
79.其中:处理器、通信接口、以及存储器通过通信总线完成相互间的通信。通信接口,用于与其它设备比如客户端或其它服务器等的网元通信。处理器,用于执行程序,具体可以执行上述用于计算设备的虚拟机扩缩容方法实施例中的相关步骤。
80.具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
81.处理器可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
82.存储器,用于存放程序。存储器可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
83.程序具体可以用于使得处理器执行上述任意方法实施例中的虚拟机扩缩容方法。程序中各步骤的具体实现可以参见上述虚拟机扩缩容实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
84.在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。
85.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
86.类似地,应当理解,为了精简本发明实施例并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
87.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
88.此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
89.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
90.应该注意的是上述实施例对本发明实施例进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1