1.本说明书实施例涉及计算机技术领域,特别涉及一种虚拟机管理方法。
背景技术:2.随着云计算的不断普及以及高性能计算场景的不断增加,越来越多的客户需求在云计算的宿主机处于计算空闲期情况下,利用云计算的空闲计算资源(例如虚拟机)进行计算服务。而随着数据量的不断增大,会造成宿主机在计算高峰期需要使用较多的计算资源,因此,需要将运行在宿主机中的虚拟机删除,从而释放宿主机的计算资源,提高宿主机的计算效率。
3.但是,将宿主机中的虚拟机删除,会导致客户的计算服务执行失败。因此,在删除该虚拟机的过程中,如何对虚拟机的计算状态进行保存,便于后续在计算空闲期对虚拟机进行恢复,保证计算服务的正常执行成为待解决的问题。
技术实现要素:4.有鉴于此,本说明书实施例提供了一种虚拟机管理方法。本说明书一个或者多个实施例同时涉及一种虚拟机管理装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种虚拟机管理方法,包括:
6.确定宿主机的当前运行状态,并在所述当前运行状态满足第一预设状态条件的情况下,确定所述宿主机中当前运行的虚拟机,以及所述当前运行的虚拟机的属性信息;
7.将所述属性信息满足预设处理条件的虚拟机,确定为目标虚拟机;
8.存储所述目标虚拟机的计算状态信息,并删除所述宿主机中的目标虚拟机。
9.根据本说明书实施例的第二方面,提供了一种虚拟机管理装置,包括:
10.第一确定模块,被配置为确定宿主机的当前运行状态,并在所述当前运行状态满足第一预设状态条件的情况下,确定所述宿主机中当前运行的虚拟机,以及所述当前运行的虚拟机的属性信息;
11.第二确定模块,被配置为将所述属性信息满足预设处理条件的虚拟机,确定为目标虚拟机;
12.删除模块,被配置为存储所述目标虚拟机的计算状态信息,并删除所述宿主机中的目标虚拟机。
13.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
14.存储器和处理器;
15.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述虚拟机管理方法的步骤。
16.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述虚拟机管理方法的步骤。
17.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述虚拟机管理方法的步骤。
18.本说明书提供的虚拟机管理方法,包括:确定宿主机的当前运行状态,并在所述当前运行状态满足第一预设状态条件的情况下,确定所述宿主机中当前运行的虚拟机,以及所述当前运行的虚拟机的属性信息;将所述属性信息满足预设处理条件的虚拟机,确定为目标虚拟机;存储所述目标虚拟机的计算状态信息,并删除所述宿主机中的目标虚拟机。
19.具体地,该虚拟机管理方法能够在宿主机的当前运行状态第一预设状态条件的情况下,确定宿主机中属性信息满足预设处理条件的目标虚拟机,并将目标虚拟机的计算状态信息进行存储之后,删除该目标虚拟机,从而实现了对虚拟机的计算状态进行保存,便于后续对虚拟机进行恢复,进一步保证计算服务的正常执行。
附图说明
20.图1是本说明书一个实施例提供的一种虚拟机管理方法的应用场景图;
21.图2是本说明书一个实施例提供的一种虚拟机管理方法的流程图;
22.图3是本说明书一个实施例提供的一种虚拟机管理方法的处理过程流程图;
23.图4是本说明书一个实施例提供的一种虚拟机管理装置的结构示意图;
24.图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
25.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
26.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
29.云服务器:是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。
30.操作系统:是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。
31.系统配置:是指用户可接触的操作系统相关的一些配置,包含网络、安全、存储等。
32.linux操作系统:linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix(可移植操作系统接口)和unix(一种操作系统)的多用户、多任务、支持多线程和多
cpu(中央处理器)的操作系统。
33.访问权限:是在各种预定义的组中用户的身份标识及其成员身份来限制访问某些信息项或某些控制的机制。
34.hpc:高性能计算集群。
35.对象存储服务:对象存储服务(object storage service,oss)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
36.内存快照:是虚拟机内存(memory)在某个点即时的副本。
37.libvirtsave&restore:是一种技术,用于将running(运行)的虚拟机的内存状态保存到文件上的技术,后续可以通过这个文件恢复虚拟机的计算状态。
38.云盘:一种专业的互联网存储工具,是互联网云技术的产物,它通过互联网为企业和个人提供信息的储存,读取,下载等服务。
39.region:指的是划分的大的区域。比如:华北区域,华东三区域、法兰克福区域、华东1区域等。该region表示oss的数据中心所在物理位置。用户可以根据费用、请求来源等选择合适的区域创建bucket(oss场景中,用户用来管理所存储对象的存储空间)。一般来说,距离用户更近的region访问速度更快。
40.ntp服务:是用来使计算机时间同步化的一种协议。
41.随着云计算的不断普及以及高性能计算用户场景的不断增加。许多客户能够基于云计算技术进行完成各种类型的计算任务,该计算任务包括但不限于神经网络模型的训练、大数据检索等。而在本说明书提供的一实施例中,该云计算的计算资源的价格,能够根据客户的需求进行弹性的调整。例如,当某一时间段的计算资源被较多的用户购买,那么这个时间段(计算高峰期)的计算资源的价格就会相对较高。当某一时间段的计算资源被较少的用户购买,那么这个时间段(计算空闲期)的计算资源的价格就会相对较低。而有越来越多的客户基于对一次运算任务的成本的考虑,需求能够在云计算中的宿主机处于计算空闲期的场景下,利用云计算的空闲计算资源进行计算服务(执行计算任务),从降低他们的计算成本。其中,该计算任务是一种批量级的计算任务,也即是一个单批次处理大量数据运算的计算服务,比如说像一些就是说ai计算下的一个模型的推导(神经网络模块的训练)、或者大数据分析等。
42.其中,该模型的推导是一个逐渐收敛的过程,该计算任务需要将模型的准确率提升到90%或者95%以上,在此过程中,需要大量的时间和大量的计算资源,对大量的图片进行分析,从而获得一个结果,比如,一个收敛的模型。
43.其中,该大数据分析,即海量数据分析,这些数据分析也是单批次的计算任务,该计算任务需要有一个统一的结果,也即是一个统计的计算结果,该结果和上述模块推导的结果均为单批注单结论的。
44.但是,随着数据量的不断增大,云计算中宿主机的计算耗时也在不断增加,在弹性云计算的场景下,当云计算平台到达计算高峰期,但是计算空闲期的计算任务并未完成的情况下,可能会造成在计算高峰期时,需要使用较多的计算资源进行运算,从而造成云计算的成本增加。
45.基于此,本说明书提供的虚拟机管理方法能够应用于云计算平台,该云计算平台
基于一个高性能计算集群(hpc)进行执行各种计算,在云计算平台处于计算高峰期的情况下,将正在执行计算任务的虚拟机删除,并且在删除该虚拟机的过程中,对该虚拟机的计算状态进行保存,便于后续在计算空闲期的情况下,能够基于该计算状态恢复宿主机中运行的虚拟机,保证虚拟机能够完成用户的计算任务,避免删除虚拟机时导致计算任务的重算,避免了计算资源的浪费,提高了计算任务的处理效率。并且,本说明书提供的虚拟机管理方法,是在计算机层面上,在删除虚拟机的过程中,对虚拟机的计算状态进行保存,并基于该计算状态对虚拟机进行恢复,从而达到继续计算的目的。从而保证用户在执行计算服务过程中,对删除虚拟机过程的无感知。
46.具体地,在本说明书中,提供了一种虚拟机管理方法,本说明书同时涉及一种虚拟机管理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
47.参见图1,图1是本说明书一个实施例提供的一种虚拟机管理方法的应用场景图,其中,本说明书提供的虚拟机管理方法能够应用于云计算场景中,基于此,该虚拟机可以用于在云计算平台中执行特定的计算服务,且该虚拟机运行在宿主机上。当云计算平台的控制系统确定该宿主机的当前运行状态满足第一预设状态条件的情况下,确定该宿主机中当前运行的虚拟机,以及该当前运行的虚拟机的属性信息。将宿主机中当前运行的虚拟机中,属性信息满足预设处理条件的虚拟机,确定为目标虚拟机,并将该目标虚拟机的计算状态信息存储至信息存储模块中,且删除该宿主机中的目标虚拟机。从而释放了宿主机的计算资源,以及内存资源,降低了云计算平台的成本。同时,当云计算平台的控制系统确定该宿主机的当前运行状态满足第二预设状态条件的情况下,从信息存储模块中获取预先保存的,该目标虚拟机的计算状态信息,并基于该计算状态信息在宿主机中恢复目标虚拟机。从而达到继续执行计算服务的目的,避免了由于虚拟机删除导致计算服务需要重新计算的问题,提高了计算服务的运算效率,避免了计算机资源的浪费。
48.图2示出了根据本说明书一个实施例提供的一种虚拟机管理方法的流程图,具体包括以下步骤。
49.步骤202:确定宿主机的当前运行状态,并在所述当前运行状态满足第一预设状态条件的情况下,确定所述宿主机中当前运行的虚拟机,以及所述当前运行的虚拟机的属性信息。
50.在实际应用中,本说明提供的虚拟机管理方法可以应用于云计算场景下,其中,该虚拟机可以理解为云计算平台中,能够对用户的计算任务进行处理的云服务器、或云服务器主机。相应地,该宿主机可以理解为能够支持该虚拟机运行的物理机。也即是,云计算平台是宿主机的计算力的体现,该云计算平台中的宿主机是云计算平台的计算力总和。该宿主机的当前状态信息可以理解为表征该宿主机当前的运行状态的信息,例如,该当前状态信息可以为宿主机当前的空闲计算资源。或者该当前状态信息可以理解为该宿主机的当前时间。
51.相应地,第一预设状态条件可以理解为确定该宿主机当前是否处于高峰计算状态的条件,该第一预设状态条件可以根据实际应用场景进行设置。例如,在当前运行状态信息为宿主机当前的空闲计算资源的情况下,该满足第一预设状态条件可以理解为该空闲计算资源小于第一预设资源阈值。其中,该第一预设资源阈值可以根据实际应用场景进行设置,
例如,在该第一预设资源阈值为10%的情况下,满足第一预设状态条件可以为,宿主机当前空闲计算资源小于10%。再如,当前运行状态信息为宿主机的当前时间的情况下,该满足第一预设状态条件可以理解为该当前时间是否处于计算高峰期,该计算高峰期即计算资源被较多的用户购买的时间段。
52.或者,该第一预设状态条件可以理解为确定该宿主机当前是否处于空闲计算状态的条件,在实际应用中,当云计算平台到达计算空闲期,但是计算高峰期的计算任务并未完成的情况下,可能会造成在计算空闲期时,需要继续对计算高峰期未完成的计算任务进行运算,从而对计算空闲期的计算资源造成一定的占用,导致计算空闲期的任务无法正常完成。因此。例如在当前运行状态信息为宿主机的当前时间的情况下,该满足第一预设状态条件可以理解为该当前时间是否处于计算空闲期,该计算空闲期即计算资源被较少的用户购买的时间段。
53.其中,该虚拟机的属性信息可以理解为表征虚拟机是否支持数据备份技术,和/或表征该虚拟机所支持数据备份技术的类型。其中,该数据备份技术可以理解为将虚拟机的计算状态进行备份,以便于后续基于备份的计算状态对该虚拟机进行恢复的技术,例如,该数据备份技术可以为libvirt save&restore技术。其中,数据备份技术的类型可以理解为该数据备份技术的类型。在实际应用中,虚拟机可能会不配置不同的数据备份技术;但是,并非所有的数据备份技术都能够实现备份虚拟机的计算状态进行备份,并基于备份的计算状态恢复虚拟机。
54.在实际应用中,本说明书提供的虚拟机管理方法能够应用于虚拟机控制系统,该虚拟机控制系统可以理解为配置在云计算平台的宿主机中、且能够对云计算平台中的虚拟机进行管理的平台。具体的,控制系统能够确定出该宿主机的当前运行状态,并在该当前运行状态满足第一预设状态条件的情况下,能够确定该宿主机中当前运行的每个虚拟机,并确定每个虚拟机对应的属性信息。
55.下面以本说明书提供的虚拟机管理方法在对云服务器进行断点续算场景下的应用为例,对在宿主机的当前运行状态满足第一预设状态条件的情况下,确定宿主机中当前运行的虚拟机及其属性信息做进一步的说明。其中,该虚拟机为云计算平台的云服务器,该虚拟机基于宿主机实现;当前运行状态为宿主机的当前时间;虚拟机的属性信息可以为虚拟机所支持的数据备份技术的类型。
56.基于此,云计算平台的控制系统对宿主机的当前时间进行监测,从而实时获得宿主机的当前时间,在确定该当前时间处于计算高峰期的情况下,云计算平台的确定云计算平台中当前运行的所有云服务器,并执行指定云服务器进行关机操作。在执行该关机操作的过程中,控制系统需要判定云计算平台中创建的云服务器所支持使用的数据备份技术。
57.或者,云计算平台在确定该当前时间处于计算空闲期的情况下,云计算平台的确定云计算平台中当前运行的所有云服务器,并执行指定云服务器进行关机操作。在执行该关机操作的过程中,控制系统需要判定云计算平台中创建的云服务器所支持使用的数据备份技术。
58.在本说明书提供的实施例中,由于技术的不断升级,云计算平台为了提高虚拟机的性能,会为最新创建的虚拟机配置数据备份技术,但是,历史创建的云服务器可能存在不支持数据备份技术的情况,基于此,本说明书提供的虚拟机管理方法中,控制系统在确定宿
主机的当前时间处于计算高峰期的情况下,会确定当前运行的虚拟机,以及获取表征该虚拟机是否支持断点续算技术的信息,后续基于该信息确定该虚拟机是否支持断点续算技术;也即是确定该虚拟机是否能够进行数据备份并基于备份的数据进行恢复。
59.此外,由于云计算平台会为最新创建的虚拟机配置数据备份技术,而对于非第一次创建的云服务器,其未被配置断点续算技术的可能性较大,因此,需要针对非第一次创建的云服务器,获得其对应的表征是否支持断点续算技术的信息。用于后续确定该云服务器是否支持断点续算技术。
60.步骤204:将所述属性信息满足预设处理条件的虚拟机,确定为目标虚拟机。
61.其中,在虚拟机的属性信息能够表征虚拟机是否支持数据备份技术的情况下,该满足预设处理条件可以理解为确定该虚拟机支持数据备份技术;在虚拟机的属性信息为虚拟机所支持数据备份技术的类型的情况下,该满足预设处理条件可以理解为该虚拟机所支持数据备份技术为特定类型的数据备份技术;其中,该特定类型的数据备份技术可以根据实际应用场景进行设置,例如,该特定类型的数据备份技术可以为libvirt save&restore技术、restore&save技术(数据恢复和存储技术)。
62.其中,该目标虚拟机可以理解为宿主机中当前运行的、且满足预设处理条件的虚拟机。例如,该目标虚拟机可以理解为支持数据备份技术、且该数据备份数据的类型为特定类型的虚拟机。
63.沿用上例,在确定表征云服务器是否支持断点续算的信息、和/或确定该云服务器所支持的数据备份技术的类型之后,将支持断点续算、且所支持的数据备份技术的类型为restore&save技术的云服务器,确定为需要删除的目标云服务器(即目标虚拟机)。
64.步骤206:存储所述目标虚拟机的计算状态信息,并删除所述宿主机中的目标虚拟机。
65.其中,该计算状态信息可以理解为虚拟机的当前的计算状态的信息。例如,虚拟机的内存快照、虚拟机的内存状态信息等。
66.具体地,控制系统在从宿主机当前运行的虚拟机中,确定出目标虚拟机之后,能够确定该目标虚拟机的计算状态信息,并对该计算状态信息进行存储;且在完成对该计算状态信息的存储之后,将宿主机当前运行的虚拟机删除。从而释放宿主机的计算资源。
67.沿用上例,在从云服务中确定出支持断点续算,且使用的数据备份技术为restore&save技术的目标云服务器的情况下,基于restore&save技术获得该云服务器的内存快照,并对该内存快照进行存储;当完成对该内存快照的存储之后,销毁该云服务器,从而归还cpu资源、内存资源等。
68.本说明书提供的虚拟机管理方法,能够在宿主机的当前运行状态第一预设状态条件的情况下,确定宿主机中属性信息满足预设处理条件的目标虚拟机,并将目标虚拟机的计算状态信息进行存储之后,删除该目标虚拟机,从而实现了对虚拟机的计算状态进行保存,便于后续对虚拟机进行恢复,进一步保证计算服务的正常执行。
69.在本说明书实施例中,云厂商(即云计算平台)为了提高云服务器的断点续算的安全性和稳定性,能够利用对象存储服务,作为云服务器save(即对云服务器的计算状态进行恢复)以及云服务器restore(即对云服务器的计算状态进行保存)的存储中介。或者,该云厂商(即云计算平台)能够利用云盘作为云服务器save以及云服务器restore的存储中介,
具体实现方式如下。
70.所述存储所述目标虚拟机的计算状态信息,包括:
71.确定所述目标虚拟机的计算状态信息,并将所述计算状态信息存储至信息存储模块。
72.其中,该信息存储模块可以理解为存储该计算状态信息的模块,例如,该信息存储模块可以为对象存储服务中用于存储云服务器的计算状态、内存快照等数据的对象存储介质。或者,该信息存储模块可以为云盘。
73.具体地,控制系统在确定在从宿主机当前运行的虚拟机中,确定出目标虚拟机之后,能够获取该目标虚拟机的计算状态信息,并将该计算状态信息存储至信息存储模块中。
74.进一步地,在本说明书提供的一实施例中,为了便于后续在对目标虚拟机进行恢复的过程中,能够准确的从信息存储模块中确定对应的计算状态信息,可以在信息存储模块中创建一个与该目标虚拟机对应的信息存储单元,基于该信息存储单元对目标虚拟机的计算状态数据进行存储,从而提高获取该计算状态数据的效率,并进一步提高对该目标虚拟机的恢复效率,具体实现方式如下。
75.所述获取所述目标虚拟机的计算状态信息,并将所述计算状态信息存储至信息存储模块,包括:
76.在信息存储模块中,创建与所述目标虚拟机对应的信息存储单元;
77.获取所述目标虚拟机的计算状态信息,并将所述计算状态信息存储至所述信息存储单元。
78.其中,该信息存储单元可以理解为在信息存储模块中创建的、且用于存储目标虚拟机的计算状态信息的单元。例如,该信息存储单元可以为对象存储(对象存储服务)中创建的、且与该云服务器对应的内存文件,该内存文件用于存储云服务器的内存快照。或者,该信息存储单元可以为云盘中创建的、且与该云服务器对应的内存文件。
79.沿用上例,控制系统在确定出需要删除的云服务器之后,对于支持断点续算、且数据备份技术为restore&save技术的云服务器,在对象存储上创建与该云服务器对应的内存文件a,该内存文件a用以存储云服务器在断点续算过程中所保存的内存快照。
80.完成该内存文件的创建之后,将该云服务器的内存信息、内存快照、meta信息(元数据)保存到对象存储的内存文件a中。
81.进一步地,在实际应用中,在确定该当前时间处于计算高峰期的情况下,云计算平台的确定云计算平台中当前运行的所有云服务器,并执行指定云服务器进行关机操作。在执行该关机操作的过程中,控制系统需要判定云计算平台中创建的云服务器所支持使用的数据备份技术,并对于不支持使用的数据备份技术的云服务器直接删除,不进行数据备份操作。具体实现方式如下。
82.所述确定所述宿主机中当前运行的虚拟机,以及所述当前运行的虚拟机的属性信息之后,还包括:
83.将所述属性信息不满足所述预设处理条件的待处理虚拟机,确定为初始虚拟机,并将所述宿主机中的初始虚拟机删除。
84.沿用上例,控制系统直接销毁云计算服务中不支持断点续算的云服务器,从而归还cpu资源、内存资源等。
85.在本说明书提供的一实施例中,本说明书提供的虚拟机管理方法,在删除该目标虚拟机之后,还需要在宿主机的当前运行状态满足第二预设状态条件的情况下,会基于预先存储的计算状态信息恢复该目标虚拟机,从而实现针对该目标虚拟机的断点续算,进一步达到基于恢复的目标虚拟机,继续对计算任务执行计算操作的目的。具体实现方式如下。
86.本说明书提供的虚拟机管理方法中,所述删除所述宿主机中的目标虚拟机之后,还包括步骤一至步骤三:
87.步骤一:确定所述宿主机的当前运行状态。
88.具体的,控制系统能够确定出该宿主机的当前运行状态。
89.步骤二:在所述当前运行状态满足第二预设状态条件的情况下,获取所述目标虚拟机的计算状态信息。
90.在实际应用中,该第二预设状态条件能够根据第一预设状态条件的不同,被设置为不同的条件。例如,在第一预设状态条件为确定该宿主机当前是否处于高峰计算状态的条件的情况下,该第二预设状态条件可以理解为确定该宿主机当前是否处于空闲计算状态的条件;例如,在当前运行状态信息为宿主机当前的空闲计算资源的情况下,该满足第二预设状态条件可以理解为该空闲计算资源大于等于第二预设资源阈值。其中,该第二预设资源阈值可以根据实际应用场景进行设置,例如,在该预设资源阈值为70%的情况下,满足第二预设状态条件可以为,宿主机当前空闲计算资源大于等于70%。再如,当前运行状态信息为宿主机的当前时间的情况下,该满足第二预设状态条件可以理解为该当前时间是否处于计算空闲期,该计算空闲期即计算资源被较少的用户购买的时间段。
91.或者,在第一预设状态条件为确定该宿主机当前是否处于空闲计算状态的条件的情况下,该第二预设状态条件可以理解为确定该宿主机当前是否处于高峰计算状态的条件,相应地,在当前运行状态信息为宿主机的当前时间的情况下,该满足第二预设状态条件可以理解为该当前时间是否处于计算高峰期,该计算高峰期即计算资源被较多的用户购买的时间段。基于此,后续在基于第二预设状态条件确定该宿主机达到计算高峰期的情况下,基于预先保存的目标虚拟机的计算状态信息,恢复在宿主机的当前时间达到计算空闲期时,所删除的虚拟机。
92.具体地,控制系统在获得宿主机的当前运行状态之后,当确定该当前运行状态满足第二预设状态条件的情况下,获取预先存储的该目标虚拟机的计算状态信息,便于后续基于该计算状态信息恢复该目标虚拟机。
93.在本说明书实施例中,所述获取所述目标虚拟机的计算状态信息,包括:
94.确定所述宿主机的历史虚拟机,其中,所述历史虚拟机为所述宿主机中历史删除的虚拟机;
95.基于历史虚拟机的配置信息在所述宿主机中创建虚拟机,从所述虚拟机中确定待恢复目标虚拟机;
96.从信息存储模块中,获取与所述待恢复目标虚拟机对应的计算状态信息。
97.其中,该历史虚拟机可以理解为宿主机历史删除的虚拟机,该历史虚拟机包括支持断点续算技术的虚拟机,以及不支持断点续算技术的虚拟机。
98.目标虚拟机的配置信息可以理解为创建该目标虚拟机所需要的配置参数,例如,虚拟机的系统配置、该目标虚拟机所采用的镜像技术(数据备份技术)的类型、该目标虚拟
机的编号等。
99.沿用上例,控制系统在确定宿主机的当前运行状态满足第二预设状态条件的情况下,能够确定云计算平台中历史删除的云服务器,并从该历史删除的云服务器的配置信息重新在云计算平台中,将历史删除的云服务器创建出来。
100.之后,控制系统从创建的云服务器中确定出待恢复目标云服务器,其中,待恢复目标云服务器是基于历史删除的目标云服务器的配置信息创建的云服务器。因此,在确定待恢复目标云服务器之后,控制系统能够从对象存储服务中确定出预先存储的、且与该待恢复目标云服务器对应多个内存快照。
101.进一步地,所述从所述宿主机的历史虚拟机中确定所述目标虚拟机,包括:
102.确定所述宿主机中的虚拟机的属性信息;
103.将所述属性信息满足所述预设处理条件的虚拟机,确定为待恢复目标虚拟机。
104.沿用上例,云计算平台删除的云服务器中,既包括支持断点续算的云服务器,也包括不支持断点续算的云服务器,基于此,控制系统在基于历史删除的云服务器的配置信息,创建多个云服务器之后,需要确定表征云服务器是否支持断点续算的信息、和/或确定该云服务器所支持的数据备份技术的类型,并将云服务器中支持断点续算、且所支持的数据备份技术的类型为restore&save技术的云服务器,确定为需要恢复的目标云服务器(即待恢复目标虚拟机)。
105.步骤三:基于所述计算状态信息恢复所述宿主机中的所述目标虚拟机。
106.进一步地,所述基于所述计算状态信息恢复所述宿主机中的所述目标虚拟机,包括:
107.基于所述待恢复目标虚拟机对应的计算状态信息,对所述待恢复目标虚拟机的当前计算状态进行调整,获得目标虚拟机。
108.具体地,在确定预先保存的计算状态信息之后,能够基于该计算状态信息,对创建的待恢复目标虚拟机的当前计算状态进行调整,从而将待恢复目标虚拟机调整为与删除的目标虚拟机的计算状态相一致,从而实现对目标虚拟机的恢复。
109.在实际应用中,为了避免对象存储服务中存储大量无效的计算状态信息,节省对象存储服务的存储资源,在基于对象存储服务中存储的计算状态信息,完成对目标虚拟机的恢复之后,需要将该对象存储服务中存储的计算状态信息删除,从而节省对象存储服务的存储资源,具体实现方式如下。
110.所述基于所述计算状态信息恢复所述宿主机中的所述目标虚拟机之后,还包括:
111.确定所述信息存储模块中存储的所述目标虚拟机的计算状态信息,并删除所述计算状态信息。
112.沿用上例,在实际应用中,控制系统在确定虚拟机恢复完成之后,能够删除对象存储服务上存储的内存文件a。
113.下述结合附图3,以本说明书提供的虚拟机管理方法在云服务器断点续算场景下的应用为例,对所述虚拟机管理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种虚拟机管理方法的处理过程流程图,基于图3可知,本说明书提供的虚拟机管理方法,能够实现针对云服务器的断点续算,该断点续算技术旨在能够在高峰期(宿主机的计算高峰期)对虚拟机的计算状态进行保存,同时在宿主机处于低峰(计算空闲期)的时候,
对虚拟机的计算状态进行恢复,从而达到继续计算执行计算服务的目的。因此,该断点续算技术在应用的过程包括断点续算保存流程,和断点续算恢复流程。
114.其中,云服务器的断点续算保存流程可以为,当宿主机处于计算高峰期的时候,保存宿主机中运行的虚拟机的计算状态,并将该虚拟机删除。具体包括步骤302至步骤308。
115.步骤302:控制系统启动关闭虚拟机流程。
116.其中,控制系统在确定宿主机的当前达到计算高峰期、或者该宿主机的空闲计算资源较少的情况下,控制系统能够启动关闭虚拟机流程,从而指定云计算平台中的云服务器(虚拟机)进行关机操作。
117.在实际应用中,该控制系统能够通过其自身的一个实例,实现指定云服务器进行关机操作,该实例可以为stopinstances(一种实例)。
118.步骤304:控制系统判定是否支持restore&save技术。
119.具体地,本说明书提供的虚拟机管理方法,由于云服务器所使用镜像(数据备份技术)可能存在不同,因此,需要判定云服务器所使用镜像(数据备份技术)是否支持断点续算。也即是,控制系统判定创建的云服务器是否支持使用restore&save技术。若是,则执行步骤306,若否,则执行步骤308,进行正常关机。
120.此外,本说明书提供的虚拟机管理方法中的云计算平台,会为最新创建的虚拟机配置数据备份技术,但对于历史创建的云服务器可能存在不支持数据备份技术的情况,基于此,该虚拟机管理方法还可以通过控制系统判定云服务器是否是断点续算服务器,也即是,对于需要关机的云服务器判定其是否支持断点续算。若是,则执行步骤306,若否,则执行步骤308,进行正常关机。
121.步骤306:控制系统对虚拟机进行虚拟化。
122.具体地,控制系统对于支持断点续算的云服务器,在对象存储介质(oss)上创建内存文件a用以存储断点续算保存的内存快照,之后控制系统虚拟化暂停云服务器的cpu运行,并将该云服务器的内存信息及meta信息保存到对象存储介质的内存文件a。
123.步骤308:控制系统关闭虚拟机。
124.具体地,控制系统销毁云服务器,归还cpu、内存资源。
125.其中,云服务器的断点续算恢复流程可以为,当宿主机处于计算空闲期的时候,基于预先保存的虚拟机的计算状态,恢复该虚拟机,从而继续执行用户的计算服务。具体包括步骤310至步骤320。
126.步骤310:控制系统启动恢复虚拟机流程。
127.其中,控制系统在确定宿主机的当前达到计算空闲期、或者该宿主机的空闲计算资源较多的情况下,控制系统能够启动恢复虚拟机流程,从而创建云服务器主机,并启动该云服务器。
128.在实际应用中,该控制系统能够通过其自身的一个实例,实现指定创建云服务器主机,并启动该云服务器操作,该实例可以为runinstance(一种实例)。
129.步骤312:控制系统判定是否支持restore&save技术。
130.具体地,本说明书提供的虚拟机管理方法,由于云服务器所使用镜像(数据备份技术)可能存在不同,因此,在恢复云服务器的过程中,同样需要判定需要恢复的云服务器所使用镜像(数据备份技术)是否支持断点续算。也即是,控制系统判定创建的云服务器是否
支持使用restore&save技术。若是,则执行步骤314,若否,则执行步骤320。
131.此外,本说明书提供的虚拟机管理方法中的云计算平台,会为最新创建的虚拟机配置数据备份技术,但对于历史创建的云服务器可能存在不支持数据备份技术的情况,基于此,该虚拟机管理方法在恢复云服务器的过程中,同样还需要通过控制系统对非第一次创建云服务器,判定其是否是断点续算服务器,也即是,对于需要恢复的云服务器判定其是否支持断点续算。若是,则执行步骤314,若否,则执行步骤320。
132.步骤314:控制系统虚拟化虚拟机。
133.具体地,控制系统支持断点续算的云服务器启动,并对该云服务器进行虚拟化。
134.步骤316:控制系统通过内存快照恢复虚拟机。
135.具体地,控制系统通过存储在oss上的内存快照虚拟化恢复云服务器。
136.步骤318:虚拟机恢复自身的时钟信息、热拔插内存、cpu。
137.具体地,恢复后的云服务器,其自身的操作系统通过ntp服务将操作系统时钟同步,并恢复热拔插内存,以及cpu的计算状态。其中,云服务器的操作系统可以为linux操作系统。
138.步骤320:确定vm完成。
139.具体地,控制系统确定虚拟机(vm)恢复完成,应用该虚拟机恢复计算。
140.在实际应用中,控制系统在确定虚拟机恢复完成之后,能够删除对象存储服务上存储的内存文件a。
141.本说明书提供的虚拟机管理方法中,云厂商利用对象存储save和restore技术用于恢复虚拟机状态,同时通过虚拟化利用管控生成的对象存储内容,并在利用虚拟化restore之后将内存和cpu资源归还,从而避免了在高峰期能够使用的计算资源不足的问题,从而降低了成本。
142.与上述方法实施例相对应,本说明书还提供了虚拟机管理装置实施例,图4示出了本说明书一个实施例提供的一种虚拟机管理装置的结构示意图。如图4所示,该装置包括:
143.第一确定模块402,被配置为确定宿主机的当前运行状态,并在所述当前运行状态满足第一预设状态条件的情况下,确定所述宿主机中当前运行的虚拟机,以及所述当前运行的虚拟机的属性信息;
144.第二确定模块404,被配置为将所述属性信息满足预设处理条件的虚拟机,确定为目标虚拟机;
145.删除模块406,被配置为存储所述目标虚拟机的计算状态信息,并删除所述宿主机中的目标虚拟机。
146.可选地,所述虚拟机管理装置还包括恢复模块,被配置为:
147.确定所述宿主机的当前运行状态;
148.在所述当前运行状态满足第二预设状态条件的情况下,获取所述目标虚拟机的计算状态信息;
149.基于所述计算状态信息恢复所述宿主机中的所述目标虚拟机。
150.可选地,所述恢复模块还被配置为:
151.确定所述宿主机的历史虚拟机,其中,所述历史虚拟机为所述宿主机中历史删除的虚拟机;
152.基于历史虚拟机的配置信息在所述宿主机中创建虚拟机,从所述虚拟机中确定待恢复目标虚拟机;
153.从信息存储模块中,获取与所述待恢复目标虚拟机对应的计算状态信息。
154.可选地,所述恢复模块还被配置为:
155.基于所述待恢复目标虚拟机对应的计算状态信息,对所述待恢复目标虚拟机的当前计算状态进行调整,获得目标虚拟机。
156.可选地,所述恢复模块还被配置为:
157.确定所述宿主机中的虚拟机的属性信息;
158.将所述属性信息满足所述预设处理条件的虚拟机,确定为待恢复目标虚拟机。
159.可选地,所述删除模块306还被配置为:
160.确定所述目标虚拟机的计算状态信息,并将所述计算状态信息存储至信息存储模块。
161.可选地,所述删除模块306还被配置为:
162.在信息存储模块中创建与所述目标虚拟机对应的信息存储单元;
163.获取所述目标虚拟机的计算状态信息,并将所述计算状态信息存储至所述信息存储单元。
164.可选地,所述虚拟机管理装置还包括信息删除模块,被配置为:
165.确定所述信息存储模块中存储的所述目标虚拟机的计算状态信息,并删除所述计算状态信息。
166.可选地,所述虚拟机管理装置还包括初始虚拟机删除模块,被配置为:
167.将所述属性信息不满足所述预设处理条件的待处理虚拟机,确定为初始虚拟机,并将所述宿主机中的初始虚拟机删除。
168.本说明书提供的虚拟机管理装置,能够在宿主机的当前运行状态第一预设状态条件的情况下,确定宿主机中属性信息满足预设处理条件的目标虚拟机,并将目标虚拟机的计算状态信息进行存储之后,删除该目标虚拟机,从而实现了对虚拟机的计算状态进行保存,便于后续对虚拟机进行恢复,进一步保证计算服务的正常执行。
169.上述为本实施例的一种虚拟机管理装置的示意性方案。需要说明的是,该虚拟机管理装置的技术方案与上述的虚拟机管理方法的技术方案属于同一构思,虚拟机管理装置的技术方案未详细描述的细节内容,均可以参见上述虚拟机管理方法的技术方案的描述。
170.图5示出了根据本说明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
171.计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
172.在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部
件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
173.计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
174.其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器虚拟机管理执行时实现上述虚拟机管理方法的步骤。
175.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的虚拟机管理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述虚拟机管理方法的技术方案的描述。
176.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述虚拟机管理方法的步骤。
177.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的虚拟机管理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述虚拟机管理方法的技术方案的描述。
178.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述虚拟机管理方法的步骤。
179.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的虚拟机管理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述虚拟机管理方法的技术方案的描述。
180.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
181.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
182.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块
并不一定都是本说明书实施例所必须的。
183.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
184.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。