CN110879742B - 虚拟机异步创建内部快照方法、装置及存储介质 - Google Patents
虚拟机异步创建内部快照方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110879742B CN110879742B CN201910978193.0A CN201910978193A CN110879742B CN 110879742 B CN110879742 B CN 110879742B CN 201910978193 A CN201910978193 A CN 201910978193A CN 110879742 B CN110879742 B CN 110879742B
- Authority
- CN
- China
- Prior art keywords
- snapshot
- internal
- virtual disk
- program
- internal snapshot
- 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.)
- Active
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种虚拟机异步创建内部快照的方法、电子装置及存储介质,其中该方法包括:通过监听接口获取用户的快照命令信息;根据待快照虚拟磁盘名称以及内部快照编号对快照命令信息进行参数合法性检验,若快照命令信息通过参数合法性检验,则根据快照命令信息创建内部快照协程;执行内部快照协程,对待快照虚拟磁盘进行内部快照,并获取虚拟磁盘的内部快照数据信息;当内部快照协程执行完毕后,将内部快照数据信息以及快照命令信息保存至快照数据库,并通过监听接口通知用户内部快照任务完成。本发明提供的技术方案能够解决传统虚拟机的虚拟磁盘内部快照只支持同步实现,无法在内部快照过程中响应虚拟机IO请求或带外操作的问题。
Description
技术领域
本发明涉及计算机设备管理技术领域,尤其涉及一种多机房温度报警方法、装置及计算机可读存储介质。
背景技术
qemu-kvm是当前业界广泛使用的虚拟化软件,所谓虚拟化,通俗来说就是通过软件的方式模拟硬件,使得一台物理机可以运行多套异构的OS,一方面便于IAAS层资源共享,另一方面便于资源的灵活分配和调度,从而促进了当前“云”商业模式的诞生和发展。目前云计算环境中,qemu-kvm虚拟机由于其性能好、功能全等特点在云计算领域中获得广泛应用。对于运用qemu-kvm虚拟机的云计算环境,快照功能是其不可或缺的一部分:当系统崩溃或出现异常时,可以通过恢复到所备份的快照数据来恢复虚拟机磁盘文件系统和系统存储。当前,qemu-kvm虚拟机的qcow2虚拟磁盘格式由于其性能较好,支持snapshot、resize、thin provision等特点,在云计算场景中获得广泛应用。
然而,传统的qemu-kvm虚拟机对qcow2虚拟磁盘格式虚拟磁盘内部快照的实现,只支持同步的实现方式,即虚拟机在从监听接口处接收来自外部的创建内部快照的命令后,首先会忙等当前所有正在处理的磁盘IO操作完成,然后创建虚拟磁盘内部程序。在根据虚拟磁盘内部程序创建虚拟磁盘内部快照时,需要读写虚拟磁盘的元数据实现对虚拟磁盘内部的数据进行备份,由于虚拟机内部快照程序处于主线程中而不是处于虚拟机协程运行时环境中,因此,对于外部指令的每个读写IO的请求指令,都要忙等该IO的快照命令结束,所以,在整个虚拟磁盘内部快照的创建过程中,运行时的虚拟机进程都无法响应guest os(虚拟系统)发出的IO请求事件,也无法响应用户对虚拟机的带外操作,如来自guest os对块设备的IO请求、网络设备IO、来自用户VNC连接和console口登陆等。
基于上述问题,亟需一种能够在创建虚拟磁盘内部快照过程的忙等阶段同时实现虚拟机的IO请求事件或者用户带外操作的虚拟机内部快照异步创建方法。
发明内容
本发明提供一种虚拟机异步创建内部快照方法、电子装置以及计算机存储介质,其主要目的在于解决传统的传统虚拟机的虚拟磁盘内部快照只支持同步实现,无法在内部快照过程中响应虚拟机IO请求或带外操作的问题。
为实现上述目的,本发明提供一种电子装置,该电子装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的种虚拟机异步创建内部快照程序,所述种虚拟机异步创建内部快照程序被所述处理器执行时实现如下步骤:
通过监听接口获取用户的快照命令信息,其中,所述快照命令信息包括待快照虚拟磁盘名称以及内部快照编号;
根据所述待快照虚拟磁盘名称以及内部快照编号对所述快照命令信息进行参数合法性检验,若所述快照命令信息通过所述参数合法性检验,则根据所述快照命令信息创建内部快照协程;
执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照,并获取所述虚拟磁盘的内部快照数据信息;
当所述内部快照协程执行完毕后,将所述内部快照数据信息以及所述快照命令信息保存至快照数据库,并通过所述监听接口通知用户内部快照任务完成。
优选地,对所述快照命令信息进行参数合法性检验的过程包括:
查询与所述待快照虚拟磁盘名称对应的待快照虚拟磁盘是否存在,并查询与所述内部快照编号对应的内部快照协程是否已经存在;
若与所述待快照虚拟磁盘名称对应的待快照虚拟磁盘存在,且与所述内部快照编号对应的内部快照协程是不存在,则进一步判断所述待快照虚拟磁盘当前是否支持创建内部快照;否则,通过所述监听接口向所述用户退回所述待快照命令信息;
若所述待快照虚拟磁盘当前支持创建内部快照,则判定所述快照命令信息通过所述参数合法性检验。
优选地,若所述待快照虚拟磁盘当前不支持创建内部快照,则将所述快照命令信息保存至备忘快照信息库;且,间隔预设时间后,再次判断所述待快照虚拟磁盘当前是否支持创建内部快照,若所述待快照虚拟磁盘当前支持创建内部快照,则根据所述快照命令信息创建内部快照协程;
若所述待快照虚拟磁盘当前不支持创建内部快照,则再次将所述快照命令信息继续保存至所述备忘快照信息库,间隔预设时间后再次判断,直至所述待快照虚拟磁盘当前支持创建内部快照。
优选地,执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照的过程包括:读写所述待快照虚拟磁盘内的所有元数据;
对所述元数据进行解析,以获取承载所述待快照虚拟磁盘的承载设备;
触发IO处理模块开始对所述承载设备内的所述内部快照数据信息进行读写;
在所述IO处理模块对所述内部快照数据信息进行读写的过程中,所述内部快照协程的执行指针跳转至主循环以继续执行待处理请求程序;
当所述IO处理模块对所述内部快照数据信息读写完毕后,所述执行指针从所述主循环跳转至所述内部快照协程内,继续执行所述内部快照协程以完成对所述虚拟磁盘的后续内部快照操作。
优选地,在执行所述内部快照协程之前,为所述虚拟磁盘添加阻塞协程队列以及阻塞标识,其中,所述阻塞标识初始化为false,在执行所述内部快照协程时所述阻塞标识转换为true,在所述内部快照协程执行完毕后所述阻塞标识转换为false;
在所述执行指针执行所述主循环内的待处理请求程序时,先判断所述待处理请求程序与所述待快照虚拟磁盘是否相关;
若所述待处理请求程序与所述待快照虚拟磁盘相关,则将所述待处理程序保存至阻塞协程队列,并继续执行下一个待处理请求程序;
若所述待处理请求程序与所述待快照虚拟磁盘无关,则直接执行所述待处理请求程序。
优选地,判断所述待处理请求程序与所述待快照虚拟磁盘是否相关过程包括,
通过所述待快照虚拟磁盘的IO接口对所述待快照虚拟磁盘进行数据检测;
若检测到所述待快照虚拟磁盘与其他设备之间存在数据交换,则判定所述待处理请求程序与所述待快照虚拟磁盘相关;
否则,判定所述待处理请求程序与所述待快照虚拟磁盘无关。
优选地,在所述内部快照执行完毕后,所述执行指针跳转至所述阻塞协程队列,依次执行存储在所述阻塞协程队列内的待处理请求程序。
此外,为实现上述目的,本发明还提供一种虚拟机异步创建内部快照方法,该方法包括:
通过监听接口获取用户的快照命令信息,其中,所述快照命令信息包括待快照虚拟磁盘名称以及内部快照编号;
根据所述待快照虚拟磁盘名称以及内部快照编号对所述快照命令信息进行参数合法性检验,若所述快照命令信息通过所述参数合法性检验,则根据所述快照命令信息创建内部快照协程;
执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照,并获取所述虚拟磁盘的内部快照数据信息;
当所述内部快照协程执行完毕后,将所述内部快照数据信息以及所述快照命令信息保存至快照数据库,并通过所述监听接口通知用户内部快照任务完成。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有虚拟机异步创建内部快照程序,虚拟机异步创建内部快照程序被处理器执行时,实现前述虚拟机异步创建内部快照方法的步骤。
本发明提出虚拟机异步创建内部快照方法、电子装置及计算机可读存储介质,通过为传统虚拟机内部快照程序设置特定的内部快照协程,实现内部快照的异步创建,保证虚拟机在进行内部快照的过程中仍然能够实现对IO请求或用户带外操作的执行,能够显著提高虚拟机的工作效率;此外,通过为快照命令信息设置参数合法性检验,能够确保待快照虚拟磁盘当前没有进行数据操作,从而避免内部快照协程打乱当前的数据操作的正常运行;最后,通过为待快照虚拟磁盘设置阻塞标识以及阻塞队列,能够有效的防止内部快照形成的数据前后不统一的问题。
附图说明
图1为根据本发明实施例的电子装置的较佳实施例结构示意图;
图2为根据本发明实施例的虚拟机异步创建内部快照方法的较佳实施例流程图;
图3为根据本发明实施例的对待快照虚拟磁盘进行内部快照过程的流程图;
图4为根据本发明实施例的虚拟机异步创建内部快照程序的内部逻辑示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种虚拟机异步创建内部快照方法,应用于一种电子装置70。参照图1所示,该图为本发明提供的电子装置70的较佳实施例结构示意图。
在本实施例中,电子装置70可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。
该电子装置70包括:处理器71以及存储器72。
存储器72包括至少一种类型的可读存储介质。至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,可读存储介质可以是该电子装置70的内部存储单元,例如该电子装置70的硬盘。在另一些实施例中,可读存储介质也可以是电子装置1的外部存储器,例如电子装置70上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,存储器72的可读存储介质通常用于存储安装于电子装置70的虚拟机异步创建内部快照程序73。存储器72还可以用于暂时地存储已经输出或者将要输出的数据。
处理器72在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器72中存储的程序代码或处理数据,例如虚拟机异步创建内部快照程序73等。
在一些实施例中,电子装置70为智能手机、平板电脑、便携计算机等的终端设备。在其他实施例中,电子装置70可以为服务器。
图1仅示出了具有组件71-73的电子装置70,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置70还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置70还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。显示器用于显示在电子装置70中处理的信息以及用于显示可视化的用户界面。
可选地,该电子装置70还可以包括触摸传感器。触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。
此外,该电子装置70的显示器的面积可以与触摸传感器的面积相同,也可以不同。可选地,将显示器与触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
可选地,该电子装置70还可以包括射频(Radio Frequency,RF)电路,传感器、音频电路等等,在此不再赘述。
在图1所示的装置实施例中,作为一种计算机存储介质的存储器72中可以包括操作系统、以及虚拟机异步创建内部快照程序73;处理器71执行存储器72中存储虚拟机异步创建内部快照程序73时实现如下步骤:
S110:通过qemu-kvm虚拟机主线程的mainloop(主循环)中的monitorsocket(监听接口)获取用户请求创建虚拟磁盘内部快照的快照命令信息,其中,该快照命令信息包括待快照虚拟磁盘名称如(C盘、D盘、E盘、F盘、G盘等)以及内部快照编号(如snap1、snap2等)。
需要说明的是,虚拟机的主线程的mainloop(主循环)用于持续循环监听guest os(虚拟系统)发过来的io事件、monitor socket中的事件以及用户带外操作相关事件等,当获取到的monitor socket中的事件为创建虚拟磁盘内部快照事件时即可获取monitorsocket(监听接口)下发的用户请求创建虚拟磁盘内部快照的快照命令信息。
其中,不同的虚拟机内部快照正常情况下对应的待快照虚拟磁盘名称以及内部快照编号均不同,只有确保待快照虚拟磁盘名称以及内部快照编号均与待快照虚拟磁盘对应,才能保证完成的虚拟机内部快照中数据的正确性、时效性以及完整性。
S120:根据待快照虚拟磁盘名称以及内部快照编号对快照命令信息进行参数合法性检验,以确保完成的虚拟机内部快照中数据的正确性、时效性以及完整性,若快照命令信息通过参数合法性检验,则根据快照命令信息创建内部快照协程。
具体地,为保证参数合法性检验的准确性,对快照命令信息进行参数合法性检验的过程可以包括:查询与待快照虚拟磁盘名称对应的待快照虚拟磁盘是否存在,且,查询与内部快照编号对应的内部快照协程是否已经存在;若与待快照虚拟磁盘名称对应的待快照虚拟磁盘存在,且与内部快照编号对应的内部快照协程不存在,则进一步判断待快照虚拟磁盘当前是否支持创建内部快照;否则,如果与待快照虚拟磁盘名称对应的待快照虚拟磁盘存在,且与内部快照编号对应的内部快照协程也存在,或者如果与待快照虚拟磁盘名称对应的待快照虚拟磁盘不存在,则通过监听接口向用户退回待快照命令信息;若待快照虚拟磁盘当前支持创建内部快照,则判定快照命令信息通过参数合法性检验。
需要说明的是,判断待快照虚拟磁盘当前是否支持创建内部快照过程就是判断待快照虚拟磁盘当前是否正在执行一些与数据交换有关的命令,只有防止在进行内部快照时待快照虚拟磁盘进行数据交换,才能避免完成的内部快照数据出现混乱,保证完成的内部快照数据的有效性。
此外,保证内部快照编号对应的内部快照协程不存在,能够防止在同一时间段内连续对待快照虚拟磁盘进行重复快照,避免内部快照过程耗时过长,降低虚拟机的工作效率。
进一步地,对快照命令信息进行参数合法性检验的过程还可以包括,若待快照虚拟磁盘当前不支持创建内部快照,则将快照命令信息保存至备忘快照信息库;且,间隔预设时间后,再次判断待快照虚拟磁盘当前是否支持创建内部快照,若待快照虚拟磁盘当前支持创建内部快照,则根据快照命令信息创建内部快照协程;若待快照虚拟磁盘当前不支持创建内部快照,则再次将快照命令信息继续保存至备忘快照信息库,待预设时间后,继续判断待快照虚拟磁盘当前是否支持创建内部快照,间隔预设时间后再次判断,直至待快照虚拟磁盘当前支持创建内部快照。
通过为快照命令信息设置备忘快照信息库以及预设时间,能够有效避免由于待快照虚拟磁盘当前时间段内一直进行数据交换,从而致使主线程一直忙等或系统持续创建快照命令信息,进而降低虚拟机的工作效率。
S130:执行内部快照协程,系统通过内部快照协程实现对待快照虚拟磁盘进行内部快照,并获取虚拟磁盘的内部快照数据信息。
需要提前说明的是,协程,又称微线程,是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此协程能保留上一次调用时的状态,即所有局部状态的一个特定组合,每次过程重入时,就相当于进入上一次调用的状态。协程本质上是个单进程,协程相对于多进程来说,无需线程上下文切换的开销,自己即可实现上下文的切换,跳转到所需的上下文进行其他程序地执行;本发明提供的虚拟机异步创建内部快照方法就是利用内部快照协程的这一协程特性,实现执行指针在内部快照协程于主线程的主循环之间实现来回跳转,从而有效地解决了执行指针长时间忙等的问题。
在本发明的一个具体的实施方式中,图3为对待快照虚拟磁盘进行内部快照过程的具体流程图,如图3所示,该过程包括:
S131:读写待快照虚拟磁盘内的所有元数据;其中,待快照虚拟磁盘中的元数据并不是真正需要快照的数据,它是一种中介数据,需要对其进行数据解析才能获取真正需要读写IO的承载该虚拟磁盘真实数据的承载设备的地址。
S132:对元数据进行数据解析,以获取承载待快照虚拟磁盘的承载设备的地址,通过承载设备的地址获取承载设备内的内部快照数据信息;其中,承载设备可以是hostfile,也可以是rbd虚拟块设备,也可以是iscsi虚拟块设备,承载设备具体型号取决于虚拟机的具体配置。
S133:触发IO处理模块开始对承载设备内的内部快照数据信息进行读写,通过IO处理模块实现对待快照虚拟磁盘的内部快照。
需要说明的是,对承载设备内的内部快照数据信息进行读写的是IO处理模块中的IO处理线程,而IO处理线程与虚拟机的主线程是并行的,两个过程可以同时进行,因此,只需要利用内部快照协程的协程特性将执行指针跳转至主线程即可实现IO处理线程与虚拟机的主线程的并行处理。
此外,由于内部快照协程对IO处理模块进行触发之后,就会忙等IO处理模块对承载设备内的内部快照数据信息进行读写,直至IO处理模块读写完毕,在此期间,内部快照协程不做任何处理,严重影响虚拟机的工作效率。
S134:为提高虚拟机的工作效率,可以利用内部快照协程的协程特性,在IO处理模块对内部快照数据信息进行读写的同时,所将述内部快照协程的执行指针跳转至虚拟机的主线程的mainloop(主循环)以继续进行循环监听,当监听获取到其他的待处理请求程序时,继续执行该待处理请求程序;其中,待处理请求程序可以是guest os的IO请求事件或者用户带外操作。
S135:当IO处理模块对内部快照数据信息读写完毕后,执行指针从主循环跳转至内部快照协程内,继续执行内部快照协程以完成对虚拟磁盘的后续内部快照操作。
需要说明的是,在执行指针跳转至虚拟机的主线程继续执行待处理请求程序的过程中,该待处理请求程序难免会与待快照虚拟磁盘的数据交换有关,若该待处理请求程序与待快照虚拟磁盘的数据交换有关,很有可能由于主线程对该待处理请求程序的执行而导致最终完成的内部快照数据前后不一致,致使本次内部快照失败。
因此,可以在执行内部快照协程之前,可以先对待快照虚拟磁盘进行初始化,为带快照虚拟磁盘增加两个状态栏,用于为虚拟磁盘添加阻塞协程队列以及阻塞标识,其中,阻塞标识初始化为false,在执行内部快照协程时阻塞标识转换为true,在内部快照协程执行完毕后阻塞标识转换为false;在执行指针执行主循环内的待处理请求程序时,先判断待处理请求程序与待快照虚拟磁盘是否相关;若待处理请求程序与待快照虚拟磁盘相关,则将待处理程序保存至阻塞协程队列,并继续执行下一个待处理请求程序;若待处理请求程序与待快照虚拟磁盘无关,则直接执行待处理请求程序。
具体地,判断待处理请求程序与待快照虚拟磁盘是否相关过程包括,通过待快照虚拟磁盘的IO接口对待快照虚拟磁盘进行数据检测;若检测到待快照虚拟磁盘与其他设备之间存在数据交换,则判定待处理请求程序与待快照虚拟磁盘相关;否则,判定待处理请求程序与待快照虚拟磁盘无关。
通过为虚拟磁盘添加阻塞协程队列以及阻塞标识的方式能够及时地将与待快照虚拟磁盘相关的待处理请求程序保存起来,能够有效地防止内部快照数据前后不一致的问题。
进一步地,在内部快照执行完毕后,可以直接将执行指针跳转至阻塞协程队列,依次执行存储在阻塞协程队列内的待处理请求程序,通过这种方式能够防止阻塞协程队列中的待处理请求程序被遗漏。
S140:当内部快照协程执行完毕后,将内部快照数据信息以及快照命令信息保存至快照数据库,并通过监听接口通知用户内部快照任务完成。
通设置快照数据库的方式,能够在由于一些不确定的因素导致虚拟系统崩溃或者出现异常时,根据异常虚拟磁盘的异常信息如虚拟磁盘名称、虚拟磁盘的异常发生时间以及内部快照编号等信息对快照数据库进行查询,获取与该异常信息对应的内部快照信息,通过该内部快照信息可以实现对该虚拟磁盘进行数据恢复。
上述实施例提出的电子装置,具备以下优点:
1:通过将内部快照程序设置到协程中,实现执行指针在内部快照协程于主线程的主循环之间实现来回跳转,从而有效地解决了执行指针长时间忙等的问题。
2:通过参数合法性检验的方式能够确保快照命令信息的准确性,避免完成的内部快照数据出现混乱,保证完成的内部快照数据的有效性,。
3:通过添加阻塞协程队列以及阻塞标识的方式,及时地将与待快照虚拟磁盘相关的待处理请求程序保存起来,有效地防止内部快照数据前后不一致的问题。
在其他实施例中,图4为根据本发明实施例的虚拟机异步创建内部快照程序的内部逻辑示意图,如图4所示,虚拟机异步创建内部快照程序73还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器72中,并由处理器71执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图4所示,为图1中虚拟机异步创建内部快照程序73较佳实施例的程序模块图。虚拟机异步创建内部快照程序73可以被分割为:温度异常信息获取模块74、温度异常信息时序分析模块75、位置解析模块76以及具体故障原因判断模块77。模块74-77所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如,其中:
快照命令信息获取模块74,用于通过监听接口获取用户的快照命令信息,其中,快照命令信息包括待快照虚拟磁盘名称以及内部快照编号。
参数合法性检验模块75,用于根据待快照虚拟磁盘名称以及内部快照编号对快照命令信息进行参数合法性检验,若快照命令信息通过参数合法性检验,则根据快照命令信息创建内部快照协程。
协程执行模块76,用于对待快照虚拟磁盘进行内部快照,并获取虚拟磁盘的内部快照数据信息。
数据保存模块77,用于当内部快照协程执行完毕后,将内部快照数据信息以及快照命令信息保存至快照数据库,并通过监听接口通知用户内部快照任务完成。
此外,本发明还提供一种虚拟机异步创建内部快照方法。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,虚拟机异步创建内部快照方法包括:步骤S110-步骤S140。
S110:通过监听接口获取用户的快照命令信息,其中,快照命令信息包括待快照虚拟磁盘名称以及内部快照编号;
S120:根据待快照虚拟磁盘名称以及内部快照编号对快照命令信息进行参数合法性检验,若快照命令信息通过参数合法性检验,则根据快照命令信息创建内部快照协程;
S130:执行内部快照协程,对待快照虚拟磁盘进行内部快照,并获取虚拟磁盘的内部快照数据信息;
S140:当内部快照协程执行完毕后,将内部快照数据信息以及快照命令信息保存至快照数据库,并通过监听接口通知用户内部快照任务完成。
本发明提供的虚拟机异步创建内部快照方法的具体实施方式与上述电子装置的具体实施方式大致相同,在此不再赘述。
此外,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有虚拟机异步创建内部快照程序73,虚拟机异步创建内部快照程序73被处理器执行时实现如下操作:
S110:通过监听接口获取用户的快照命令信息,其中,快照命令信息包括待快照虚拟磁盘名称以及内部快照编号;
S120:根据待快照虚拟磁盘名称以及内部快照编号对快照命令信息进行参数合法性检验,若快照命令信息通过参数合法性检验,则根据快照命令信息创建内部快照协程;
S130:执行内部快照协程,对待快照虚拟磁盘进行内部快照,并获取虚拟磁盘的内部快照数据信息;
S140:当内部快照协程执行完毕后,将内部快照数据信息以及快照命令信息保存至快照数据库,并通过监听接口通知用户内部快照任务完成。
本发明提供的计算机可读存储介质的具体实施方式与上述多机房温度报警方法、电子装置的具体实施方式大致相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种虚拟机异步创建内部快照的方法,应用于电子装置,其特征在于,所述方法包括:
通过监听接口获取用户的快照命令信息,其中,所述快照命令信息包括待快照虚拟磁盘名称以及内部快照编号;
根据所述待快照虚拟磁盘名称以及内部快照编号对所述快照命令信息进行参数合法性检验,若所述快照命令信息通过所述参数合法性检验,则根据所述快照命令信息创建内部快照协程;
执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照,并获取所述虚拟磁盘的内部快照数据信息;
当所述内部快照协程执行完毕后,将所述内部快照数据信息以及所述快照命令信息保存至快照数据库,并通过所述监听接口通知用户内部快照任务完成;
执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照的过程包括:
读写所述待快照虚拟磁盘内的所有元数据;
对所述元数据进行解析,以获取承载所述待快照虚拟磁盘的承载设备;
触发IO处理模块开始对所述承载设备内的所述内部快照数据信息进行读写;
在所述IO处理模块对所述内部快照数据信息进行读写的过程中,所述内部快照协程的执行指针跳转至主循环以继续执行待处理请求程序;
当所述IO处理模块对所述内部快照数据信息读写完毕后,所述执行指针从所述主循环跳转至所述内部快照协程内,继续执行所述内部快照协程以完成对所述虚拟磁盘的后续内部快照操作;并且,
在执行所述内部快照协程之前,
为所述虚拟磁盘添加阻塞协程队列以及阻塞标识,其中,所述阻塞标识初始化为false,在执行所述内部快照协程时所述阻塞标识转换为true,在所述内部快照协程执行完毕后所述阻塞标识转换为false;
在所述执行指针执行所述主循环内的待处理请求程序时,先判断所述待处理请求程序与所述待快照虚拟磁盘是否相关;
若所述待处理请求程序与所述待快照虚拟磁盘相关,则将所述待处理程序保存至阻塞协程队列,并继续判断下一个待处理请求程序与所述待快照虚拟磁盘是否相关;
若所述待处理请求程序与所述待快照虚拟磁盘无关,则直接执行所述待处理请求程序。
2.根据权利要求1所述的虚拟机异步创建内部快照的方法,其特征在于,对所述快照命令信息进行参数合法性检验的过程包括:
查询与所述待快照虚拟磁盘名称对应的待快照虚拟磁盘是否存在,并查询与所述内部快照编号对应的内部快照协程是否已经存在;
若与所述待快照虚拟磁盘名称对应的待快照虚拟磁盘存在,且与所述内部快照编号对应的内部快照协程不存在,则进一步判断所述待快照虚拟磁盘当前是否支持创建内部快照;否则,通过所述监听接口向所述用户退回所述待快照命令信息;
若所述待快照虚拟磁盘当前支持创建内部快照,则判定所述快照命令信息通过所述参数合法性检验。
3.根据权利要求2所述的虚拟机异步创建内部快照的方法,其特征在于,
若所述待快照虚拟磁盘当前不支持创建内部快照,则将所述快照命令信息保存至备忘快照信息库;且,
间隔预设时间后,再次判断所述待快照虚拟磁盘当前是否支持创建内部快照,若所述待快照虚拟磁盘当前支持创建内部快照,则根据所述快照命令信息创建内部快照协程;
若所述待快照虚拟磁盘当前不支持创建内部快照,则再次将所述快照命令信息继续保存至所述备忘快照信息库,间隔预设时间后再次判断,直至所述待快照虚拟磁盘当前支持创建内部快照。
4.根据权利要求1所述的虚拟机异步创建内部快照的方法,其特征在于,判断所述待处理请求程序与所述待快照虚拟磁盘是否相关过程包括:
通过所述待快照虚拟磁盘的IO接口对所述待快照虚拟磁盘进行数据检测;
若检测到所述待快照虚拟磁盘与其他设备之间存在数据交换,则判定所述待处理请求程序与所述待快照虚拟磁盘相关;
否则,判定所述待处理请求程序与所述待快照虚拟磁盘无关。
5.根据权利要求4所述的虚拟机异步创建内部快照的方法,其特征在于,在所述内部快照执行完毕后,
所述执行指针跳转至所述阻塞协程队列,依次执行存储在所述阻塞协程队列内的待处理请求程序。
6.一种电子装置,其特征在于,该电子装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的虚拟机异步创建内部快照程序,所述虚拟机异步创建内部快照程序被所述处理器执行时实现如下步骤:
通过监听接口获取用户的快照命令信息,其中,所述快照命令信息包括待快照虚拟磁盘名称以及内部快照编号;
根据所述待快照虚拟磁盘名称以及内部快照编号对所述快照命令信息进行参数合法性检验,若所述快照命令信息通过所述参数合法性检验,则根据所述快照命令信息创建内部快照协程;
执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照,并获取所述虚拟磁盘的内部快照数据信息;
当所述内部快照协程执行完毕后,将所述内部快照数据信息以及所述快照命令信息保存至快照数据库,并通过所述监听接口通知用户内部快照任务完成;
执行所述内部快照协程,对所述待快照虚拟磁盘进行内部快照的过程包括:
读写所述待快照虚拟磁盘内的所有元数据;
对所述元数据进行解析,以获取承载所述待快照虚拟磁盘的承载设备;
触发IO处理模块开始对所述承载设备内的所述内部快照数据信息进行读写;
在所述IO处理模块对所述内部快照数据信息进行读写的过程中,所述内部快照协程的执行指针跳转至主循环以继续执行待处理请求程序;
当所述IO处理模块对所述内部快照数据信息读写完毕后,所述执行指针从所述主循环跳转至所述内部快照协程内,继续执行所述内部快照协程以完成对所述虚拟磁盘的后续内部快照操作;并且,
在执行所述内部快照协程之前,
为所述虚拟磁盘添加阻塞协程队列以及阻塞标识,其中,所述阻塞标识初始化为false,在执行所述内部快照协程时所述阻塞标识转换为true,在所述内部快照协程执行完毕后所述阻塞标识转换为false;
在所述执行指针执行所述主循环内的待处理请求程序时,先判断所述待处理请求程序与所述待快照虚拟磁盘是否相关;
若所述待处理请求程序与所述待快照虚拟磁盘相关,则将所述待处理程序保存至阻塞协程队列,并继续判断下一个待处理请求程序与所述待快照虚拟磁盘是否相关;
若所述待处理请求程序与所述待快照虚拟磁盘无关,则直接执行所述待处理请求程序。
7.根据权利要求6所述的电子装置,其特征在于,对所述快照命令信息进行参数合法性检验的过程包括:
查询与所述待快照虚拟磁盘名称对应的待快照虚拟磁盘是否存在;
查询与所述内部快照编号对应的内部快照协程是否已经存在;
若与所述待快照虚拟磁盘名称对应的待快照虚拟磁盘存在,且与所述内部快照编号对应的内部快照协程是不存在,则进一步判断所述待快照虚拟磁盘当前是否支持创建内部快照;否则,通过所述监听接口向所述用户退回所述待快照命令信息;
若所述待快照虚拟磁盘当前支持创建内部快照,则判定所述快照命令信息通过所述参数合法性检验。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有虚拟机异步创建内部快照程序,所述虚拟机异步创建内部快照程序被处理器执行时,实现如权利要求1至5中任一项所述的虚拟机异步创建内部快照方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978193.0A CN110879742B (zh) | 2019-10-15 | 2019-10-15 | 虚拟机异步创建内部快照方法、装置及存储介质 |
PCT/CN2019/118504 WO2021072880A1 (zh) | 2019-10-15 | 2019-11-14 | 虚拟机内部快照异步创建方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978193.0A CN110879742B (zh) | 2019-10-15 | 2019-10-15 | 虚拟机异步创建内部快照方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110879742A CN110879742A (zh) | 2020-03-13 |
CN110879742B true CN110879742B (zh) | 2023-08-11 |
Family
ID=69727960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910978193.0A Active CN110879742B (zh) | 2019-10-15 | 2019-10-15 | 虚拟机异步创建内部快照方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110879742B (zh) |
WO (1) | WO2021072880A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434461A (zh) * | 2020-03-23 | 2021-09-24 | 顺丰科技有限公司 | 快照创建方法和装置,快照还原方法和装置 |
CN112698913A (zh) * | 2020-12-29 | 2021-04-23 | 中国银联股份有限公司 | 虚拟机快照生成方法、装置、电子设备及介质 |
CN114090489B (zh) * | 2021-11-15 | 2024-04-12 | 深圳云豹智能有限公司 | 基于virtio的IO扩展方法及装置 |
CN114500238B (zh) * | 2022-01-25 | 2024-02-20 | 杭州云备姆科技有限公司 | 块级灾备的自动切换系统、方法、电子设备及介质 |
CN114584500B (zh) * | 2022-02-25 | 2024-03-22 | 网易(杭州)网络有限公司 | 异步通信的测试方法、装置及电子设备 |
CN114760312B (zh) * | 2022-04-27 | 2024-06-18 | 泽拓科技(深圳)有限责任公司 | 分布式任务协调方法、装置、设备和介质 |
CN117130980B (zh) * | 2023-10-24 | 2024-02-27 | 杭州优云科技有限公司 | 一种虚拟机快照管理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009106B1 (en) * | 2011-08-10 | 2015-04-14 | Nutanix, Inc. | Method and system for implementing writable snapshots in a virtualized storage environment |
CN105068856A (zh) * | 2015-07-16 | 2015-11-18 | 武汉噢易云计算有限公司 | 基于镜像快照的虚拟机备份系统及备份方法 |
CN109032838A (zh) * | 2018-06-28 | 2018-12-18 | 上海爱数信息技术股份有限公司 | 虚拟机备份恢复数据一致性的自动校验方法 |
CN110109734A (zh) * | 2019-05-15 | 2019-08-09 | 苏州浪潮智能科技有限公司 | 一种无状态虚拟机的实现方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665386B2 (en) * | 2013-06-14 | 2017-05-30 | Nutanix, Inc. | Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment |
CN104142858B (zh) * | 2013-11-29 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
US9875173B2 (en) * | 2014-06-30 | 2018-01-23 | Microsoft Technology Licensing, Llc | Time travel debugging in managed runtime |
CN104572248B (zh) * | 2014-12-17 | 2018-01-23 | 中电科华云信息技术有限公司 | 虚拟机动态保存快照的方法 |
US20170068469A1 (en) * | 2015-09-03 | 2017-03-09 | Microsoft Technology Licensing, Llc | Remote Shared Virtual Disk Snapshot Creation |
CN105335253B (zh) * | 2015-10-28 | 2019-01-15 | 北京百度网讯科技有限公司 | 创建虚拟机系统盘快照的方法和装置 |
CN106919471B (zh) * | 2015-12-25 | 2020-03-20 | 中国电信股份有限公司 | 用于快照建立的方法和系统 |
CN107992344B (zh) * | 2016-10-25 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 一种协程实现方法及装置 |
-
2019
- 2019-10-15 CN CN201910978193.0A patent/CN110879742B/zh active Active
- 2019-11-14 WO PCT/CN2019/118504 patent/WO2021072880A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009106B1 (en) * | 2011-08-10 | 2015-04-14 | Nutanix, Inc. | Method and system for implementing writable snapshots in a virtualized storage environment |
CN105068856A (zh) * | 2015-07-16 | 2015-11-18 | 武汉噢易云计算有限公司 | 基于镜像快照的虚拟机备份系统及备份方法 |
CN109032838A (zh) * | 2018-06-28 | 2018-12-18 | 上海爱数信息技术股份有限公司 | 虚拟机备份恢复数据一致性的自动校验方法 |
CN110109734A (zh) * | 2019-05-15 | 2019-08-09 | 苏州浪潮智能科技有限公司 | 一种无状态虚拟机的实现方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种高效的虚拟机磁盘快照系统;张龙;;电脑编程技巧与维护(第10期);第93页摘要-第94页第4节 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021072880A1 (zh) | 2021-04-22 |
CN110879742A (zh) | 2020-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110879742B (zh) | 虚拟机异步创建内部快照方法、装置及存储介质 | |
US20140068350A1 (en) | Self-checking system and method using same | |
CN113204580A (zh) | 水上目标位置信息查询方法、系统、装置、设备和介质 | |
US11741256B2 (en) | Open access token for determining that file is accessible to everyone | |
US8909989B2 (en) | Method for outputting power-on self test information, virtual machine manager, and processor | |
CN116126581B (zh) | 内存故障处理方法、装置、系统、设备及存储介质 | |
CN103034577B (zh) | 一种定位关机慢的方法及装置 | |
CN111831411B (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN107608637A (zh) | Raid管理方法、装置及计算机可读存储介质 | |
US11720449B2 (en) | Real time database backup status indication and restore | |
US20110096022A1 (en) | System and method for touch panel hotkey function | |
CN107608717B (zh) | 用户态信息收集方法、装置和系统 | |
CN116185571B (zh) | 数据迁移方法、设备、存储介质及装置 | |
CN116932392A (zh) | 界面测试方法、装置、设备、存储介质和计算机程序产品 | |
US8255642B2 (en) | Automatic detection of stress condition | |
US8024362B2 (en) | System and method for erasing and writing desktop management interface data under a linux system | |
KR20210016913A (ko) | 데이터베이스의 데이터 유실을 방지하기 위한 전자 장치 및 전자 장치의 동작 방법 | |
CN108009039B (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
US10761892B2 (en) | Method and electronic device for executing data reading/writing in volume migration | |
CN115499493A (zh) | 异步事务处理方法、装置、存储介质及计算机设备 | |
CN107765998A (zh) | Raid管理方法、装置及计算机可读存储介质 | |
US10210111B2 (en) | Systems and methods for minimizing audio glitches when incurring system management interrupt latency | |
CN112231290A (zh) | 一种本地日志的处理方法、装置、设备及存储介质 | |
CN111782515A (zh) | web应用的状态检测方法、装置、服务器和存储介质 | |
JP4562641B2 (ja) | コンピュータシステム、動作状態判定プログラムおよび動作状態判定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40020229 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |