CN112732406A - 一种云平台虚拟机回收方法及计算机设备 - Google Patents
一种云平台虚拟机回收方法及计算机设备 Download PDFInfo
- Publication number
- CN112732406A CN112732406A CN202110034978.XA CN202110034978A CN112732406A CN 112732406 A CN112732406 A CN 112732406A CN 202110034978 A CN202110034978 A CN 202110034978A CN 112732406 A CN112732406 A CN 112732406A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- virtual
- deleted
- state
- cloud platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种云平台虚拟机回收方法及计算机设备,该方法包括:前端接收对虚拟机的删除指令,将虚拟机放入部署于前端的前端回收站后,由前端向后端发出通知;后端接收前端发出的通知并对删除指令进行权限校验,对通过权限校验的删除指令根据待删除的虚拟机的当前状态,分别执行对应的将虚拟机放入部署于后端的后端回收站的回收线程中,放入后端回收站中的待删除的虚拟机在执行对应的回收线程之前不解除待删除的虚拟机与虚拟资源的绑定关系。通过本发明,提高了执行虚拟机删除操作时的安全性和稳定性,确保了用户数据安全,降低了放入回收站中的虚拟机对资源的消耗,降低了并发操作的响应时间,极大地提高了用户体验。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种云平台虚拟机回收方法及计算机设备。
背景技术
对云平台中的虚拟机执行回收操作,是针对虚拟机删除操作后根据需要进行恢复的功能,以有效恢复用户在操作过程中由于误操作造成的虚拟机删除,提升虚拟机的安全性和稳定性,有效保护了用户的数据安全并确保良好的用户体验。
在现有技术中,对虚拟机的回收操作通常与云平台的编排引擎相互绑定,放入回收站的虚拟机会在一段时间内依然驻留在内存中,从而对部署云平台的计算机设备的物理内存和/或虚拟内存造成了巨大的资源消耗。同时,不同类型的云平台在执行资源编排时,如果与编排引擎相互绑定,则无法实现对虚拟机的回收功能。
申请人经过检索后发现公开号CN109117251A的中国发明专利公开了“一种虚拟机回收站的实现方法、装置和可读存储介质”的现有技术,其基于OpenStack的云平台的运行环境。该现有技术为了对虚拟机的回收操作,在整个回收操作中虚拟机依次历经暂停状态与关机状态,并在关机状态停留一段时间后将虚拟机在回收站用的信息彻底删除。在暂停状态进入到关机状态时,将虚拟机的系统盘和数据盘都转化为镜像,保存在镜像存储中。同时,在关机状态停留一段时间后,删除回收站中的系统盘数据和数据盘数据信息。
申请人指出该现有技术无论在何种状态下都需要在内存中留驻虚拟机的数据信息,从而导致形成该云平台的计算机的资源开销过大;同时,该现有技术将虚拟机的系统盘与数据盘分别保存,事实上不仅会导致数据残留也会导致操作的繁琐,更加严重的是会导致虚拟机在被恢复时无法将对应的系统盘与数据盘对应封装成原始的虚拟机;此外,该现有技术在执行虚拟机恢复时指出通过启动镜像创建虚拟机,数据盘镜像创建卷,然后把数据盘挂载到虚拟机上,就能够完成虚拟的恢复。申请人指出该技术方案完全背离虚拟机的基本常识。
最后,上述现有技术采用功能性限定的描述方式限定了虚拟机回收站的实现装置,然而该现有技术并未从云计算及虚拟机的基础架构上阐述如何在OpenStack的云平台中实现其所谓的虚拟机回收机制及具体实现过程。此外,申请人指出其他相关现有技术也无法解决纳管多个不同类型的云平台场景中对不同类型的云平台中所创建及运行的虚拟机的回收操作。
有鉴于此,有必要对现有技术中的云平台虚拟机回收方法予以改进,以解决上述问题。
发明内容
本发明的目的在于揭示一种云平台虚拟机回收方法及计算机设备,用以解决云平台中不同的当前状态的虚拟机执行高效且安全的回收操作,尤其是为了避免在对虚拟机执行回收操作过程中造成对计算资源与内存资源等资源的占用与浪费。
为实现上述第一个发明目的,本发明提供了一种云平台虚拟机回收方法,包括:
前端接收对虚拟机的删除指令,将虚拟机放入部署于前端的前端回收站后,由前端向后端发出通知;
后端接收前端发出的通知并对删除指令进行权限校验,对通过权限校验的删除指令根据待删除的虚拟机的当前状态,分别执行对应的将虚拟机放入部署于后端的后端回收站的回收线程中,其中,放入后端回收站中的待删除的虚拟机在执行对应的回收线程之前不解除待删除的虚拟机与虚拟资源的绑定关系。
作为本发明的进一步改进,将虚拟机放入部署后端的后端回收站的回收线程执行完毕后,还包括:
后端回收站定期检查待删除的虚拟机与虚拟资源的绑定关系解除失败的虚拟机,并对虚拟机执行强制回收。
作为本发明的进一步改进,前端判断待删除的虚拟机的当前状态,仅对当前状态为关机状态、开机状态、异常状态及未知状态的待删除的虚拟机执行放入后端回收站的回收线程,对不属于关机状态、开机状态、异常状态及未知状态的待删除的虚拟机所发起的删除指令返回告警信息,并拒绝将虚拟机放入部署于后端的后端回收站的回收线程中。
作为本发明的进一步改进,所述接收对虚拟机的删除指令在前端的可视化界面中被接收;
后端对删除指令进行权限校验包含以下至少一种校验内容:用户id、虚拟机id、虚拟机名称、虚拟机状态、运行虚拟机的操作系统、形成虚拟机的硬件信息、部署虚拟机的云平台信息以及虚拟机所在集群的集群属性信息;
当后端基于所述校验内容对删除指令进行权限校验失败时,由后端向前端回收站发出中止删除操作的指令,所述后端接收前端发出的通知并对删除指令进行权限校验且基于所述校验内容对删除指令进行权限校验成功后,对放入后端回收站中的待删除的虚拟机解除待删除的虚拟机与虚拟资源的绑定关系。
作为本发明的进一步改进,所述虚拟机与虚拟资源的绑定关系包括虚拟机与虚拟网络、安全组、秘钥对或者虚拟磁盘中的一种或者几种的虚拟资源之间所建立的绑定关系。
作为本发明的进一步改进,所述前端包含至少一种云平台,所述前端被后端纳管,所述前端与后端逻辑上相互独立,所述后端被配置为混合云管理平台。
作为本发明的进一步改进,还包括:
在前端创建多个可用区,所述可用区为虚拟数字中心,在所述可用区中建立虚拟机与对用户配置的不同权限的关联关系,所述可用区由混合云管理平台创建,所述可用区中包含至少一种云平台,所述可用区被后端纳管。
作为本发明的进一步改进,所述前端配置第一数据库,所述后端配置第二数据库,所述第一数据库用于记录可用区中虚拟机的状态数据,所述第二数据库用于记录后端对删除指令进行权限校验所关联的校验内容,当待删除的虚拟机被回收后,通过所述第二数据库对第一数据库进行更新;所述可用区存放至少一个云操作系统或者虚拟机管理程序。
作为本发明的进一步改进,待删除的虚拟机的当前状态为未知状态时,将待删除的虚拟机加入待删除虚拟机列表,并由后端创建异步删除虚拟机线程,以将待删除的虚拟机放入后端回收站后立即执行删除操作。
作为本发明的进一步改进,待删除的虚拟机的当前状态为关机状态时,修改待删除的虚拟机在第二数据库中留存的字段信息,并将修改后的字段信息与待删除的虚拟机所挂载的磁盘信息及网络配置信息记录至日志文件,并将所述日志文件保存至第二数据库后向前端予以可视化展示。
作为本发明的进一步改进,待删除的虚拟机的当前状态为开机状态或者异常状态时,由后端执行将开机状态并执行删除的虚拟机加入至待关机虚拟机列表的操作,并由后端创建异步关闭虚拟机线程。
作为本发明的进一步改进,还包括:使用比较交换算法对可用区存放至少一个云操作系统或者虚拟机管理程序所具有的底层状态数据对第一数据库中记录的虚拟机状态数据进行更新;所述混合云管理平台调用第一数据库中更新后的虚拟机状态数据,并对第二数据库中相同字段的属性进行更新。
作为本发明的进一步改进,还包括:使用比较交换算法对可用区存放至少一个云操作系统或者虚拟机管理程序所具有的底层状态数据对第一数据库中记录的虚拟机状态数据进行更新;所述第二数据库直接调用第一数据库中更新后的虚拟机状态数据,并对第二数据库中相同字段的属性进行更新。
作为本发明的进一步改进,所述前端被配置为分布式系统架构。
基于相同发明思想,本申请还揭示了一种计算机设备,包括:
处理器,存储器,以及
存储在所述存储器中且被配置为由所述处理器执行的计算机程序;
所述处理器在执行所述计算机程序时执行如上述任一项发明创造所述的云平台虚拟机回收方法中的步骤。
与现有技术相比,本发明的有益效果是:
首先,在本申请所揭示的云平台虚拟机回收方法,解决了云平台尤其是包含不同类型的云平台中具有不同的当前状态的虚拟机执行高效且安全的回收操作,显著地降低了对虚拟机执行回收操作过程中对计算资源与内存资源等资源的占用与浪费,降低了并发操作的响应时间;
同时,本申请所揭示的云平台虚拟机回收方法,由于将位于前端中的前端回收站与位于后端中的后端回收站相互分离,有效地避免了因对虚拟机执行回收操作所导致的虚拟机之前所配置的各种资源的解绑定的缺陷,使得因错误删除操作对虚拟机在恢复后能够与该虚拟机在执行与删除操作前所绑定的各种资源及策略建立资源绑定关系,缩短了已经放入后端回收站中的虚拟机的恢复速度及恢复过程所消耗的资源,由此间接地提高了用户体验。
附图说明
图1为云平台虚拟机回收方法的主流程图;
图2为混合云管理平台创建多个可用区且每个可用区由多个相同类型的云平台组成的实例图;
图3为混合云管理平台创建多个可用区且每个可用区由多个不同类型的云平台组成的实例图;
图4为云平台中实现虚拟机回收站的架构图;
图5为本发明一种云平台虚拟机回收方法的详细流程图,其中,包含虚拟机回收主线程,以及,根据虚拟机的状态分别为开机状态或者未知状态分别启动异步关闭虚拟机线程与异步删除虚拟机线程;
图6为运行本发明一种云平台虚拟机回收方法的虚拟机回收站实现装置在虚拟机回收过程中对云平台中各个节点所形成的资源进行资源删除与资源恢复的示例图;
图7为包含至少一种云平台的可用区被混合云管理平台纳管并在对虚拟机执行回收操作过程中调用第一数据库中更新后的虚拟机状态数据,并对第二数据库中相同字段的属性进行更新在一种实例中的示意图;
图8为包含至少一种云平台的可用区被混合云管理平台纳管并在对虚拟机执行回收操作过程中调用第一数据库中更新后的虚拟机状态数据,并对第二数据库中相同字段的属性进行更新在另一种实例中的示意图;
图9为后端以批量操作方式将虚拟机放入回收站中的详细流程图;
图10为后端以批量操作方式将虚拟机放入回收站并由后端执行校验的详细流程图;
图11为运行本发明一种云平台虚拟机回收方法的一种计算机设备的拓扑图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
术语“逻辑”包括用于执行任务的任何物理和有形功能。例如,流程图中所示的每个操作对应于用于执行该操作的逻辑组件。可以使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合来执行操作。当由计算设备实现时,逻辑组件表示作为无论以何种方式实现的计算机系统的物理部分的电组件。
短语“配置为”或者短语“被配置为”包括可以构造任何种类的物理和有形的功能以执行标识的操作的任何方式。功能可以被配置为使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等、和/或其任何组合来执行操作。
实施例一:
参图1至图10所揭示的本发明一种云平台虚拟机回收方法(以下简称“回收方法”)的详细实现过程。本实施例所揭示的该回收方法由用户在可用区10和/或可用区20的第一云平台11和/或第二云平台21中的可视化操作界面中发起。可视化操作界面中嵌布形成供管理员或者用户执行对虚拟机执行回收操作的操作视窗,管理员或者用户可在可视化的操作视窗中发起对一种云平台的一个或者多个虚拟机或者几种云平台的一个或者多个虚拟机执行回收操作。
该回收方法包括以下步骤S1至步骤S2。
步骤S1:前端接收对虚拟机的删除指令,将虚拟机放入部署于前端的前端回收站后,由前端向后端发出通知。前端包含至少一种云平台,所述前端被后端纳管,前端与后端逻辑上相互独立,后端被配置为混合云管理平台100。前端被配置为分布式系统架构,前端可部署多个云平台。采用分布式系统架构有利于与多个用户进行并发响应、虚拟资源的预处理与分配、日志文件的记录与调用、权限校验及数据监控等操作,并通过图4中的虚拟化引擎1002对虚拟机进行回收操作等具体的操作事件。
在本实施例中,前端可被理解为能够发起虚拟机回收操作指令的可视化操作界面。接收对虚拟机的删除指令在前端的可视化界面中被接收。在前端中以可视化形成虚拟机的展示、删除过程、删除事件所形成的对话框等页面。
前端判断待删除的虚拟机(即待执行回收操作的虚拟机)的当前状态,仅对当前状态为关机状态、开机状态、异常状态及未知状态的待删除的虚拟机执行放入后端回收站的回收线程,对不属于关机状态、开机状态、异常状态及未知状态的待删除的虚拟机所发起的删除指令返回告警信息,并拒绝将虚拟机放入部署于后端的后端回收站的回收线程中。因此,在本实施例中,术语“待删除”与术语“待回收”具等同含义。
用户可首先在混合云管理平台100所形成的可视化操作界面选择需要放入前端回收站中的虚拟机,并点击“删除”按钮,为了防止用户误删除虚拟机(即用户错误地将不属于呈“关机”、“开机”、“未知”及“异常”状态的虚拟机执行回收操作),前端页面会弹出提示框提示用户,并经过用户二次确认需要放入前端回收站的虚拟机名称后,点击“确认”按钮后,请求数据发送到后端,该后端部署并运行于混合云管理平台100中。
如果用点击“取消”按钮后,操作请求将会终止,当用户点击“确认”按钮后,会通过请求url“placeVmInRecycleBin”向后端发送基于回收虚拟机操作所需要的各种数据,包括用户id,虚拟机id等,以指向确定的需要被执行回收操作的虚拟机。
步骤S2:后端接收前端发出的通知并对删除指令进行权限校验,对通过权限校验的删除指令根据待删除的虚拟机的当前状态,分别执行对应的将虚拟机放入部署于后端的后端回收站的回收线程中,其中,放入后端回收站中的待删除的虚拟机在执行对应的回收线程之前不解除待删除的虚拟机与虚拟资源的绑定关系。优选的,在本实施例中,在将虚拟机放入部署后端的后端回收站的回收线程执行完毕后,还包括:后端回收站定期检查待删除的虚拟机与虚拟资源的绑定关系解除失败的虚拟机,并对虚拟机执行强制回收。
在本实施例中,虚拟机与虚拟资源的绑定关系包括虚拟机与虚拟网络、安全组、秘钥对或者虚拟磁盘中的一种或者几种的虚拟资源之间所建立的绑定关系。以密钥对为例,如果密钥对已经绑定到了虚拟机上,同时此虚拟机又放入到了前端回收站中,则当用户在密钥对列表删除该密钥对时,前端回收站会首先检查对应密钥对已经保存在第一数据库15中的记录,当检查到该密钥对已经绑定到虚拟机上时,就会抛出错误同时返回给前端错误信息,并导致对该虚拟机的回收操作的终止。前端得到返回的错误信息后,会将错误信息通过警告框等可视化形式提示给用户。由此,通过上述对密钥对所建立的绑定关系,使得在回收虚拟机的过程中能够有效地避免人为误操作或者恶意的回收操作所导致的对虚拟机的错误回收操作,这在金融支付系统、在线购物平台的结算系统等场景中具有重要技术价值;而且由于本实施例所揭示的该回收方法在对虚拟机执行回收操作的整个过程中,不需要将回收后的虚拟机留驻内存,从而有效地避免了对各种类型的云平台的物理资源及虚拟资源的无序占用,并提高了云平台的整体稳定性。
虚拟机与其他类型的虚拟资源的绑定关系参上述所述,在此不再赘述。
通过上述技术方案,提高了执行虚拟机删除操作时的安全性和稳定性,确保了用户数据安全;同时,也能够有效地避免了因对虚拟机执行回收操作所导致的虚拟机之前所配置的各种资源的解绑定的缺陷,使得因错误删除操作对虚拟机在恢复后能够与该虚拟机在执行与删除操作前所绑定的各种资源及策略建立资源绑定关系,缩短了已经放入后端回收站中的虚拟机的恢复速度及恢复过程所消耗的资源。在本实施例中,术语“资源”可被理解为形成虚拟机的物理资源和/或虚拟资源。
结合图6所示,该虚拟资源包括云平台中的计算节点对应资源2a,网络节点对应资源2b,存储节点对应资源2c或者控制节点对应资源2d。运行本发明一种云平台虚拟机回收方法的虚拟机回收站实现装置400在虚拟机回收过程中对云平台中各个节点所形成的资源进行资源删除与资源恢复。虚拟机在被回收后释放被执行回收操作的虚拟机对上述一种或者几种虚拟资源的占用。虚拟机回收站实现装置400配置云编排引擎1001、虚拟化引擎1002,以及一个或者多个硬件设备20i。硬件设备20i可为CPU、内存、防火墙、内存、专用芯片、物理网卡、磁盘等。同时结合图4所示,该云编排引擎1001可采用容器(Docker)技术或者Kubernetes实现。虚拟化引擎1002可采用VMware虚拟化引擎。
本实施例所揭示的回收方法,虚拟机及对虚拟机执行回收的功能不与特定类型的云平台所依赖的底层特定的云编排引擎1001或硬件设备20i产生绑定,因此能够兼容市面上几乎所有主流的云环境和主流硬件平台,能够适配麒麟、金蝶、长城等操作系统或者不同厂商的X86型硬件平台或者ARM架构硬件平台或者MIPS架构硬件平台。
同时,在本实施例中,图7或者图8中的第一云平台中的回收站后端服务17、混合云管理平台中的后端服务102、前端回收站及后端回收站等可通过Docker方式打包部署以形成独立的微服务(并基于Java语言开发),并均在任何Linux发布版服务器中运行。同时,基于Java语言开发天生具有跨平台特性,存储数据基于关系型开源数据库(例如第一数据库15与第二数据库25),由图7中混合云管理平台中的后端服务102所挂载的第二数据库25中所保存的virtual_machine所含的字段“is_in_recycle_bin”来记录(即判断)虚拟机是否在前端回收站中。同时,第一数据库15与第二数据库25可以在多种环境下部署。前端回收站定位于第一云平台11或者第二云平台21一侧的一个子功能,而后端回收站则是偏向于混合云管理平台100的一侧。第一云平台11或者第二云平台21可在不同的云环境中调用适配的网关服务即可完成对虚拟机回收操作过程中虚拟机状态数据等数据的回调操作等。
在本实施例中,进入前端回收站的虚拟机与虚拟网络、安全组、密钥对、虚拟磁盘等绑定关系仍然存在,如果删除的资源已绑定在前端回收站中的虚拟机,那么操作会受到限制。前端回收站中的虚拟机保存时间不做限制。只有“关机”、“开机”和“未知”状态的虚拟机可以放入前端回收站中,并且“未知”状态的虚拟机被放入前端回收站后会立即删除。
后端对删除指令进行权限校验包含以下至少一种校验内容:用户id、虚拟机id、虚拟机名称、虚拟机状态、运行虚拟机的操作系统、形成虚拟机的硬件信息、部署虚拟机的云平台信息以及虚拟机所在集群的集群属性信息。当后端基于所述校验内容对删除指令进行权限校验失败时,由后端向前端回收站发出中止删除操作的指令,所述后端接收前端发出的通知并对删除指令进行权限校验且基于所述校验内容对删除指令进行权限校验成功后,对放入后端回收站中的待删除的虚拟机解除待删除的虚拟机与虚拟资源的绑定关系。在本实施例中,后端回收站逻辑上位于混合云管理平台100中的回收站界面101中,前端回收站逻辑上位于第一云平台的回收站界面16中,且前端回收站与后端回收站相互独立。同时,本实施例中的前端回收站与后端回收站是一种运行于混合云管理平台100中的进程。
在权限校验阶段中,可对虚拟资源所形成的隶属关系同时进行检验,如果发现虚拟机所属的项目与用户实际拥有的项目不相同,则被认定为越权操作,会终止任何有关对虚拟机的操作,并向前端返回对应的错误信息,前端会弹出对应的警告框提示用户没有操作权限。此处的虚拟资源所形成的隶属关系既包括虚拟机所关联的虚拟资源的种类,也包括虚拟机所关联的虚拟资源的配额(例如VM1配置40G磁盘,VM2配置50G磁盘),甚至包括虚拟机所配置的虚拟内网IP地址及虚拟网关等。只要待回收的虚拟机在权限校验阶段中上述一种或者几种虚拟资源种类和/或虚拟资源的配合,或者配置与用户之前下发的配置不一致,则认定为该用户对虚拟机无权作回收操作。
当权限校验成功后,混合云管理平台100会继续查询第一数据库15中对应虚拟机id的信息,包括但不限于虚拟机的名称、状态、云环境信息、运行状态、任务状态、所在集群信息等等。如果在查询第一数据库15的虚拟机信息返回为空(Null)的话,混合云管理平台100也会导致回收操作中断并向前端返回错误码及提示信息,提示用户发送的信息是错误的,未找到对应的虚拟机信息。
在本实施例中,仅会关注虚拟机当前的状态信息和集群信息,只有状态为“关机”、“开机”、“异常”、“未知”的虚拟机才能够被放入前端回收站中,并会将查询到的虚拟机状态与上述四个状态进行一一比对,如果不符合状态要求,任何对虚拟机执行的回收操作将禁止,并向前端返回错误码和提示信息,提示用户当前操作的虚拟机状态不符合放入前端回收站的要求。
在本实施例中,之所以只能将上述四种状态的虚拟机放入前端回收站中,主要是考虑到虚拟机正在进行某些重要操作时,突然放入前端回收站会对虚拟机运行的内部数据产生影响,例如虚拟机正在进行创建、重启、修改配置、迁移、还原、制作镜像、备份等操作时不支持放入前端回收站中,避免响应用户的虚拟机正在执行的一些重要操作或对敏感数据修改时,因执行放入前端回收站的事件而导致的意外丢失或损坏等不良现象。
参图9与图10所示,在本实施例中,虚拟机回收站支持批量虚拟机操作和单个虚拟机操作的,单个虚拟机的操作和批量操作大体相同。不管是批量还是非批量操作,都需要借助后端并根据第二数据库25查询到的虚拟机信息,如虚拟机在被执行回收操作之前所配置的数据,例如“environment”,“zone_id”等字段数据,来确定对应的云环境和集群信息,并根据上述字段数据来确定对应的请求云环境。下文申请人将分别对回收虚拟机的非批量和批量操作的详细实现过程予以描述。
在批量操作过程中首先建立三个队列来存储需要异步处理的虚拟机和同步处理的虚拟机,三个队列分别为“待关机虚拟机列表”、“待删除虚拟机列表”,“直接放入回收站列表”,用于缓存对应的虚拟机。
对于异步操作的批量操作中会将轮询到的虚拟机信息根据不同的状态放入不同的队列中,如果是呈“开机”状态的虚拟机,会将其加入到“待关机虚拟机列表”中,如果当前状态呈“未知”状态的虚拟机,会将其加入到“待删除虚拟机列表”中。当轮询结束后,会检查一遍“待关机虚拟机列表”和“待删除虚拟机列表”是否为空,如果“待关机虚拟机列表”不为空,就会逐个执行对呈“开机”状态的虚拟机的回收操作的步骤。如果“待删除虚拟机列表”不为空,就会逐个执行对当前状态呈“未知”状态的虚拟机的回收操作的步骤,具体参下文所述。
对于同步操作的批量操作中会将轮询到的虚拟机信息根据不同的状态放入不同的队列中,如果是呈“关机”状态的虚拟机,会将其加入到“直接放入回收站列表”中,如果是呈“异常”状态的虚拟机,同样也会将其加入到“直接放入回收站列表”中。当轮询结束后,会检查一遍“直接放入回收站列表”是否为空(Null),如果“直接放入回收站列表”不为空,就会逐个执行就会逐个执行对当前状态呈“关机”状态的虚拟机的回收操作的步骤,具体参下文所述。
具体的,参图9所示,步骤401:待放入回收站中的虚拟机id。此处的回收站即前端回收站。
步骤402:根据虚拟机id查询第一数据库15中对应的虚拟机信息。
步骤403:判断虚拟机权限是否满足要求,即对虚拟机发起操作的主体的权限校验操作。
步骤405:判断虚拟机状态是为开机、关机或者异常状态,若是,顺序执行步骤406;若否,跳转执行步骤404:结束并返回错误提示。
步骤406:获取对应虚拟机的云环境、集群等信息。
步骤407:调用对应云环境的网关服务异步处理。
步骤408:判断批量处理是否结束,若是,则直接结束并退出,若否,跳转执行步骤401。
参图10所示,首先执行步骤501:调用第一云平台的网关服务。
步骤502:将虚拟机id,用户id等虚拟机信息发送至第一云平台管理系统,该第一云平台管理系统运行于第一云平台11中。
步骤503:第一云平台管理系统执行虚拟机回收逻辑。
步骤504:判断是否执行完毕。
步骤505:第一云平台管理系统通知第一云平台的云网关。
步骤506:第一云平台重新查询对应的虚拟机组装出最新的数据回调给混合云管理平台100。
非批量操作是指对当前状态为“关机”、“开机”、“异常”、“未知”状态的虚拟机逐一地执行回收操作,具体参下文所述。
在本实施例中,该回收方法还包括:在前端创建多个可用区,所述可用区为虚拟数字中心,在可用区10、20中建立虚拟机与对用户配置的不同权限的关联关系,可用区10、20由混合云管理平台100创建,可用区10、20中包含至少一种云平台,可用区10及可用区20被后端纳管。图7或者图8中混合云管理平台100中的回收站界面101与混合云管理平台中的后端服务102共同定义出后端,并可直接被用户所响应。混合云管理平台100中的回收站界面101发送数据请求至混合云管理平台中的后端服务102,并由混合云管理平台中的后端服务102向混合云管理平台100中的回收站界面101返回用户信息。混合云管理平台中的后端服务102与第一云平台11(或者第二云平台21)之间执行调用功能/同步状态。至于被混合云管理平台100所纳管的可用区10(或者可用区20)究竟包含一种还是几种类型云平台,云平台是基于Archer OS(第一云平台11的下位概念)还是WMware ESXi(第二云平台21的下位概念)在所不问。同时,同一个可用区10(或者可用区20)可包含相同的云平台(参图2所示),同一个可用区10(或者可用区20)也可包含不同的云平台(参图3所示)。
结合图7与图8所示,优选的,可为前端配置第一数据库15,所述后端配置第二数据库25,所述第一数据库15用于记录可用区10、20中虚拟机的状态数据,所述第二数据库25用于记录后端对删除指令进行权限校验所关联的校验内容,当待删除的虚拟机被回收后,通过第二数据库25对第一数据库15进行更新并读取更新后的虚拟机状态数据。可用区10、20存放至少一个云操作系统或者虚拟机管理程序。图7与图8中的第一云平台的回收站界面16与第一云平台中的回收站后端服务17共同定义出前端,并可直接被用户所响应。
在本实施例中,该回收方法还包括:使用比较交换算法(Compare And Swap,CAS机制)对可用区10(或者可用区20)存放至少一个云操作系统或者虚拟机管理程序所具有的底层状态数据对第一数据库15中记录的虚拟机状态数据进行更新。混合云管理平台100调用第一数据库15中更新后的虚拟机状态数据,并对第二数据库25中相同字段的属性进行更新。
例如,虚拟机状态数据所包含的“state”字段会更新为“Stopping”,“update_time”字段更新为当前时间,同时将相应的虚拟机信息、挂载的磁盘信息、网络信息等都记录到日志文件当中。
结合图7与图8所示,优选的,该回收方法还包括:使用比较交换算法对可用区10、20存放至少一个云操作系统或者虚拟机管理程序所具有的底层状态数据对第一数据库15中记录的虚拟机状态数据进行更新;所述第二数据库25直接调用第一数据库15中更新后的虚拟机状态数据,并对第二数据库25中相同字段的属性进行更新。
更新虚拟机状态之前,首先拷贝第一数据库15所所保存的原始信息到内存中,并在内存中修改完虚拟机最新信息,保存到第一数据库15对应的虚拟机记录之前,比较第一数据库15所保存的最新信息是否与内存中的原始拷贝信息相同;如果相同,则表面在这段时间内没有其他人做了操作更新,便可更新第一数据库15对应的虚拟机记录信息,避免了脏数据;如果不同,则表面在这段时间内有其他人做了操作更新,此时如果继续更新数据库对应的虚拟机记录信息,则会产生脏数据。
如果发现第一数据库15所保存的虚拟机的最新信息与内存中的原始拷贝信息不同,那么就说明在此期间有其他用户改动了第一数据库15中虚拟机信息,那么此时的内存中的拷贝信息,及数据修改都作废,重新拷贝数据库最新信息到内存中,重复前面的过程,直到更新成功,或不满足条件终止。通过比较交换算法方式,保证了任何时刻只有一个用户的操作能够完整的实现,避免了脏数据的产生。
在本实施例中,可通过状态机(State Machine)限制用户对虚拟机所执行的回收操作,例如当某一个用户拿到资源的操作权限(可以理解为抽象的锁)后,以虚拟机关机为例,当用户A、用户B、用户C等多个用户同时对虚拟机进行操作,通过CAS机制保证只有一个用户在某一时刻可以进行操作,假设用户A顺利拿到了操作权限,当用户A对虚拟机进行关机操作后,虚拟机状态变为“关机中”,此时状态机机制保证了所有其他操作不能进行,只有当“关机中”完成后,变为“已关机”状态才能进行别的操作。
对第一数据库15中记录的虚拟机状态数据进行更新完成后会通知第一云平台11的云网关,此时虚拟机状态由“关机中”状态变为“关机”。云网关得到通知后会重新查询第一云平台11中对应虚拟机的最新信息,并将查询到的信息包装后回调给混合云管理平台100。混合云管理平台100得到回调信息后会更新混合云管理平台100侧的数据库(即第二数据库25)中对应虚拟机记录中的“is_in_recycle_bin”字段,将其改为“true”,将“update_time”字段修改为“当前时间”,将“state”字段更新为“Stop”。同时将相应的虚拟机信息、挂载的磁盘信息、网络信息等都记录到日志文件当中,并将执行结果返回给前端,返回给前端的执行结果包括虚拟机名称及对应操作的完成情况等,然后前端将返回信息通过提示框或者对话框的形式向用户进行可视化展示。具体的,在本实施例中,日志文件保存在混合云管理平台100中。
日志文件显示所有和虚拟机操作相关的信息,包括但不仅限于修改时间、虚拟机名称、修改内容、操作人员等等,这样也为后期排查问题带来了更直观的办法,虚拟机删除的操作也会进行全过程的详细日志记录,同时在后端的日志文件记录界面,在后端中提供了强大的搜索和分析功能,用户可以按照名称、修改时间、虚拟机状态等进行排序、搜索及分页操作,用户可以在海量的日志记录中迅速定位到相应的事件,了解到具体涉及的修改信息或影响范围,如果因人为因素导致客户虚拟机或数据丢失等情况,可以通过日志文件记录迅速定位到具体的发起虚拟机回收操作的人员,例如不具有操作权限的管理员或者用户。
待删除的虚拟机的当前状态为未知状态时,将待删除的虚拟机加入待删除虚拟机列表,并由后端创建异步删除虚拟机线程,以将待删除的虚拟机放入后端回收站后立即执行删除操作。
如果待执行回收操作的虚拟机的当前状态呈“未知”状态,混合云管理平台100会将查询到的虚拟机信息以及所在的具体云环境,及原始请求参数重新包装后,(包含虚拟机ref_id,用户id等)转发给第一云平台的云网关(例如ArcherOS网关),第一云平台的云网关调用对应的第一云平台11。其中,“未知”是指由于底层误操作或者错误,导致虚拟机状态发生变化同时不能够感知到确切状态的状态。
在第一云平台11中的详细执行步骤如图5所示,在此不再赘述。当前端中的第一云平台11的虚拟机的状态发生变化时(此时虚拟机的当前状态由“未知”状态变为“删除中”状态),会通知第一云平台的云网关,第一云平台的云网关会重新向第一数据库15发起查询请求,以查询第一云平台11中对应的虚拟机最新信息,并将查询到的信息包装后回调至混合云管理平台100,混合云管理平台100得到消息后会更新第二数据库25中对应虚拟机记录的数据,比如此时“state”字段会更新为“Deleting”,“update_time”字段更新为“当前时间”,同时将相应的虚拟机信息、挂载的磁盘信息及网络信息等都记录到日志文件中。
第一云平台11操作完成后会通知第一云平台的云网关(备注:此时第一云平台中已删除对应的虚拟机),第一云平台的云网关得到通知后会回调混合云管理平台100,混合云管理平台100得到回调信息后会首先查询在第二数据库25中与该虚拟机关联的资源,比如磁盘信息、网卡信息、密钥对信息等等,然后首先删除所有的关联虚拟资源的数据信息,同时释放虚拟资源到资源池中。当所有关联资源数据都删除成功以后,会将该虚拟机对应的在第一数据库15中的记录删除,同时将相应的虚拟机详细信息,以及挂载的磁盘信息,网络信息等都记录到日志文件当中。将最终的对未知状态的虚拟机回收操作的执行结果推送给前端并显示给用户。
如果待执行回收操作的虚拟机呈“开机”状态,混合云管理平台100会将查询到的虚拟机信息以及所在的具体云环境,及原始请求参数重新包装后,(包含虚拟机ref_id,用户id等)转发给第一云平台的云网关,第一云平台的云网关调用对应的第一云平台11云环境。在第一云平台11中的详细执行步骤如如图5所示,在此不再赘述。
当第一云平台11中的虚拟机有状态变化时(例如:虚拟机状态由“开机”状态变为“关机中”状态),会通知第一云平台的云网关,第一云平台的云网关会重新向第一数据库15发起查询请求,以查询第一云平台11中对应的虚拟机最新信息,并将查询到的信息包装后回调混合云管理平台100,混合云管理平台100得到消息后会更第二数据库25中对应虚拟机记录的数据,比如此时“state”字段会更新为“Stopping”,“update_time”字段更新为“当前时间”,同时将相应的虚拟机信息,以及挂载的磁盘信息,网络信息等都记录到日志文件中。
操作完成后会通知第一云平台的云网关(此时虚拟机的当前状态由“关机中”状态变为“关机”状态),第一云平台的云网关得到通知后会重新向第一数据库15发起查询请求,以查询第一云平台11中对应虚拟机的最新信息,并将查询到的信息包装后回调至混合云管理平台100,混合云管理平台100得到回调信息后会更新第二数据库25中对应虚拟机记录中的“is_in_recycle_bin”字段,将其改为“true”,将“update_time”字段修改为“当前时间”,将“state”字段更新为“Stop”。同时将相应的虚拟机信息、挂载的磁盘信息及网络信息等都记录到日志文件中,并将执行结果返回给前端,包括虚拟机名称及对应操作的完成情况等,然后前端将返回信息通过提示框等可视化形式反馈给用户。
如果待执行回收操作的虚拟机呈“关机”状态,混合云管理平台100会将查询到的虚拟机信息以及所在的具体云环境以及原始请求参数重新包装后,(包含虚拟机ref_id,用户id等)转发给第一云平台的云网关,第一云平台的云网关调用对应的第一云平台11的云环境。在第一云平台11中的执行详细流程如图5所示,在此不再赘述。
当第一云平台11操作完成后会通知第一云平台11的云网关,第一云平台11的云网关得到通知后会重新查询第一云平台11中对应虚拟机的最新信息,并将查询到的信息包装后回调至混合云管理平台100,混合云管理平台100得到回调信息后会修改第二数据库25中的虚拟机中对应虚拟机记录中的“is_in_recycle_bin”字段,将其改为“true”,将“update_time”字段修改为“当前时间”。同时将相应的虚拟机信息,以及挂载的磁盘信息,网络信息等都记录到日志当中,并将执行结果返回给前端,前述执行结果包括虚拟机名称及对应操作的完成情况等,然后前端将返回信息通过提示框等可视化方式反馈给用户。呈“异常”状态的虚拟机与呈“关机”状态的虚拟机执行回收操作方式及具体实现过程相同,故予以省略描述。
待删除的虚拟机的当前状态为“关机”状态时,修改待删除的虚拟机在第二数据库25中留存的字段信息,并将修改后的字段信息与待删除的虚拟机所挂载的磁盘信息及网络配置信息记录至日志文件,并将所述日志文件保存至第二数据库25后向前端予以可视化展示。
待删除的虚拟机的当前状态为开机状态或者异常状态时,由后端执行将开机状态并执行删除的虚拟机加入至待关机虚拟机列表的操作,并由后端创建异步关闭虚拟机线程。
参图5所示,对于开机状态的虚拟机由虚拟机回收主线程100跳转执行异步关闭虚拟机线程200,对于未知状态的虚拟机由虚拟机回收主线程100跳转执行异步删除虚拟机线程300。申请人对上述过程予以详细阐述。
开始。
步骤101:确定待放入回收站中的虚拟机标识,从而确定待执行回收操作的虚拟机的状态数据。
步骤102:判断虚拟机是否待回收状态,若否,则结束;若是,跳转执行步骤103。
步骤103:判断虚拟机是否为开机状态,如是,则执行步骤21:将虚拟机加入待关机虚拟机列表;若否,则执行步骤104:判断虚拟机是否为未知状态,若是,则执行步骤22:将虚拟机加入待删除虚拟机列表;若否,执行步骤105。
步骤105:更新虚拟机回收站状态为true,即由混合云管理平台100将得到的回调信息修改第二数据库25中的虚拟机中对应虚拟机记录中的“is_in_recycle_bin”字段,将其改为“true”,然后,跳转执行步骤106。
步骤106:判断批量处理是否结束,若是,则跳转执行步骤107;若否,则返回执行步骤101,以遍历执行上述步骤101~步骤105。
步骤107:判断待关机虚拟机列表是否为空,若否,则跳转执行步骤108:新建异步关闭虚拟机线程;若是,则跳转执行步骤109。同时,在新建异步关闭虚拟机线程执行完毕后同样跳转执行步骤109。
步骤109:判断待删除虚拟机列表是否为空,若否,则跳转执行步骤110:新建异步删除虚拟机线程,若是,则直接结束。
当检测到虚拟机呈“开机”状态,会新启动图5中异步关闭虚拟机线程200,并立即返回给前端对应的虚拟机正在操作中,前端将返回的信息显示给用户。
在异步关闭虚拟机线程200中,首先会修改第一云平台11中对应的虚拟机数据库记录(即第一数据库15),将表示虚拟机状态的字段数据改为“关机中”,之后禁止对虚拟机进行其他的任何操作,从而通过状态机的方式确保了接口操作的幂等性。之后该异步关闭虚拟机线程200中会读取之前查询到的虚拟机信息,例如该虚拟机在云编排引擎1001中对应的ref_id、状态、名称等字段并重新包装,同时通过oAuth认证拿到对应的授权码X-Auth-Token,然后调用第一云平台11中的关机服务并传入包装好的请求参数。
当成功调用第一云平台11所传入的请求参数以后,底层对应的虚拟机状态也将变为“关机中”,此时第一云平台11中的异步关闭虚拟机线程的关机线程会定时轮询底层的状态变化,当云编排引擎1001完成虚拟机关机操作后,第一云平台11轮询到云编排引擎1001中的虚拟机状态发生改变,第一云平台11会将最新的底层状态数据更新第一云平台11的数据库信息,例如将“is_in_recycle_bin”字段,将其改为“true”,将“update_time”字段修改为“当前时间”,将“state”字段改为“Stop”已关机状态。同时将相应的虚拟机详细信息、挂载的磁盘信息、网络信息等都记录到日志文件中,并将最终的执行结果推送给前端。
异步关闭虚拟机线程200具体如下所示。
异步关闭虚拟机线程200通过跳转步骤23调用待关机虚拟机列表。
步骤201:获取待关机虚拟机列表。
步骤202:逐个读取待关机虚拟机列表中的虚拟机信息,例如前述ref_id、状态、名称等字段。
步骤203:新建关闭虚拟机线程,并轮询检查,如果此时没有关闭虚拟机线程,则新建线程,以执行步骤206:调用关机接口;轮询检查结束后跳转执行步骤204:判断待关机虚拟机列表是否为空,若是,则跳转步骤205:结束;若否,则返回执行步骤202。其中,步骤206中调用关机接口具体为从混合云管理平台100中调用适配第一云平台11和/或第二云平台21的关机指令,关机指令可视为对虚拟机执行关机操作的进程间的方法调用。
步骤206结束后执行步骤207:更行虚拟机状态为关机,并最终执行步骤208:更新虚拟机回收站状态为true,即由混合云管理平台100将得到的回调信息修改第二数据库25中的虚拟机中对应虚拟机记录中的“is_in_recycle_bin”字段,将其改为“true”。
异步删除虚拟机线程300具体如下所示。
异步删除虚拟机线程300通过跳转步骤24调用待删除虚拟机列表。
步骤301:获取待删除虚拟机列表。
步骤302:逐个取出待删除虚拟机列表中的虚拟机信息。
步骤303:新建虚拟机删除线程,并轮询检查,如果此时没有删除虚拟机线程,则新建线程,以执行步骤306:调用删除虚拟机接口;轮询检查结束后跳转执行步骤304:判断待删除虚拟机列表是否为空,若是,跳转步骤305并结束;若否,则返回执行步骤302。
步骤306结束后执行步骤307:轮询删除结果,并最终跳转执行步骤308:从第二数据库25中删除对应的虚拟机信息。
综上所述,通过本实施例所揭示的一种云平台虚拟机回收方法,解决了云平台尤其是包含不同类型的云平台中具有不同的当前状态的虚拟机执行高效且安全的回收操作,显著地降低了对虚拟机执行回收操作过程中对计算资源与内存资源等资源的占用与浪费,降低了并发操作的响应时间;
同时,在该云平台虚拟机回收方法中,由于将位于前端中的前端回收站与位于后端中的后端回收站相互分离,有效地避免了因对虚拟机执行回收操作所导致的虚拟机之前所配置的各种资源的解绑定的缺陷,使得因错误删除操作对虚拟机在恢复后能够与该虚拟机在执行与删除操作前所绑定的各种资源及策略建立资源绑定关系,缩短了已经放入后端回收站中的虚拟机的恢复速度及恢复过程所消耗的资源,由此间接地提高了用户体验。
实施例二:
参图11所示,本实施例揭示了一种计算机设备800。该计算机设备800运行实施例一所揭示的该回收方法。
计算机设备800包括:处理器51、存储器52以及存储在存储器52中且被配置为由所述处理器51执行的计算机程序,该处理器51在执行所述计算机程序时执行如实施例一所述的云平台虚拟机回收方法中的步骤。
具体的,该存储器52由若干存储单元组成,即存储单元521~存储单元52i,其中,参数i取大于或者等于二的正整数。处理器51与存储器52均接入系统总线53。系统总线53的形式并不需要予以具体限定,I2C总线、SPI总线、SCI总线、PCI总线、PCI-e总线、ISA总线等,并可根据电子设备500的具体类型及应用场景需求予以合理变更。系统总线53并非本申请发明点,故在本申请中不予展开陈述。
需要说明的是,本实施例中的存储单元52可为物理态的存储单元,从而将计算机设备800理解为物理态的计算机或者计算机集群或者集群服务器;同时,存储单元52还可为虚拟态的存储单元,例如基于物理存储设备通过底层虚拟化技术所形成的虚拟存储空间,从而将该计算机设备800配置为云平台、虚拟服务器、虚拟集群等虚拟装置,或者将该计算机设备800理解为PC、平板电脑、智能手机、智能可穿戴电子设备、物理集群或者数据中心等。
本实施例所示出的计算机设备800与实施例一中相同部分的技术方案,请参照实施例一所示,在此不再赘述。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (15)
1.一种云平台虚拟机回收方法,其特征在于,包括:
前端接收对虚拟机的删除指令,将虚拟机放入部署于前端的前端回收站后,由前端向后端发出通知;
后端接收前端发出的通知并对删除指令进行权限校验,对通过权限校验的删除指令根据待删除的虚拟机的当前状态,分别执行对应的将虚拟机放入部署于后端的后端回收站的回收线程中,其中,放入后端回收站中的待删除的虚拟机在执行对应的回收线程之前不解除待删除的虚拟机与虚拟资源的绑定关系。
2.根据权利要求1所述的云平台虚拟机回收方法,其特征在于,将虚拟机放入部署后端的后端回收站的回收线程执行完毕后,还包括:
后端回收站定期检查待删除的虚拟机与虚拟资源的绑定关系解除失败的虚拟机,并对虚拟机执行强制回收。
3.根据权利要求1所述的云平台虚拟机回收方法,其特征在于,前端判断待删除的虚拟机的当前状态,仅对当前状态为关机状态、开机状态、异常状态及未知状态的待删除的虚拟机执行放入后端回收站的回收线程,对不属于关机状态、开机状态、异常状态及未知状态的待删除的虚拟机所发起的删除指令返回告警信息,并拒绝将虚拟机放入部署于后端的后端回收站的回收线程中。
4.根据权利要求3所述的云平台虚拟机回收方法,其特征在于,所述接收对虚拟机的删除指令在前端的可视化界面中被接收;
后端对删除指令进行权限校验包含以下至少一种校验内容:用户id、虚拟机id、虚拟机名称、虚拟机状态、运行虚拟机的操作系统、形成虚拟机的硬件信息、部署虚拟机的云平台信息以及虚拟机所在集群的集群属性信息;
当后端基于所述校验内容对删除指令进行权限校验失败时,由后端向前端回收站发出中止删除操作的指令,所述后端接收前端发出的通知并对删除指令进行权限校验且基于所述校验内容对删除指令进行权限校验成功后,对放入后端回收站中的待删除的虚拟机解除待删除的虚拟机与虚拟资源的绑定关系。
5.根据权利要求1所述的云平台虚拟机回收方法,其特征在于,所述虚拟机与虚拟资源的绑定关系包括虚拟机与虚拟网络、安全组、秘钥对或者虚拟磁盘中的一种或者几种的虚拟资源之间所建立的绑定关系。
6.根据权利要求1至5中任一项所述的云平台虚拟机回收方法,其特征在于,所述前端包含至少一种云平台,所述前端被后端纳管,所述前端与后端逻辑上相互独立,所述后端被配置为混合云管理平台。
7.根据权利要求6所述的云平台虚拟机回收方法,其特征在于,还包括:
在前端创建多个可用区,所述可用区为虚拟数字中心,在所述可用区中建立虚拟机与对用户配置的不同权限的关联关系,所述可用区由混合云管理平台创建,所述可用区中包含至少一种云平台,所述可用区被后端纳管。
8.根据权利要求6所述的云平台虚拟机回收方法,其特征在于,所述前端配置第一数据库,所述后端配置第二数据库,所述第一数据库用于记录可用区中虚拟机的状态数据,所述第二数据库用于记录后端对删除指令进行权限校验所关联的校验内容,当待删除的虚拟机被回收后,通过所述第二数据库对第一数据库进行更新;所述可用区存放至少一个云操作系统或者虚拟机管理程序。
9.根据权利要求8所述的云平台虚拟机回收方法,其特征在于,待删除的虚拟机的当前状态为未知状态时,将待删除的虚拟机加入待删除虚拟机列表,并由后端创建异步删除虚拟机线程,以将待删除的虚拟机放入后端回收站后立即执行删除操作。
10.根据权利要求8所述的云平台虚拟机回收方法,其特征在于,待删除的虚拟机的当前状态为关机状态时,修改待删除的虚拟机在第二数据库中留存的字段信息,并将修改后的字段信息与待删除的虚拟机所挂载的磁盘信息及网络配置信息记录至日志文件,并将所述日志文件保存至第二数据库后向前端予以可视化展示。
11.根据权利要求8所述的云平台虚拟机回收方法,其特征在于,待删除的虚拟机的当前状态为开机状态或者异常状态时,由后端执行将开机状态并执行删除的虚拟机加入至待关机虚拟机列表的操作,并由后端创建异步关闭虚拟机线程。
12.根据权利要求8所述的云平台虚拟机回收方法,其特征在于,还包括:使用比较交换算法对可用区存放至少一个云操作系统或者虚拟机管理程序所具有的底层状态数据对第一数据库中记录的虚拟机状态数据进行更新;所述混合云管理平台调用第一数据库中更新后的虚拟机状态数据,并对第二数据库中相同字段的属性进行更新。
13.根据权利要求8所述的云平台虚拟机回收方法,其特征在于,还包括:使用比较交换算法对可用区存放至少一个云操作系统或者虚拟机管理程序所具有的底层状态数据对第一数据库中记录的虚拟机状态数据进行更新;所述第二数据库直接调用第一数据库中更新后的虚拟机状态数据,并对第二数据库中相同字段的属性进行更新。
14.根据权利要求1所述的云平台虚拟机回收方法,其特征在于,所述前端被配置为分布式系统架构。
15.一种计算机设备,其特征在于,包括:
处理器,存储器,以及
存储在所述存储器中且被配置为由所述处理器执行的计算机程序;
所述处理器在执行所述计算机程序时执行如权利要求1至14中任一项所述的云平台虚拟机回收方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110034978.XA CN112732406B (zh) | 2021-01-12 | 2021-01-12 | 一种云平台虚拟机回收方法及计算机设备 |
PCT/CN2021/123956 WO2022151776A1 (zh) | 2021-01-12 | 2021-10-15 | 一种云平台虚拟机回收方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110034978.XA CN112732406B (zh) | 2021-01-12 | 2021-01-12 | 一种云平台虚拟机回收方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732406A true CN112732406A (zh) | 2021-04-30 |
CN112732406B CN112732406B (zh) | 2021-12-24 |
Family
ID=75590335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110034978.XA Active CN112732406B (zh) | 2021-01-12 | 2021-01-12 | 一种云平台虚拟机回收方法及计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112732406B (zh) |
WO (1) | WO2022151776A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113128909A (zh) * | 2021-05-13 | 2021-07-16 | 瑞麟天下节能技术(北京)有限公司 | 一种基于电力资源的服务器管理方法 |
CN113961147A (zh) * | 2021-10-26 | 2022-01-21 | 江苏安超云软件有限公司 | 在云平台上从已删除的块中回收空间的方法及应用 |
WO2022151776A1 (zh) * | 2021-01-12 | 2022-07-21 | 华云数据控股集团有限公司 | 一种云平台虚拟机回收方法及计算机设备 |
CN117119053A (zh) * | 2023-01-28 | 2023-11-24 | 荣耀终端有限公司 | 端云协同数据管理方法、终端、系统及可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573332A (zh) * | 2023-10-19 | 2024-02-20 | 中移互联网有限公司 | 一种云手机回收方法、装置、电子设备及存储介质 |
CN118093252A (zh) * | 2024-04-28 | 2024-05-28 | 浪潮云信息技术股份公司 | 一种云平台的数据库诊断方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473296A (zh) * | 2013-09-04 | 2013-12-25 | 国云科技股份有限公司 | 一种适用于云计算的回收站机制及其系统 |
US20140130043A1 (en) * | 2012-11-07 | 2014-05-08 | International Business Machines Corporation | Automated and optimal deactivation of service to enable effective resource reusability |
US20140181817A1 (en) * | 2012-12-12 | 2014-06-26 | Vmware, Inc. | Methods and apparatus to manage execution of virtual machine workflows |
CN104424015A (zh) * | 2013-09-11 | 2015-03-18 | 华为技术有限公司 | 一种虚拟机管理方法和装置 |
US20150261557A1 (en) * | 2014-03-14 | 2015-09-17 | International Business Machines Corporation | Returning terminated virtual machines to a pool of available virtual machines to be reused thereby optimizing cloud resource usage and workload deployment time |
CN105868056A (zh) * | 2016-04-07 | 2016-08-17 | 北京北信源软件股份有限公司 | 获取Windows虚拟机中已删除文件的方法、装置及安全虚拟机 |
CN107766125A (zh) * | 2017-11-06 | 2018-03-06 | 国云科技股份有限公司 | 一种云平台虚拟机的删除方法 |
CN109117251A (zh) * | 2018-08-09 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种虚拟机回收站的实现方法、装置和可读存储介质 |
CN109800084A (zh) * | 2018-12-21 | 2019-05-24 | 平安科技(深圳)有限公司 | 释放虚拟机资源的方法及终端设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986284B (zh) * | 2010-11-04 | 2012-05-23 | 华中科技大学 | 一种虚拟机镜像文件的废弃空间动态回收系统 |
CN110018883A (zh) * | 2019-04-11 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 一种虚拟机删除方法、装置、设备及存储介质 |
CN112732406B (zh) * | 2021-01-12 | 2021-12-24 | 华云数据控股集团有限公司 | 一种云平台虚拟机回收方法及计算机设备 |
-
2021
- 2021-01-12 CN CN202110034978.XA patent/CN112732406B/zh active Active
- 2021-10-15 WO PCT/CN2021/123956 patent/WO2022151776A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140130043A1 (en) * | 2012-11-07 | 2014-05-08 | International Business Machines Corporation | Automated and optimal deactivation of service to enable effective resource reusability |
US20140181817A1 (en) * | 2012-12-12 | 2014-06-26 | Vmware, Inc. | Methods and apparatus to manage execution of virtual machine workflows |
CN103473296A (zh) * | 2013-09-04 | 2013-12-25 | 国云科技股份有限公司 | 一种适用于云计算的回收站机制及其系统 |
CN104424015A (zh) * | 2013-09-11 | 2015-03-18 | 华为技术有限公司 | 一种虚拟机管理方法和装置 |
US20150261557A1 (en) * | 2014-03-14 | 2015-09-17 | International Business Machines Corporation | Returning terminated virtual machines to a pool of available virtual machines to be reused thereby optimizing cloud resource usage and workload deployment time |
CN105868056A (zh) * | 2016-04-07 | 2016-08-17 | 北京北信源软件股份有限公司 | 获取Windows虚拟机中已删除文件的方法、装置及安全虚拟机 |
CN107766125A (zh) * | 2017-11-06 | 2018-03-06 | 国云科技股份有限公司 | 一种云平台虚拟机的删除方法 |
CN109117251A (zh) * | 2018-08-09 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种虚拟机回收站的实现方法、装置和可读存储介质 |
CN109800084A (zh) * | 2018-12-21 | 2019-05-24 | 平安科技(深圳)有限公司 | 释放虚拟机资源的方法及终端设备 |
Non-Patent Citations (2)
Title |
---|
BEN BLAKELEY 等: "Cloud Storage Forensic: hubiC as a Case-Study", 《2015 IEEE 7TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE (CLOUDCOM)》 * |
郑芳友: "基于KVM的桌面云及其管理平台设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022151776A1 (zh) * | 2021-01-12 | 2022-07-21 | 华云数据控股集团有限公司 | 一种云平台虚拟机回收方法及计算机设备 |
CN113128909A (zh) * | 2021-05-13 | 2021-07-16 | 瑞麟天下节能技术(北京)有限公司 | 一种基于电力资源的服务器管理方法 |
CN113961147A (zh) * | 2021-10-26 | 2022-01-21 | 江苏安超云软件有限公司 | 在云平台上从已删除的块中回收空间的方法及应用 |
CN117119053A (zh) * | 2023-01-28 | 2023-11-24 | 荣耀终端有限公司 | 端云协同数据管理方法、终端、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022151776A1 (zh) | 2022-07-21 |
CN112732406B (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112732406B (zh) | 一种云平台虚拟机回收方法及计算机设备 | |
CN109597677B (zh) | 用于处理信息的方法和装置 | |
CN106528224B (zh) | 一种Docker容器的内容更新方法、服务器及系统 | |
US5659682A (en) | Scheme to determine completion of directory operations for server recovery | |
CN111104388B (zh) | 访问文件的方法、设备和计算机可读介质 | |
US8826269B2 (en) | Annotating virtual application processes | |
KR102047216B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
US20080109394A1 (en) | Virtual Deletion In Merged File System Directories | |
WO2021158359A1 (en) | Firmware update patch | |
WO2011097932A1 (zh) | 数据库的访问方法、装置及数据库应用系统 | |
US10007785B2 (en) | Method and apparatus for implementing virtual machine introspection | |
CN115885261A (zh) | 部分特权的轻量级虚拟化环境 | |
CN108292342A (zh) | 向固件中的侵入的通知 | |
CN110196749A (zh) | 虚拟机的恢复方法及装置、存储介质及电子装置 | |
US20150220517A1 (en) | Efficient conflict resolution among stateless processes | |
CN116185889A (zh) | 一种基于对象隐藏的内存优化方法、智能终端及存储介质 | |
CN115576626A (zh) | 一种usb设备安全挂载和卸载的方法、设备和存储介质 | |
CN111522764B (zh) | 插拔操作的处理方法、终端及存储介质 | |
CN113590264A (zh) | 一种容器环境下的文件防篡改方法及装置 | |
WO2020029995A1 (en) | Application upgrading through sharing dependencies | |
CN116166471B (zh) | 快照回滚方法、容器化云平台及计算机可读介质 | |
CN112817986B (zh) | 适用于Linux生产环境的数据结构修复方法及装置 | |
US20230025126A1 (en) | Virtualization layer assisted upgrading of in-guest agents | |
US20240231664A9 (en) | Refresh of stale reference to physical file locations | |
CN112445655A (zh) | 内存处理方法、装置、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |