CN109032762A - 虚拟机回溯方法及相关设备 - Google Patents

虚拟机回溯方法及相关设备 Download PDF

Info

Publication number
CN109032762A
CN109032762A CN201810903734.9A CN201810903734A CN109032762A CN 109032762 A CN109032762 A CN 109032762A CN 201810903734 A CN201810903734 A CN 201810903734A CN 109032762 A CN109032762 A CN 109032762A
Authority
CN
China
Prior art keywords
data
backtracking
virtual machine
disks
recalled
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
Application number
CN201810903734.9A
Other languages
English (en)
Other versions
CN109032762B (zh
Inventor
李文达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd, Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810903734.9A priority Critical patent/CN109032762B/zh
Publication of CN109032762A publication Critical patent/CN109032762A/zh
Application granted granted Critical
Publication of CN109032762B publication Critical patent/CN109032762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种虚拟机回溯方法,该方法可以在接收到对目标虚拟机的回溯指令后,确定出需要回溯的数据盘,再从预先创建的回溯数据中,查找到与该数据盘对应的回溯数据,并创建指向该回溯数据的克隆盘,进而将目标虚拟机对该数据盘的指向关系修改为对该克隆盘的指向关系。可见,本申请可以实现数据盘层面的回溯,并不需要对整个虚拟机进行克隆,并且,克隆盘并没有实际复制回溯数据,而是重定向回溯数据,这样不仅可以节省回溯时长且可以减少存储资源的浪费。另外,本申请还提供了虚拟机回溯相关设备,用以保证所述方法在实际中的应用及实现。

Description

虚拟机回溯方法及相关设备
技术领域
本申请涉及数据回溯技术领域,更具体地,是虚拟机回溯方法及相关设备。
背景技术
虚拟机,是通过软件程序模拟出来的具有完整硬件系统功能的计算机系统。虚拟机与实体计算机一样,硬件系统包含独立且完整的机器资源,如计算资源、内存资源、网络资源、存储资源、输入输出资源等。
在实际运行过程中,虚拟机所处理的业务数据会发生变化,在一些情况下需要将当前的业务数据回溯至历史的业务数据。例如,恶意程序攻击导致业务数据发生了损坏,误删除等操作导致业务数据丢失,业务数据频繁变更需要回顾变更前的某些业务数据,等等。
因此,需要提供一种虚拟机的回溯方法,以满足对业务数据的回溯需求。
发明内容
有鉴于此,本申请提供了一种虚拟机回溯方法,用于实现对业务数据的回溯。
为实现所述目的,本申请提供的技术方案如下:
第一方面,本申请提供了一种虚拟机回溯方法,包括:
接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
第二方面,本申请提供了一种虚拟机回溯装置,包括:
待回溯数据盘确定模块,用于接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
目标回溯数据查找模块,用于在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
克隆数据盘创建模块,用于为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
克隆数据盘挂载模块,用于将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
第三方面,本申请提供了一种虚拟机回溯设备,包括:存储器及处理器,所述处理器通过调用所述存储器内的数据及计算机程序,至少实现以下步骤:
接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
第四方面,本申请提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的虚拟机回溯方法。
由以上技术方案可知,本申请提供了一种虚拟机回溯方法,该方法可以在接收到对目标虚拟机的回溯指令后,确定出需要回溯的数据盘,再从预先创建的回溯数据中,查找到与该数据盘对应的回溯数据,并创建指向该回溯数据的克隆盘,进而将目标虚拟机对该数据盘的指向关系修改为对该克隆盘的指向关系。可见,本申请可以实现数据盘层面的回溯,并不需要对整个虚拟机进行克隆,并且,克隆盘并没有实际复制回溯数据,而是重定向回溯数据,这样不仅可以节省回溯时长且可以减少存储资源的浪费。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的虚拟机回溯方法的一个流程图;
图2为本申请提供的虚拟机回溯方法的一个具体示例流程图;
图3为本申请提供的虚拟机回溯方法的又一具体示例流程图;
图4为本申请提供的回溯数据的一种具体创建流程图;
图5为本申请提供的虚拟机回溯方法的又一流程图;
图6为本申请提供的虚拟机回溯装置的一个结构示意图;
图7为本申请提供的虚拟机的一个硬件架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
虚拟机,包括能够实现计算机功能的虚拟资源,包括计算、内存、网络、输入输出、存储等。在实际运行过程中,虚拟机可以将相关的业务数据保存在存储资源中。存储资源中的业务数据会发生变化,在某些情况下,需要将业务数据回滚至某个历史时间点的状态。
目前的一种虚拟机回溯方法,是整体式的回溯。具体实现方式是,在备份过程中,将虚拟机的全部数据进行备份,也就相当于为当前虚拟机生成新的备份虚拟机。备份虚拟机是具有完整计算机系统的虚拟机,备份虚拟机与当前虚拟机相互独立、互不影响。在回溯时,需要将当前虚拟机的全部数据再替换为备份虚拟机的数据。
这种回溯方式具有明显的缺点,耗时较长且机器资源耗费较多。具体原因是,一方面需要对包括计算、内存、网络、输入输出、存储等的所有资源数据进行备份,备份内容较多;另一方面,备份是将当前虚拟机的数据从当前存储区域复制一份到另一存储区域,以生成与当前虚拟机的数据相同的数据,数据复制操作既耗时又耗费资源。目前回溯方式的缺点会在虚拟机的数据较多的情况下越严重。
对此,本申请提供了一种虚拟机回溯方法,用以减少数据回溯过程中的时间及资源的浪费。
见图1,其示出了本申请提供的虚拟机回溯方法的一个流程。如图1所示,该流程可以具体包括步骤S101~S104。
S101:接收到对目标虚拟机的回溯指令后,在目标虚拟机的数据盘中,确定待回溯数据盘。
其中,接收到对某个虚拟机的回溯指令,表示需要对该某个虚拟机执行回溯方法。为了便于描述,可以将该某个虚拟机称为目标虚拟机。可见,目标虚拟机即待执行回溯方法的虚拟机。
对目标虚拟机的回溯指令可以是由其他设备发送的,也可以是由目标虚拟机根据业务数据的回溯需求自身生成的,或者,也可以是由人工输入的。
接收到回溯指令后,首先需要确定对目标虚拟机的哪个或哪些数据盘进行回溯。虚拟机的数据盘,可以是由具有数据盘分配功能的存储系统分配的虚拟存储资源。一个虚拟机可以有一个或多个数据盘。若目标虚拟机的数据盘为多个,可以将全部的数据盘确定为待回溯数据盘,或者,也可以是在多个数据盘中选择一个或一些数据盘。为了便于描述,可以将所确定出的数据盘称为待回溯数据盘。
其中,选择待回溯数据盘的一种具体实现方式为,基于用户的选择操作选择待回溯数据盘。具体地,
在目标虚拟机的数据盘中,确定预先创建有回溯数据的数据盘;将创建有回溯数据的数据盘提供给用户;以及基于用户的选择操作,将选择操作指向的数据盘确定为待回溯数据盘。
首先,需要确定出目标虚拟机中哪些数据盘创建有回溯数据,例如,为数据盘创建的回溯数据可以记录在系统的回溯数据统计表中,从回溯数据统计表中可以查找到这些数据盘。然后,将确定到的数据盘的标识通过图示等方式提供给用户,以供用户进行选择。最后,根据用户的选择操作,获取到用户所选择的数据盘,并将用户选择的数据盘作为待回溯数据盘。
例如,回溯数据创建系统可以为目标虚拟机创建回溯数据,并在统计表中记录创建有回溯数据的数据盘有哪些,假设目标虚拟机为虚拟机V1,记录该虚拟机V1的数据盘C1、数据盘C2及数据盘C4创建有回溯数据,则从统计表中可以获得数据盘C1、数据盘C2及数据盘C4的标识,将该三个数据盘的标识提供给用户,假设用户选择数据盘C2,则将数据盘C2作为待回溯数据盘。
可见,与现有的虚拟机回溯方法不同,本申请提供的虚拟机回溯方法是数据盘层面的,也就是说,回溯对象是目标虚拟机的数据盘而非目标虚拟机所有的机器资源。前已述及,虚拟机包含有虚拟的机器资源,如CPU、内存、网络、输入输出接口、数据盘等等。需要说明的是,业务数据存储在数据盘中,本申请仅仅针对数据盘进行回溯便可以实现业务数据的回溯。
S102:在预先创建的回溯数据中,查找与待回溯数据盘对应的目标回溯数据。
在实施前,预先为目标虚拟机中的一个或多个数据盘创建有回溯数据,回溯数据用于记录数据盘中的数据是怎样的,或者说,回溯数据用于记录数据盘中有哪些数据。
在一种实现方式中,回溯数据是通过复制数据盘中的数据得来的,这种方式中,需要为回溯数据实际分配与数据盘相同大小的磁盘空间,并将数据盘中的数据实际拷贝一份,存储在磁盘空间中。这种方式耗时较长且资源耗费较大。在另一种实现方式中,回溯数据仅仅是数据盘中数据的快照,快照数据共享数据盘中的数据,或者说,快照数据是具有只读属性的数据镜像。也就是说,快照数据并没有实际包含有数据盘中的数据,它用于描述数据盘中的数据是怎样的。如果需要从快照数据中读取数据,实际是从数据盘保存的数据中进行读取。
需要说明的是,回溯数据与数据盘之间具有对应关系,对应关系用于表示回溯数据是哪个数据盘的回溯数据。根据对应关系也可以认为,回溯数据具有对应的数据盘。因此,步骤S101可以确定待回溯数据盘,待回溯数据盘为目标虚拟机中的数据盘,根据数据盘与回溯数据之间的对应关系,确定待回溯数据盘所对应的回溯数据。为了便于描述,可以将所确定出的回溯数据称为目标回溯数据。
S103:为待回溯数据盘,创建指向目标回溯数据的克隆数据盘。
其中,使用克隆技术,为待回溯数据盘创建克隆盘,克隆盘也可以称为克隆数据盘或克隆数据卷。创建克隆数据盘的步骤可以由回溯方法的实现装置完成,也可以是回溯方法的实现装置向其他系统发送指令,以使其他系统创建克隆数据盘。例如,克隆技术可以由存储系统实现,则向存储系统发送指令,以触发存储系统创建克隆数据盘。
需要说明的是,存储系统可以为目标虚拟机分配虚拟的数据盘,因此,存储系统也可以称为数据盘分配系统。存储系统是具有克隆功能的存储系统,如阵列存储系统、云存储领域的分布式存储系统等。
需要说明的是,本申请中的克隆数据盘并非实际的存储盘,其内并非实际存储有目标回溯数据,而是指向目标回溯数据。这样,创建克隆数据盘所需的时间较短如时长一般为秒级,并且并不需拷贝目标回溯数据至克隆数据盘内。
另外,按照业务要求,目标虚拟机回溯后要能够实现业务数据的读取及写入操作,即需要能够从回溯后的盘内读取业务数据,也能够向回溯后的盘内写入业务数据。克隆数据盘能够实现这个要求,克隆数据盘可以写入并读出业务数据。
S104:将目标虚拟机对待回溯数据盘的指向关系修改为对克隆数据盘的指向关系。
其中,步骤S103创建克隆数据盘后,该克隆数据盘与目标虚拟机还未产生关联关系,需要将该克隆数据盘挂在目标虚拟机上。本步骤实现的就是这个目的。为了使克隆数据盘成为目标虚拟机的一部分,需要收回为目标虚拟机分配的待回溯数据盘,并将克隆数据盘的标识修改为待回溯数据盘的标识。
修改指向关系的主体可以是回溯方法的执行装置,也可以是数据盘的分配系统。具体地,向目标虚拟机的数据盘分配系统,发送修改指令,其中修改指令用于,触发数据盘分配系统收回为目标虚拟机分配的待回溯数据盘,并将克隆数据盘的标识修改为待回溯数据盘的标识。
目标虚拟机识别克隆数据盘的依据是,克隆数据盘的标识。修改标识后,目标虚拟机便加载了克隆数据盘。克隆数据盘指向的是目标虚拟机的数据盘的回溯数据,回溯数据为历史的业务数据,因此加载克隆数据盘后,目标虚拟机的业务数据也便回溯到历史状态。
由以上技术方案可知,本申请提供了一种虚拟机回溯方法,该方法可以在接收到对目标虚拟机的回溯指令后,确定出需要回溯的数据盘,再从预先创建的回溯数据中,查找到与该数据盘对应的回溯数据,并创建指向该回溯数据的克隆盘,进而将目标虚拟机对该数据盘的指向关系修改为对该克隆盘的指向关系。可见,本申请可以实现数据盘层面的回溯,并不需要对整个虚拟机进行克隆,并且,克隆盘并没有实际复制回溯数据,而是重定向回溯数据,这样不仅可以节省回溯时长且可以减少存储资源的浪费。
为了便于理解上述虚拟机回溯方法,通过图示提供的具体示例进行说明。
如图2所示,目标虚拟机为虚拟机V1,虚拟机V1包括有3个数据盘,分别为数据盘C1及数据盘C2。并且,预先为数据盘C1及数据盘C2创建有回溯数据,其中数据盘C1对应的是回溯数据D1,数据盘C2对应的是回溯数据D2。
在接收到回溯指令后,首先确定出虚拟机V1的待回溯数据盘,如图2的背景色所示,假设待回溯数据盘为数据盘C2,根据回溯数据与数据盘之间的对应关系可以确定出,回溯数据为回溯数据D2。进而,创建指向回溯数据D2的克隆数据盘K2,将虚拟机V1对数据盘C2的指向关系,修改为虚拟机V1对克隆数据盘K2的指向关系。这样,虚拟机V1便可以通过克隆数据盘K2回溯到回溯数据D2的状态。
基于上述对回溯数据的说明可知,如果目标虚拟机有多个数据盘,那么在同一时间点,不同的数据盘有不同的回溯数据。进一步地,在实际应用中,目标虚拟机可能是多次如周期性创建回溯数据,这样目标虚拟机的回溯数据还与时间点相关,不同时间点,同一数据盘可能有不同的回溯数据。
综合来说,回溯数据、时间点、数据盘三者时间具有对应关系,该对应关系用于表示,在某个时间点,对目标虚拟机的某个数据盘,生成了哪个回溯数据。具体地,三者对应关系的创建方式如下。
接收到对目标虚拟机中的数据盘的回溯数据创建指令后,为数据盘中的数据,生成回溯数据;获得生成回溯数据的时间点;以及建立数据盘、时间点、及回溯数据三者之间的对应关系。
具体来讲,本申请可以接收到对回溯数据创建指令,该指令中可以包含目标虚拟机中的某数据盘的标识,用于表示需要创建回溯数据的数据盘。因此,在接收到对该数据盘的回溯数据创建指令后,为数据盘中的数据生成回溯数据,前已述及,回溯数据可以是数据盘中数据的复制数据,也可以是数据盘中数据的快照数据。
需要说明的是,在实际业务需求中,可能需要对虚拟机中的业务数据进行周期性记录。因此回溯数据创建指令可以是周期性的,如每隔24小时就会接收到一个回溯数据创建指令,每当接收到回溯数据创建指令后,便生成一次回溯数据,以周期性记录数据盘中的业务数据。
在生成回溯数据后,获得回溯数据的生成时间点,并生成回溯数据、时间点及数据盘三者之间的对应关系。这样,同一数据盘在不同时间点,可能有多个不同的回溯数据。例如图3所示,针对虚拟机VM的数据盘C2,分别在时间点1、时间点2、以及时间点3创建有回溯数据1、回溯数据2、以及回溯数据3。
基于上述三者之间的对应关系,可以将虚拟机回溯至该多个时间点中的任意时间点。假设选择时间点2作为回溯时间点,则如图3的虚线所示,将数据盘C2从当前状态回滚至时间点2对应的回溯数据2的状态。
具体地,确定回溯时间点;以及根据回溯数据、时间点及数据盘三者之间的对应关系,在预先创建的回溯数据中,查找与回溯时间点及待回溯数据盘对应的目标回溯数据。
其中,在确定出待回溯数据盘后,可以查询待回溯数据盘的回溯数据的各个创建时间点,将时间点提供给用户进行选择,用户所选择的时间点即回溯时间点。或者,回溯时间点也可以是由目标虚拟机自己根据业务需求确定出来的。在确定出待回溯数据盘、回溯时间点后,根据上述三者之间的对应关系,便可以确定出该两者对应的目标回溯数据。
见图4,其示出了本申请提供的回溯数据的一种具体创建流程。如图4所示,回溯数据的创建流程具体包括步骤S401~S405。
S401:向目标虚拟机发送暂停指令。
其中,该暂停指令是预设短时间内的暂停指令。由于目标虚拟机在业务层面可以发生中断,这种中断是由于超时处理,如超时处理异常所导致的。导致业务中断的时长一般有时长阈值进行限定,如超过30秒的超时处理会导致业务中断。为了避免出现这种情况,本申请发送的暂停指令是低于该时长阈值的指令。
S402:扫描目标虚拟机上的数据盘。
其中,本申请提供的创建示例是需要对目标虚拟机上的所有数据盘创建回溯数据,因此本步骤需要识别目标虚拟机上所有的数据盘。当然,也可以由用户选择一部分数据盘作为待回溯数据盘。
S403:触发目标虚拟机的数据盘分配系统创建数据盘的快照数据。
其中,目标虚拟机可以与数据盘分配系统相连,数据盘分配系统用于为目标虚拟机分配数据盘。数据盘分配系统具有创建快照数据的功能,快照数据是目标虚拟机的数据盘的在某个时间点的数据标记,快照数据在数据盘分配系统中可以以元数据的方式存在。
S404:触发数据盘分配系统记录快照数据、数据盘、快照数据的创建时间点三者之间的关系。
S405:向目标虚拟机发送暂停解除指令,以解除目标虚拟机的暂停状态。
以上是回溯数据的创建过程。本申请是针对存储盘创建回溯数据,对数据盘可以在多个时间点创建快照数据,这些快照数据均是该目标虚拟机的该数据盘的。
基于创建的回溯数据,可以将目标虚拟机回滚至某个回溯数据所表示的状态。见图5,其示出了本申请提供的虚拟机回溯方法的又一流程。如图5所示,该流程具体包括步骤S501~S507。
S501:记录目标虚拟机的运行状态,并关闭目标虚拟机。
其中,在关闭目标虚拟机之前,需要记录目标虚拟机上各个单元的运行状态,以使目标虚拟机在恢复时能够恢复到之前的运行状态。
S502:为用户展示目标虚拟机上创建有回溯数据的数据盘,以及数据盘的回溯数据的创建时间点。
S503:获得用户选择的数据盘作为待回溯数据盘,以及获得用户选择的创建时间点作为回溯时间点。
前已述及,数据盘分配系统可以记录目标虚拟机上哪些数据盘创建有回溯数据,本步骤通过记录数据,可以为用户提供这些数据盘作为可选项,用户选择某个或某些数据盘作为待回溯数据盘。当然,也可以是目标虚拟机根据业务需求或选择规则,选择部分或全部数据盘作为待回溯数据盘。
由于同一数据盘可以在不同时间点创建不同的回溯数据,进一步可以将各个回溯数据的创建时间点,也提供给用户进行选择。将用户选择的创建时间点作为回溯时间点。当前,回溯时间点也可以是目标虚拟机根据业务需求或选择规则,自动选择的某个创建时间点。
S504:判断待回溯数据盘是否存在;若存在,则执行步骤S505,若不存在,则执行步骤S507。
由于目标虚拟机的数据盘是能够实现存储功能的虚拟盘,数据盘是由数据盘分配系统划分给目标虚拟机的,在实际应用中,数据盘可能被数据盘分配系统收回,这种情况下,如果仍然回溯该数据盘,则可能会出现错误,因此在回溯之前,需要判断待回溯的数据盘是否仍挂载在目标虚拟机上。
S505:触发数据盘分配系统创建指向待回溯数据盘对应的回溯数据的克隆数据盘,并将克隆数据盘的标识修改为待回溯数据盘的标识。
需要说明的是,有关本步骤的说明可以参见上述说明,此处并不赘述。
S506:根据目标虚拟机的运行状态恢复目标虚拟机。
其中,启动目标虚拟机并恢复至关闭之前的运行状态,但是,由于目标虚拟机的待回溯数据盘被替换为克隆数据盘,克隆数据盘指向的是回溯数据,因此,目标虚拟机的业务数据可以回滚至回溯数据的状态。
S507:退出。
其中,如果在回溯之前判断得出待回溯的数据盘并不挂载在目标虚拟机上,则执行退出流程。需要说明的是,在退出之前可以对用户提示,待回溯数据盘出现异常。
综上所述,本申请提供的虚拟机回溯方法,基于数据快照及数据克隆技术,可以使虚拟机秒级快速回溯到历史某个保护时间点的数据状态,进而用户可以回顾查看历史某时刻的业务场景。另外,在存储资源利用率及回溯效率方面,由于本申请的回溯方法针对的是虚拟机的数据盘,且使用链接克隆技术,只是创建指向回溯数据的链接形式的克隆数据盘,回溯数据量较少,从而可以减少存储资源的浪费,且可以节省回溯时间。
经过实验证明,本申请提供的虚拟机回溯方法在实际应用中,针对TB级别的虚拟机业务数据的场景,或者针对数十个业务数据盘的场景,处理效率可以在秒级(10秒以内)完成。
以下对本申请提供的虚拟机回溯的相关设备进行介绍,有关设备的相关说明可以参见上述方法部分,以下并不赘述。
见图6,其示出了本申请提供的一种虚拟机回溯装置。如图6所示,该装置可以具体包括:待回溯数据盘确定模块601、目标回溯数据查找模块602、克隆数据盘创建模块603、以及克隆数据盘挂载模块604。
待回溯数据盘确定模块601,用于接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
目标回溯数据查找模块602,用于在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
克隆数据盘创建模块603,用于为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
克隆数据盘挂载模块604,用于将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
在一个示例中,所述的虚拟机回溯装置还包括:回溯数据创建模块606。
回溯数据创建模块,用于接收到对目标虚拟机中的数据盘的回溯数据创建指令后,为所述数据盘中的数据,生成快照数据,其中所述快照数据共享所述数据盘中的数据;以及将所述快照数据确定为所述数据盘对应的回溯数据。
在一个示例中,所述回溯数据与时间点及数据盘具有预先创建的对应关系;则所述目标回溯数据查找模块包括:回溯时间点确定子模块、及回溯数据查找子模块。
回溯时间点确定子模块,用于确定回溯时间点;
回溯数据查找子模块,用于根据回溯数据、时间点及数据盘三者之间的对应关系,在预先创建的回溯数据中,查找与所述回溯时间点及所述待回溯数据盘对应的目标回溯数据。
在一个示例中,虚拟机回溯装置还包括:对应关系创建模块。
对应关系创建模块,用于接收到对目标虚拟机中的数据盘创建回溯数据指令后,为所述数据盘中的数据,生成回溯数据;获得生成所述回溯数据的时间点;以及建立所述数据盘、所述时间点、及所述回溯数据三者之间的对应关系。
在一个示例中,所述克隆数据盘挂载模块包括:克隆数据盘挂载子模块。
克隆数据盘挂载子模块,用于向所述目标虚拟机的数据盘分配系统,发送修改指令,其中所述修改指令用于,触发所述数据盘分配系统收回为所述目标虚拟机分配的待回溯数据盘,并将所述克隆数据盘的标识修改为所述待回溯数据盘的标识。
在一个示例中,所述待回溯数据盘确定模块包括:数据盘查找子模块、数据盘提供子模块、及数据盘确定子模块。
数据盘查找子模块,用于在所述目标虚拟机的数据盘中,确定预先创建有回溯数据的数据盘;
数据盘提供子模块,用于将创建有回溯数据的数据盘提供给用户;
数据盘确定子模块,用于基于用户的选择操作,将所述选择操作指向的数据盘确定为待回溯数据盘。
需要说明的是,虚拟机回溯模块也可以称为虚拟化模块,虚拟化模块除了可以实现虚拟机的回溯,还可以实现创建虚拟机,为虚拟机创建虚拟硬盘,将虚拟硬盘挂载在虚拟机上,销毁虚拟机,以及从虚拟机上卸载虚拟硬盘等等操作。
另外,本申请还提供了一种虚拟机回溯设备。见图7,其为本申请提供的虚拟机的一个硬件结构示意图。见图7,该设备可以包括:存储器701、处理器702及通信总线703。
其中,存储器701、处理器702通过通信总线703完成相互间的通信。
存储器701,用于存放程序;存储器701可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器702,用于执行程序,程序可以包括程序代码,所述程序代码包括处理器的操作指令。其中,程序可具体用于:
接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
处理器702可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。需要说明的是,处理器702可以是上述虚拟化模块的一种硬件表现形式。
再者,本申请还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任意一种的虚拟机回溯方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种虚拟机回溯方法,其特征在于,包括:
接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
2.根据权利要求1所述的虚拟机回溯方法,其特征在于,所述回溯数据的创建方式包括:
接收到对目标虚拟机中的数据盘的回溯数据创建指令后,为所述数据盘中的数据,生成快照数据,其中所述快照数据共享所述数据盘中的数据;
将所述快照数据确定为所述数据盘对应的回溯数据。
3.根据权利要求1所述的虚拟机回溯方法,其特征在于,所述回溯数据与时间点及数据盘具有预先创建的对应关系;
则所述在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据,包括:
确定回溯时间点;
根据回溯数据、时间点及数据盘三者之间的对应关系,在预先创建的回溯数据中,查找与所述回溯时间点及所述待回溯数据盘对应的目标回溯数据。
4.根据权利要求3所述的虚拟机回溯方法,其特征在于,所述回溯数据与时间点及数据盘之间的对应关系的创建方式包括:
接收到对目标虚拟机中的数据盘创建回溯数据指令后,为所述数据盘中的数据,生成回溯数据;
获得生成所述回溯数据的时间点;
建立所述数据盘、所述时间点、及所述回溯数据三者之间的对应关系。
5.根据权利要求1所述的虚拟机回溯方法,其特征在于,所述将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系,包括:
向所述目标虚拟机的数据盘分配系统,发送修改指令,其中所述修改指令用于,触发所述数据盘分配系统收回为所述目标虚拟机分配的待回溯数据盘,并将所述克隆数据盘的标识修改为所述待回溯数据盘的标识。
6.根据权利要求1所述的虚拟机回溯方法,其特征在于,所述在所述目标虚拟机的数据盘中,确定待回溯数据盘,包括:
在所述目标虚拟机的数据盘中,确定预先创建有回溯数据的数据盘;
将创建有回溯数据的数据盘提供给用户;
基于用户的选择操作,将所述选择操作指向的数据盘确定为待回溯数据盘。
7.一种虚拟机回溯装置,其特征在于,包括:
待回溯数据盘确定模块,用于接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
目标回溯数据查找模块,用于在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
克隆数据盘创建模块,用于为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
克隆数据盘挂载模块,用于将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
8.根据权利要求7所述的虚拟机回溯装置,其特征在于,还包括:
回溯数据创建模块,用于接收到对目标虚拟机中的数据盘的回溯数据创建指令后,为所述数据盘中的数据,生成快照数据,其中所述快照数据共享所述数据盘中的数据;以及将所述快照数据确定为所述数据盘对应的回溯数据。
9.根据权利要求7所述的虚拟机回溯装置,其特征在于,所述回溯数据与时间点及数据盘具有预先创建的对应关系;则所述目标回溯数据查找模块包括:
回溯时间点确定子模块,用于确定回溯时间点;
回溯数据查找子模块,用于根据回溯数据、时间点及数据盘三者之间的对应关系,在预先创建的回溯数据中,查找与所述回溯时间点及所述待回溯数据盘对应的目标回溯数据。
10.根据权利要求9所述的虚拟机回溯装置,其特征在于,还包括:
对应关系创建模块,用于接收到对目标虚拟机中的数据盘创建回溯数据指令后,为所述数据盘中的数据,生成回溯数据;获得生成所述回溯数据的时间点;以及建立所述数据盘、所述时间点、及所述回溯数据三者之间的对应关系。
11.根据权利要求7所述的虚拟机回溯装置,其特征在于,所述克隆数据盘挂载模块包括:
克隆数据盘挂载子模块,用于向所述目标虚拟机的数据盘分配系统,发送修改指令,其中所述修改指令用于,触发所述数据盘分配系统收回为所述目标虚拟机分配的待回溯数据盘,并将所述克隆数据盘的标识修改为所述待回溯数据盘的标识。
12.根据权利要求7所述的虚拟机回溯装置,其特征在于,所述待回溯数据盘确定模块包括:
数据盘查找子模块,用于在所述目标虚拟机的数据盘中,确定预先创建有回溯数据的数据盘;
数据盘提供子模块,用于将创建有回溯数据的数据盘提供给用户;
数据盘确定子模块,用于基于用户的选择操作,将所述选择操作指向的数据盘确定为待回溯数据盘。
13.一种虚拟机回溯设备,其特征在于,包括:存储器及处理器,所述处理器通过调用所述存储器内的数据及计算机程序,至少实现以下步骤:
接收到对目标虚拟机的回溯指令后,在所述目标虚拟机的数据盘中,确定待回溯数据盘;
在预先创建的回溯数据中,查找与所述待回溯数据盘对应的目标回溯数据;
为所述待回溯数据盘,创建指向所述目标回溯数据的克隆数据盘;
将所述目标虚拟机对所述待回溯数据盘的指向关系修改为对所述克隆数据盘的指向关系。
14.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至6任意一项所述的虚拟机回溯方法。
CN201810903734.9A 2018-08-09 2018-08-09 虚拟机回溯方法及相关设备 Active CN109032762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810903734.9A CN109032762B (zh) 2018-08-09 2018-08-09 虚拟机回溯方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810903734.9A CN109032762B (zh) 2018-08-09 2018-08-09 虚拟机回溯方法及相关设备

Publications (2)

Publication Number Publication Date
CN109032762A true CN109032762A (zh) 2018-12-18
CN109032762B CN109032762B (zh) 2022-01-25

Family

ID=64632495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810903734.9A Active CN109032762B (zh) 2018-08-09 2018-08-09 虚拟机回溯方法及相关设备

Country Status (1)

Country Link
CN (1) CN109032762B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750496A (zh) * 2019-10-23 2020-02-04 深信服科技股份有限公司 一种文件拷贝方法、系统、设备及计算机可读存储介质
CN112286626A (zh) * 2020-09-14 2021-01-29 福建升腾资讯有限公司 跨存储的磁盘快速安全克隆的方法、系统、设备和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033792A (zh) * 2010-12-17 2011-04-27 浪潮(北京)电子信息产业有限公司 一种基于虚拟化的数据远程恢复方法及装置
US20110296385A1 (en) * 2010-05-28 2011-12-01 Wielaard Mark J Mechanism for Generating Backtracing Information for Software Debugging of Software Programs Running on Virtual Machines
US20130139128A1 (en) * 2011-11-29 2013-05-30 Red Hat Inc. Method for remote debugging using a replicated operating environment
CN106294018A (zh) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 一种虚拟机恢复方法及装置
CN107003893A (zh) * 2016-02-03 2017-08-01 华为技术有限公司 虚拟机备份方法、备份装置及宿主机
CN107357690A (zh) * 2017-08-28 2017-11-17 郑州云海信息技术有限公司 一种虚拟机数据的备份方法及系统
US20180011885A1 (en) * 2008-09-05 2018-01-11 Commvault Systems, Inc. Systems and methods for management of virtualization data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180011885A1 (en) * 2008-09-05 2018-01-11 Commvault Systems, Inc. Systems and methods for management of virtualization data
US20110296385A1 (en) * 2010-05-28 2011-12-01 Wielaard Mark J Mechanism for Generating Backtracing Information for Software Debugging of Software Programs Running on Virtual Machines
CN102033792A (zh) * 2010-12-17 2011-04-27 浪潮(北京)电子信息产业有限公司 一种基于虚拟化的数据远程恢复方法及装置
US20130139128A1 (en) * 2011-11-29 2013-05-30 Red Hat Inc. Method for remote debugging using a replicated operating environment
CN107003893A (zh) * 2016-02-03 2017-08-01 华为技术有限公司 虚拟机备份方法、备份装置及宿主机
CN106294018A (zh) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 一种虚拟机恢复方法及装置
CN107357690A (zh) * 2017-08-28 2017-11-17 郑州云海信息技术有限公司 一种虚拟机数据的备份方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750496A (zh) * 2019-10-23 2020-02-04 深信服科技股份有限公司 一种文件拷贝方法、系统、设备及计算机可读存储介质
CN112286626A (zh) * 2020-09-14 2021-01-29 福建升腾资讯有限公司 跨存储的磁盘快速安全克隆的方法、系统、设备和介质
CN112286626B (zh) * 2020-09-14 2023-11-10 福建升腾资讯有限公司 跨存储的磁盘快速安全克隆的方法、系统、设备和介质

Also Published As

Publication number Publication date
CN109032762B (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
CN102035865B (zh) 数据存储及数据寻址方法、系统和设备
US20160259694A1 (en) Method and device for organizing and restoring file indexeses
CN103399781B (zh) 云服务器及其虚拟机管理方法
US8868864B2 (en) Storage apparatus and storage apparatus control method
CN104035836A (zh) 集群检索平台中的自动容灾恢复方法及系统
CN101137984A (zh) 用于分布加载数据库的系统、方法和软件
CN109582213A (zh) 数据重构方法及装置、数据存储系统
US20240061712A1 (en) Method, apparatus, and system for creating training task on ai training platform, and medium
CN109522154A (zh) 数据恢复方法及相关设备与系统
CN111930716A (zh) 一种数据库扩容方法、装置及系统
CN103268270A (zh) 快照的管理方法和装置
CN110597655A (zh) 一种迁移与基于纠删码的重构相耦合的快速预知修复方法和实现
CN104765651A (zh) 一种数据处理方法和装置
CN109032762A (zh) 虚拟机回溯方法及相关设备
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN102541750A (zh) 数据快照的实现方法和装置
CN109189327A (zh) 区块链数据的压缩处理方法和装置
CN107111534A (zh) 一种数据处理的方法和装置
CN103176867A (zh) 一种快速文件差异备份方法
CN104517067A (zh) 访问数据的方法、装置及系统
CN104239520B (zh) 一种基于历史信息的hdfs数据块放置策略
CN102629223B (zh) 一种数据修复方法及装置
CN109062515A (zh) 一种磁盘管理方法、系统及相关组件
US9558783B2 (en) System and method for displaying tape drive utilization and performance data
CN108664322A (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