CN106155843A - 一种虚拟机备份和逆向恢复方法 - Google Patents
一种虚拟机备份和逆向恢复方法 Download PDFInfo
- Publication number
- CN106155843A CN106155843A CN201610552015.8A CN201610552015A CN106155843A CN 106155843 A CN106155843 A CN 106155843A CN 201610552015 A CN201610552015 A CN 201610552015A CN 106155843 A CN106155843 A CN 106155843A
- Authority
- CN
- China
- Prior art keywords
- backup
- data
- reverse
- perform step
- completely
- 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
Classifications
-
- 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/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种虚拟机备份和逆向恢复方法,包括:虚拟机备份,在T0时刻,安全备份F0和增量备份K1通过逆向增量计算后,生成新的安全备份F1和逆向增量备份R0,并在T1‑Tn时刻的每次增量备份中,均进行逆向增量计算,到Tn时刻时,生成安全备份Fn,逆向增量R0~R(n‑1),保持最新时刻点Tn数据为安全备份;逆向恢复,恢复最新时刻点Tn数据时,直接恢复安全备份Fn;恢复次新时刻点T(n‑1)数据时,首先恢复安全备份Fn,再恢复逆向增量R(n‑1)。本发明在虚拟机备份数据存储到备份服务器后,生成当前备份点的完全备份,将上一个备份通过逆向差异计算,生成完全备份、逆向增量备份或者逆向差异备份,在恢复最新备份点时,最新备份为完全备份,可大大加快恢复速度。
Description
技术领域
本发明属于信息安全领域中的数据保护领域,涉及云计算领域内的虚拟机保护领域,具体的说,是涉及一种虚拟机备份和逆向恢复方法。
背景技术
虚拟机备份通常有完全备份、增量备份、差异备份等备份类型。在恢复时,用户首先选择恢复的时间点,备份系统按照这个时间点查找备份链,从备份链中提取出恢复该时间点的完全备份、增量备份或差异备份,然后按照顺序,先恢复完全备份,然后按照时间先后顺序,依次恢复增量备份或差异备份,至到恢复到用户选择的时间点。如果恢复点相距完全备份点的时间越长,则需要恢复的备份点就越多,则需要恢复的时间就越长。而在大多数恢复场景下,用户最需要恢复最新的备份点,因此,该恢复方式在实际使用中存在恢复数据量大、等待时间较长的缺陷。
发明内容
本发明的目的在于提供一种虚拟机备份和逆向恢复方法,解决了现有虚拟机备份恢复存在恢复数据量大、等待时间长的问题。
为了实现上述目的,本发明采用的技术方案如下:
一种虚拟机备份和逆向恢复方法,包括步骤:虚拟机备份、逆向恢复;
虚拟机备份
在T0时刻,安全备份F0和增量备份K1通过逆向增量计算后,生成新的安全备份F1和逆向增量备份R0,并在T1~Tn时刻的每次增量备份中,均进行逆向增量计算,到Tn时刻时,生成安全备份Fn,逆向增量R0~R(n-1),保持最新时刻点Tn数据为安全备份;
逆向恢复
恢复最新时刻点Tn数据时,直接恢复安全备份Fn;
恢复次新时刻点T(n-1)数据时,首先恢复安全备份Fn,再恢复逆向增量R(n-1);
然后,在恢复每个时刻点的数据时,均首先恢复安全备份Fn,再依次恢复逆向增量;
直至恢复时刻点T0数据时,首先恢复安全备份Fn,再依次恢复逆向增量R(n-1)、R(n-2)、…、R0;
具体地,所述虚拟机备份中,各时刻点备份数据表示为:
T0时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1⊙逆向增量R0;
T1时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1;
T2时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3⊙逆向增量R2;
T3时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3;
…
Tn-1时刻数据:完全备份Fn⊙逆向增量R(n-1);
Tn时刻数据:完全备份Fn;
其中运算符⊙表示逆向增量计算。
进一步地,所述虚拟机备份中安全备份的流程包括步骤:
定义虚拟磁盘中数据块大小S,S应为512字节的倍数。
定义虚拟磁盘中数据块的个数C。
定义虚拟磁盘的存储容量Z,Z=S×C,存储容量单位为字节。
定义xBitMap,用于描述虚拟磁盘中每个块的使用情况,为了表述方便,xBitMap用一个byte描述。xBitMap的含义为:0表示未占用;1表示已占用;2表示制备为0;3表示数据和上次备份相比较未发生变化。
定义数组xBitMap[C],用于描述虚拟磁盘的使用情况。数组xBitMap[C]存储到文件中,称为虚拟磁盘元文件。Fm表示完全备份的虚拟磁盘元文件,其中xBitMap[C]的别名为FxBitMap[C],Rm表示逆向增量备份的虚拟磁盘元文件,其中xBitMap[C]的别名为RxBitMap[C]。
虚拟磁盘数据在备份端存储为文件,该文件称为虚拟磁盘数据文件。Fs表示完全备份的虚拟磁盘数据文件,Rs表示逆向增量备份的虚拟磁盘数据文件。虚拟磁盘的各备份数据,使用一个虚拟磁盘元文件和一个虚拟磁盘数据文件描述。
Q101、接收虚拟磁盘大小Z、数据块大小S,计算数据块个数 C=Z/S;
Q102、初始化完全备份数据文件Fs、完全备份元文件Fm,设n=0,对虚拟磁盘进行快照操作;初始化过程为新建文件Fs和Fm,对虚拟磁盘执行快照操作通常通过Hypervisor的API进行或者通过备份代理进行;
Q103、判断n是否等于C,如是,执行步骤Q111;否则执行步骤Q104;
Q104、从Hypervisor/备份代理中读第n块数据D;
Q105、判断数据D是否为空,如是,执行步骤Q106;否则执行步骤Q108;
Q106、设置FxBitMap[n]=0;
Q107、设置n=n+1,执行步骤Q103;
Q108、判断数据D是否为全0,如是,执行步骤Q109;否则执行步骤Q110;
Q109、设置FxBitMap[n]=2,执行步骤Q107;
Q110、设置FxBitMap[n]=1,将数据D写入完全备份数据文件Fs偏移量为n*S处,执行步骤Q107;
Q111、关闭完全备份数据文件Fs、写入FxBitMap[C]到完全备份元文件Fm,删除虚拟磁盘快照。
更进一步地,所述逆向增量计算过程包括步骤:
Q201、初始化逆向增量元文件Rm、逆向增量备份数据文件Rs,得到虚拟磁盘大小Z、数据块大小S、数据块数C;
Q202、初始化逆向增量元文件Rm中数组RxBitMap[C]中每个记录的值为3;
Q203、打开完全备份元文件Fm,读出FxBitMap[C]到内存,打开完全备份数据文件Fs;
Q204、通过Hypervisor/备份代理对虚拟磁盘进行快照,获得增量数据块个数M,设m=0;
Q205、判断m==M,如是,执行步骤Q213;否则执行步骤Q206;
Q206、通过Hypervisor/备份代理获得第m块增量数据D及偏移量Ds;增量数据D的长度为S;
Q207、判断FxBitMap[Ds/S]==0,如是,执行步骤Q208;否则执行步骤Q210;本步骤判断完全备份数据中第Ds/S块是否已经占用;
Q208、设置FxBitMap[Ds/S]=1,RxBitMap[Ds/S]=0,将数据D写入完全备份数据文件Fs偏移量Ds处;
Q209、设置m=m+1,转步骤Q205;
Q210、判断FxBitMap[Ds/S]==1,如是执行步骤Q211;否则执行步骤Q212;
Q211、设置RxBitMap[Ds/S]=1,将完全备份数据文件Fs偏移量Ds开始,长度为S的数据读出,追加到逆向增量备份数据文件Rs中,将数据D写入完全备份数据文件Fs偏移量Ds处,执行步骤Q209;
Q212、设置FxBitMap[Ds/S]=1,RxBitMap[Ds/S]=2,将数据D写入完全备份数据文件Fs偏移量为Ds处,执行步骤Q209;
Q213、通过Hypervisor/备份代理删除虚拟磁盘快照,将FxBitMap[C]写入到完全备份元文件Fm中,关闭Fm,将RxBitMap[C]写入到逆向增量备份元文件Rm中,关闭Rm,关闭Fs、关闭Rs。
再进一步地,所述逆向恢复的流程过程包括步骤:
逆向恢复流程可以完成1个完全备份和P个逆向增量备份数据的恢复,其中P大于或等于0。逆向增量备份数据按照时间顺序,由新向旧访问。
Q301、获得需要恢复的完全备份元文件Fm、完全备份数据文件Fs和P个逆向增量元文件Rm和P个逆向增量备份数据文件Rs,设p=0;
Q302、获得虚拟磁盘大小Z,数据块大小S,计算数据块个数C,打开完全备份元文件Fm,读出FxBitMap[C],设n=0;
Q303、判断n==C,如是,执行步骤Q310;否则执行步骤Q304;
Q304、判断FxBitMap[n]==0,如是,执行步骤Q305;否则执行步骤Q306;
Q305、设置n=n+1,执行步骤Q303;
Q306、判断FxBitMap[n]==1,如是,执行步骤Q307;否则执行步骤Q309;
Q307、从完全备份数据文件Fs中偏移量n*S处读出长度为S的数据Dr;
Q308、发送(n*S,Dr)给Hypervisor/备份代理,并写入数据Dr到虚拟磁盘偏移量n*S处,执行步骤Q305;
Q309、设置数据Dr为全0,长度为S,执行步骤Q308;
Q310、判断p==P,如是,执行步骤Q321;否则执行步骤Q311;
Q311、判断n==C,如是,执行步骤Q320;否则执行步骤Q312;
Q312、打开第p个逆向增量备份元文件Rm,读出RxBitMap[C],打开第p个逆向增量备份数据文件Rs,设n=0;
Q313、判断RxBitMap[n]≥2,如是,执行步骤Q314;否则执行步骤Q318;
Q314、判断FxBitMap[n]==2,如是,执行步骤Q315,否则执行步骤Q316;
Q315、设置n=n+1,执行步骤Q310;
Q316、设置数据Dr为全0,长度为S;
Q317、发送(n*S,Dr)给Hypervisor/备份代理,并写入数据Dr到虚拟磁盘n*S处,执行步骤Q315;
Q318、判断FxBitMap[n]==0,如是,执行步骤Q315;否则执行步骤Q319;
Q319、从逆向增量备份数据文件Rs中偏移量n*S处读出长度为S的数据Dr,执行步骤Q317;
Q320、设置p=p+1,执行步骤Q310;
Q321、完成逆向恢复,关闭Fm、Fs,关闭P个Rm,关闭P个Rs。
本发明的有益效果为:
本发明在虚拟机备份数据存储到备份服务器后,生成当前备份点的完全备份,将上一个备份通过逆向差异计算,生成完全备份、逆向增量备份或者逆向差异备份,在恢复最新备份点时,最新备份为完全备份,可大大加快恢复速度。由于差异备份为增量备份的特殊情况,因此本发明只讨论增量备份。本发明能够达到减少恢复虚拟机最新备份点的数据量,减少恢复时间的技术效果。
附图说明
图1为本发明系统架构图。
图2为本发明xBitMap和虚拟磁盘关系图。
图3为本发明虚拟磁盘逆向恢复原理图。
图4为本发明虚拟磁盘完全备份流程图。
图5为本发明逆向增量计算流程图。
图6为本发明逆向恢复流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。本发明的实施方式包括但不限于下列实施例。
实施例1
如图1-6所示,一种虚拟机逆向恢复系统,包括生产服务器、备份服务器。
生产服务器包括硬件M03、Hypervisor/备份代理M02、VM M01,共三个部分。备份服务器包括操作系统M05、虚拟机备份与恢复系统M04。
VM M01,用于描述虚拟机,可以为Windows、Linux虚拟机等。
Hypervisor/备份代理M02,用于描述可以进行虚拟机备份/恢复功能的软件API或者模块,如VMware的Hypervisor已经具备的备份/恢复功能的API,不需要在VMware的Hypervisor上安装备份代理,而XenServer或者KVM的Hypervisor由于备份/恢复功能不完善,因此,需要在其Hypervisor上安装备份代理。
硬件M03,用于描述能够运行Hypervisor的兼容硬件。
虚拟机备份与恢复系统M04,能够完成虚拟机备份与恢复功能的软件模块,本发明为应用于虚拟机恢复功能。
操作系统M05,用于描述能够运行虚拟机备份与恢复系统的操作系统,如Windows、Linux等。
虚拟机备份流程为:备份服务器通过网络从Hypervisor/备份代理M02备份虚拟机数据,并存储到虚拟机备份与恢复系统M04中。
虚拟机恢复流程为:当生产服务器中的VM M01出现故障时,可利用虚拟机备份与恢复系统M04中的备份数据,通过网络从Hypervisor/备份代理M02恢复虚拟机数据。
本发明xBitMap和虚拟磁盘关系图如图2所示。
由于虚拟机由一个或者多个虚拟磁盘组成,因此,本实施例只讨论虚拟机只有一个磁盘情况。
定义虚拟磁盘中数据块大小S,S应为512字节的倍数。
定义虚拟磁盘中数据块的个数C。
定义虚拟磁盘的存储容量Z,Z=S×C,存储容量单位为字节。
定义xBitMap,用于描述虚拟磁盘中每个块的使用情况,为了表述方便,xBitMap用一个byte描述。xBitMap的含义为:0表示未占用;1表示已占用;2表示制备为0;3表示数据和上次备份相比较未发生变化。
定义数组xBitMap[C],用于描述虚拟磁盘的使用情况。其中C为虚拟磁盘中数据块的个数。数组xBitMap[C]存储到文件中,称为虚拟磁盘元文件。Fm表示完全备份的虚拟磁盘元文件,其中xBitMap[C]的别名为FxBitMap[C],Rm表示逆向增量备份的虚拟磁盘元文件,其中xBitMap[C]的别名为RxBitMap[C]。
虚拟磁盘数据在备份端存储为文件,该文件称为虚拟磁盘数据文件。Fs表示完全备份的虚拟磁盘数据文件,Rs表示逆向增量备份的虚拟磁盘数据文件。虚拟磁盘的各备份数据,使用一个虚拟磁盘元文件和一个虚拟磁盘数据文件描述。
本发明虚拟磁盘逆向恢复原理如图3所示。
时间轴用于描述各时刻点相互之间的先后顺序,如T0早于T1,T1早于T2,T2早于T3,T3早于T4。本实施例中,在T0时刻,生成一个完全备份点F,在T1~T4时刻,各生成一个增量备份点K1~K4。
完全备份F用于描述虚拟机数据的完整副本,不依赖其他副本或数据。
增量备份K用于描述本次备份和上次备份之间的数据变化,依赖上次、本次备份数据。
逆向增量备份R用于描述上次备份和本次备份之间的数据变化,依赖上次、本次备份数据。
以图3为例,按照传统方式各时间点备份数据可表述为:
T0时刻数据:完全备份F0;
T1时刻数据:完全备份F0⊕增量备份K1;
T2时刻数据:完全备份F0⊕增量备份K1⊕增量备份K2;
T3时刻数据:完全备份F0⊕增量备份K1⊕增量备份K2⊕增量备份K3;
T4时刻数据:完全备份F0⊕增量备份K1⊕增量备份K2⊕增量备份K3⊕增量备份K4;
其中运算符⊕表示增量计算。
如需要恢复T4时刻虚拟机数据,按照传统恢复方法,首先恢复完全备份F0,接着恢复增量备份K1~K4,其恢复实际过程为将完全备份F0全部拷贝到生产服务器,然后再将K1拷贝到生产服务器,覆盖对应的数据块,最后再将K2~K4依次覆盖对应的数据块。
本发明逆向增量计算后,各时间点备份数据可表述为:
T0时刻数据:完全备份F4⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1⊙逆向增量R0;
T1时刻数据:完全备份F4⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1;
T2时刻数据:完全备份F4⊙逆向增量R3⊙逆向增量R2;
T3时刻数据:完全备份F4⊙逆向增量R3;
T4时刻数据:完全备份F4;
其中运算符⊙表示逆向增量计算。
本发明在虚拟机备份过程中,在备份服务器端,利用完全备份和增量备份生成新的完全备份和逆向增量备份,保持最新时刻点数据为完全备份,如完全备份F0和增量备份K1,通过逆向增量计算后(以运算符⊙表示),生成完全备份点F1和逆向增量点R0,每次增量备份后,均进行逆向增量计算,到T4时刻时,生成完全备份F4,逆向增量R0~R3。在恢复最新时刻点T4数据时,逆向恢复直接恢复完全备份F4,完全备份即为最新数据,而不需要恢复各增量备份,提高恢复效率。在恢复次新点T3数据时,首先恢复完全备份F4,再恢复逆向增量R3,完成次新点数据恢复。备份数据实际存储当前完全备份F4和逆向增量备份R0~R3。
本发明虚拟磁盘完全备份流程图如图4所示。
步骤Q101、接收虚拟磁盘大小Z、数据块大小S,计算数据块个数C=Z/S;
步骤Q102、初始化完全备份数据文件Fs、完全备份元文件Fm,设n=0,对虚拟磁盘进行快照操作;初始化过程为新建文件Fs和Fm,对虚拟磁盘进行快照操作通常通过Hypervisor的API进行或者通过备份代理进行;
步骤Q103、判断n是否等于C,如是,执行步骤Q111;否则执行步骤Q104;
步骤Q104、从Hypervisor/备份代理中读第n块数据D;
步骤Q105、判断数据D是否为空,如是,执行步骤Q106;否则执行步骤Q108;
步骤Q106、设置FxBitMap[n]=0;
步骤Q107、设置n=n+1,执行步骤Q103;
步骤Q108、判断D是否为全0,如是,执行步骤Q109;否则执行步骤Q110;
步骤Q109、设置FxBitMap[n]=2,执行步骤Q107;
步骤Q110、设置FxBitMap[n]=1,将数据D写入Fs偏移量为n*S处,执行步骤Q107;
步骤Q111、关闭完全备份数据文件Fs、写入FxBitMap[C]到完全备份元文件Fm,删除虚拟磁盘快照。
本发明逆向增量计算流程图如图5所示。
步骤Q201、初始化逆向增量元文件Rm,逆向增量备份数据文件Rs,得到虚拟磁盘大小Z,数据块大小S,数据块数C;
步骤Q202、初始化逆向增量元文件Rm中数组RxBitMap[C]中每个记录的值为3;
步骤Q203、打开完全备份元文件Fm,读出FxBitMap[C]到内存,打开完全备份数据文件Fs;
步骤Q204、通过Hypervisor/备份代理对虚拟磁盘进行快照,获得增量数据块个数M,设m=0;
步骤Q205、判断m==M,如是,执行步骤Q213;否则执行步骤Q206;
步骤Q206、通过Hypervisor/备份代理获得第m块增量数据D及偏移量Ds;增量数据D的长度为S;
步骤Q207、判断FxBitMap[Ds/S]==0,如是,执行步骤Q208;否则执行步骤Q210;本步骤判断完全备份数据中第Ds/S块是否已经占用;
步骤Q208、设置FxBitMap[Ds/S]=1,RxBitMap[Ds/S]=0,将数据D写入完全备份数据文件Fs偏移量Ds处;
步骤Q209、设置m=m+1,执行步骤Q205;
步骤Q210、判断FxBitMap[Ds/S]==1,如是执行步骤Q211,否则执行步骤Q212;
步骤Q211、设置RxBitMap[Ds/S]=1,将完全备份数据文件Fs偏移量Ds开始,长度为S的数据读出,追加到逆向增量备份数据文件RsRs中,将数据D写入完全备份数据文件Fs偏移量Ds处,执行步骤Q209;
步骤Q212、设置FxBitMap[Ds/S]=1,RxBitMap[Ds/S]=2,将数据D写入完全备份数据文件Fs偏移量为Ds处,执行步骤Q209;
步骤Q213、通过Hypervisor/备份代理删除虚拟磁盘快照,将FxBitMap[C]写入到完全备份元文件Fm中,关闭Fm,将RxBitMap[C]写入到逆向增量备份元文件Rm中,关闭Rm,关闭Fs、关闭Rs。
本发明逆向恢复流程图如图6所示。
逆向恢复流程可以完成1个完全备份和P个逆向增量备份数据的恢复,其中P大于或等于0。逆向增量备份数据按照时间顺序,由新向旧访问。
步骤Q301、获得需要恢复的完全备份元文件Fm、完全备份数据文件Fs和P个逆向增量元文件Rm和P个逆向增量备份数据文件Rs,设p=0;
步骤Q302、获得虚拟磁盘大小Z,数据块大小S,计算数据块个数C,打开完全备份元文件Fm,读出FxBitMap[C],设n=0;
步骤Q303、判断n==C,如是,执行步骤Q310;否则执行步骤Q304;
步骤Q304、判断FxBitMap[n]==0,如是,执行步骤Q305;否则执行步骤Q306;
步骤Q305、设置n=n+1,执行步骤Q303;
步骤Q306、判断FxBitMap[n]==1,如是,执行步骤Q307;否则执行步骤Q309;
步骤Q307、从完全备份数据文件Fs中偏移量n*S处读出长度为S的数据Dr;
步骤Q308、发送(n*S,Dr)给Hypervisor/备份代理,并写入数据Dr到虚拟磁盘偏移量n*S处,执行步骤Q305;
步骤Q309、设置数据Dr为全0,长度为S,执行步骤Q308;
步骤Q310、判断p==P,如是,执行步骤Q321;否则执行步骤Q311;
步骤Q311、判断n==C,如是,执行步骤Q320;否则执行步骤Q312;
步骤Q312、打开第p个逆向增量备份元文件Rm,读出RxBitMap[C],打开第p个逆向增量备份数据文件Rs,设n=0;
步骤Q313、判断RxBitMap[n]≥2,如是,执行步骤Q314;否则执行步骤Q318;
步骤Q314、判断FxBitMap[n]==2,如是,执行步骤Q315;否则执行步骤Q316;
步骤Q315、设置n=n+1,执行步骤Q310;
步骤Q316、设置数据Dr为全0,长度为S;
步骤Q317、发送(n*S,Dr)给Hypervisor/备份代理,并写入数据Dr到虚拟磁盘n*S处,执行步骤Q315;
步骤Q318、判断FxBitMap[n]==0,如是,执行步骤Q315;否则执行步骤Q319;
步骤Q319、从逆向增量备份数据文件Rs中偏移量n*S处读出长度为S的数据Dr,执行步骤Q317;
步骤Q320、设置p=p+1,执行步骤Q310;
步骤Q321、完成逆向恢复,关闭Fm、Fs,关闭P个Rm,关闭P个Rs。
实施例2
一种虚拟机逆向恢复系统,与实施例1不同的是,本实施例包括T0~T6共7个时刻点,在逆向增量计算后,各时间点备份数据可表述为:
T0时刻数据:完全备份F6⊙逆向增量R5⊙逆向增量R4⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1⊙逆向增量R0;
T1时刻数据:完全备份F6⊙逆向增量R5⊙逆向增量R4⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1;
T2时刻数据:完全备份F6⊙逆向增量R5⊙逆向增量R4⊙逆向增量R3⊙逆向增量R2;
T3时刻数据:完全备份F6⊙逆向增量R5⊙逆向增量R4⊙逆向增量R3;
T4时刻数据:完全备份F6⊙逆向增量R5⊙逆向增量R4⊙;
T5时刻数据:完全备份F6⊙逆向增量R5;
T6时刻数据:完全备份F6。
其中运算符⊙表示逆向增量计算。
按照上述实施例,便可很好地实现本发明。值得说明的是,基于上述设计原理的前提下,为解决同样的技术问题,即使在本发明所公开的结构基础上做出的一些无实质性的改动或润色,所采用的技术方案的实质仍然与本发明一样,故其也应当在本发明的保护范围。
Claims (5)
1. 一种虚拟机备份和逆向恢复方法,其特征在于,包括步骤:虚拟机备份、逆向恢复;
虚拟机备份
在T0时刻,安全备份F0和增量备份K1通过逆向增量计算后,生成新的安全备份F1和逆向增量备份R0,并在T1~Tn时刻的每次增量备份中,均进行逆向增量计算,到Tn时刻时,生成安全备份Fn,逆向增量R0~R(n-1),保持最新时刻点Tn数据为安全备份;
逆向恢复
恢复最新时刻点Tn数据时,直接恢复安全备份Fn;
恢复次新时刻点T(n-1)数据时,首先恢复安全备份Fn,再恢复逆向增量R(n-1);
然后,在恢复每个时刻点的数据时,均首先恢复安全备份Fn,再依次恢复逆向增量;
直至恢复时刻点T0数据时,首先恢复安全备份Fn,再依次恢复逆向增量R(n-1)、R(n-2)、…、R0。
2.根据权利要求1所述的一种虚拟机备份和逆向恢复方法,其特征在于,所述虚拟机备份中,各时刻点备份数据表示为:
T0时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1⊙逆向增量R0;
T1时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3⊙逆向增量R2⊙逆向增量R1;
T2时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3⊙逆向增量R2;
T3时刻数据:完全备份Fn⊙逆向增量R(n-1)…⊙逆向增量R3;
…
Tn-1时刻数据:完全备份Fn⊙逆向增量R(n-1);
Tn时刻数据:完全备份Fn;
其中运算符⊙表示逆向增量计算。
3.根据权利要求2所述的一种虚拟机备份和逆向恢复方法,其特征在于,所述虚拟机备份中安全备份的流程包括步骤:
定义xBitMap,xBitMap的含义为:0表示未占用;1表示已占用;2表示制备为0;3表示数据和上次备份相比较未发生变化;
定义数组xBitMap[C],用数组xBitMap[C]存储到文件中,称为虚拟磁盘元文件;Fm表示完全备份元文件,其中xBitMap[C]的别名为FxBitMap[C];Rm表示逆向增量备份元文件,其中xBitMap[C]的别名为RxBitMap[C];
虚拟磁盘数据在备份端存储为文件,该文件称为虚拟磁盘数据文件,Fs表示完全备份数据文件,Rs表示逆向增量备份数据文件;
Q101、接收虚拟磁盘大小Z、数据块大小S,计算数据块个数 C=Z/S;
Q102、初始化完全备份数据文件Fs、完全备份元文件Fm,设n=0,对虚拟磁盘进行快照操作;
Q103、判断n是否等于C,如是,执行步骤Q111;否则执行步骤Q104;
Q104、从Hypervisor/备份代理中读第n块数据D;
Q105、判断数据D否为空,如是,执行步骤Q106;否则执行步骤Q108;
Q106、设置FxBitMap[n]=0;
Q107、设置n=n+1,执行步骤Q103;
Q108、判断数据D是否为全0,如是,执行步骤Q109;否则执行步骤Q110;
Q109、设置FxBitMap[n]=2,执行步骤Q107;
Q110、设置FxBitMap[n]=1,将数据D写入完全备份数据文件Fs偏移量为n*S处,执行步骤Q107;
Q111、关闭完全备份数据文件Fs、写入FxBitMap[C]到完全备份元文件Fm,删除虚拟磁盘快照。
4.根据权利要求3所述的一种虚拟机备份和逆向恢复方法,其特征在于,所述逆向增量计算过程包括步骤:
Q201、初始化逆向增量元文件Rm、逆向增量备份数据文件Rs,得到虚拟磁盘大小Z、数据块大小S、数据块数C;
Q202、初始化逆向增量元文件Rm中数组RxBitMap[C]中每个记录的值为3;
Q203、打开完全备份元文件Fm,读出FxBitMap[C]到内存,打开完全备份数据文件Fs;
Q204、通过Hypervisor/备份代理对虚拟磁盘进行快照,获得增量数据块个数M,设m=0;
Q205、判断m==M,如是,执行步骤Q213;否则执行步骤Q206;
Q206、通过Hypervisor/备份代理获得第m块增量数据D及偏移量Ds;增量数据D的长度为S;
Q207、判断FxBitMap[Ds/S]==0,如是,执行步骤Q208;否则执行步骤Q210;
Q208、设置FxBitMap[Ds/S]=1,RxBitMap[Ds/S]=0,将数据D写入完全备份数据文件Fs偏移量Ds处;
Q209、设置m=m+1,转步骤Q205;
Q210、判断FxBitMap[Ds/S]==1,如是执行步骤Q211;否则执行步骤Q212;
Q211、设置RxBitMap[Ds/S]=1,将完全备份数据文件Fs偏移量Ds开始,长度为S的数据读出,追加到逆向增量备份数据文件Rs中,将数据D写入完全备份数据文件Fs偏移量Ds处,执行步骤Q209;
Q212、设置FxBitMap[Ds/S]=1,RxBitMap[Ds/S]=2,将数据D写入完全备份数据文件Fs偏移量为Ds处,执行步骤Q209;
Q213、通过Hypervisor/备份代理删除虚拟磁盘快照,将FxBitMap[C]写入到完全备份元文件Fm中,关闭Fm,将RxBitMap[C]写入到逆向增量备份元文件Rm中,关闭Rm,关闭Fs、关闭Rs。
5.根据权利要求4所述的一种虚拟机备份和逆向恢复方法,其特征在于,所述逆向恢复的流程过程包括步骤:
Q301、获得需要恢复的完全备份元文件Fm、完全备份数据文件Fs和P个逆向增量元文件Rm和P个逆向增量备份数据文件Rs,设p=0;
Q302、获得虚拟磁盘大小Z,数据块大小S,计算数据块个数C,打开完全备份元文件Fm,读出FxBitMap[C],设n=0;
Q303、判断n==C,如是,执行步骤Q310;否则执行步骤Q304;
Q304、判断FxBitMap[n]==0,如是,执行步骤Q305;否则执行步骤Q306;
Q305、设置n=n+1,执行步骤Q303;
Q306、判断FxBitMap[n]==1,如是,执行步骤Q307;否则执行步骤Q309;
Q307、从完全备份数据文件Fs中偏移量n*S处读出长度为S的数据Dr;
Q308、发送(n*S,Dr)给Hypervisor/备份代理,并写入数据Dr到虚拟磁盘偏移量n*S处,执行步骤Q305;
Q309、设置数据Dr为全0,长度为S,执行步骤Q308;
Q310、判断p==P,如是,执行步骤Q321;否则执行步骤Q311;
Q311、判断n==C,如是,执行步骤Q320;否则执行步骤Q312;
Q312、打开第p个逆向增量备份元文件Rm,读出RxBitMap[C],打开第p个逆向增量备份数据文件Rs,设n=0;
Q313、判断RxBitMap[n]≥2,如是,执行步骤Q314;否则执行步骤Q318;
Q314、判断FxBitMap[n]==2,如是,执行步骤Q315,否则执行步骤Q316;
Q315、设置n=n+1,执行步骤Q310;
Q316、设置数据Dr为全0,长度为S;
Q317、发送(n*S,Dr)给Hypervisor/备份代理,并写入数据Dr到虚拟磁盘n*S处,执行步骤Q315;
Q318、判断FxBitMap[n]==0,如是,执行步骤Q315;否则执行步骤Q319;
Q319、从逆向增量备份数据文件Rs中偏移量n*S处读出长度为S的数据Dr,执行步骤Q317;
Q320、设置p=p+1,执行步骤Q310;
Q321、完成逆向恢复,关闭Fm、Fs,关闭P个Rm,关闭P个Rs。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610552015.8A CN106155843B (zh) | 2016-07-13 | 2016-07-13 | 一种虚拟机备份和逆向恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610552015.8A CN106155843B (zh) | 2016-07-13 | 2016-07-13 | 一种虚拟机备份和逆向恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155843A true CN106155843A (zh) | 2016-11-23 |
CN106155843B CN106155843B (zh) | 2019-03-12 |
Family
ID=58061691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610552015.8A Expired - Fee Related CN106155843B (zh) | 2016-07-13 | 2016-07-13 | 一种虚拟机备份和逆向恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155843B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106802840A (zh) * | 2017-01-19 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种虚拟机备份、恢复方法及装置 |
CN107688512A (zh) * | 2017-09-01 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种优化虚拟机数据备份方法和系统 |
CN108062263A (zh) * | 2017-12-27 | 2018-05-22 | 深圳市科力锐科技有限公司 | 数据切换方法、装置、服务器、系统及存储介质 |
CN110442427A (zh) * | 2019-07-29 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 一种虚拟机快照管理方法、装置、设备和存储介质 |
CN110858123A (zh) * | 2018-08-23 | 2020-03-03 | 华为技术有限公司 | 一种计算备份文件大小的方法及装置 |
US20220308762A1 (en) * | 2021-03-26 | 2022-09-29 | Rubrik, Inc. | In-place data recovery |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609338A (zh) * | 2012-02-05 | 2012-07-25 | 四川大学 | 一种逆向的文件增量归档方法 |
US9128742B1 (en) * | 2010-11-19 | 2015-09-08 | Symantec Corporation | Systems and methods for enhancing virtual machine backup image data |
-
2016
- 2016-07-13 CN CN201610552015.8A patent/CN106155843B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128742B1 (en) * | 2010-11-19 | 2015-09-08 | Symantec Corporation | Systems and methods for enhancing virtual machine backup image data |
CN102609338A (zh) * | 2012-02-05 | 2012-07-25 | 四川大学 | 一种逆向的文件增量归档方法 |
Non-Patent Citations (4)
Title |
---|
李自尊等: "基于差异数据的块级数据库备份系统", 《四川大学学报(自然科学版)》 * |
杨旭等: "基于VMware vSphere5虚拟机的备份系统实现", 《华东师范大学学报(自然科学版)》 * |
陈世爵等: "文件集的逆向差异归档法发", 《计算机工程与设计》 * |
马晓旭等: "一种逆向的差异归档方法", 《四川大学学报(工程科学版)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106802840A (zh) * | 2017-01-19 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种虚拟机备份、恢复方法及装置 |
CN107688512A (zh) * | 2017-09-01 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种优化虚拟机数据备份方法和系统 |
CN108062263A (zh) * | 2017-12-27 | 2018-05-22 | 深圳市科力锐科技有限公司 | 数据切换方法、装置、服务器、系统及存储介质 |
CN110858123A (zh) * | 2018-08-23 | 2020-03-03 | 华为技术有限公司 | 一种计算备份文件大小的方法及装置 |
CN110442427A (zh) * | 2019-07-29 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 一种虚拟机快照管理方法、装置、设备和存储介质 |
CN110442427B (zh) * | 2019-07-29 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种虚拟机快照管理方法、装置、设备和存储介质 |
US20220308762A1 (en) * | 2021-03-26 | 2022-09-29 | Rubrik, Inc. | In-place data recovery |
US11561718B2 (en) * | 2021-03-26 | 2023-01-24 | Rubrik, Inc. | In-place data recovery |
Also Published As
Publication number | Publication date |
---|---|
CN106155843B (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155843A (zh) | 一种虚拟机备份和逆向恢复方法 | |
CN103970585B (zh) | 创建虚拟机的方法及装置 | |
US7197665B2 (en) | Physical incremental backup using snapshots | |
CN104166606B (zh) | 文件备份方法和主存储设备 | |
CN104407938B (zh) | 一种虚拟机镜像级备份后的多种粒度恢复方法 | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
CN106021016A (zh) | 在快照之间的虚拟时间点访问 | |
US8117168B1 (en) | Methods and systems for creating and managing backups using virtual disks | |
CN105718548B (zh) | 基于去重复存储系统中用于可扩展引用管理的系统和方法 | |
CN106062742B (zh) | 用于改进快照性能的系统和方法 | |
CN100498796C (zh) | 逻辑日志生成方法、数据库备份/恢复方法与系统 | |
US8495022B1 (en) | Systems and methods for synthetic backups | |
CN101945131B (zh) | 一种基于存储虚拟化的数据迁移方法 | |
CN102331955B (zh) | 一种多时间粒度的数据备份方法 | |
CN110058813A (zh) | 一种基于云平台块存储的本地存储管理方法 | |
US20180260281A1 (en) | Restoring a storage volume from a backup | |
CN113886143B (zh) | 虚拟机持续数据保护方法、装置及数据恢复方法、装置 | |
US20210374108A1 (en) | Generating and morphing a collection of files in a folder/sub-folder structure that collectively has desired dedupability, compression, clustering and commonality | |
CN104536852B (zh) | 数据恢复方法及装置 | |
CN104102556A (zh) | 一种虚拟机磁盘数据备份及恢复方法 | |
CN109558213A (zh) | 管理OpenStack平台的虚拟机快照的方法和装置 | |
CN115454723A (zh) | 一种基于存储快照的数据备份、恢复方法及其系统 | |
US9740571B1 (en) | Intelligent continuous data protection snapshot based backups | |
US11809279B2 (en) | Automatic IO stream timing determination in live images | |
CN114026545A (zh) | 用于任意时间点复制的快照 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190312 Termination date: 20210713 |