一种虚拟机瞬时恢复方法与流程

文档序号:15800158发布日期:2018-11-02 21:22阅读:235来源:国知局

本发明涉及信息安全领域中的数据保护领域、涉及云计算领域内的虚拟机数据保护领域,尤其涉及一种虚拟机瞬时恢复方法。



背景技术:

在虚拟机备份中,通常会采用完全备份、增量备份、差异备份等不同的备份方式,形成备份链,在恢复过程中,首先恢复完全备份数据,然后按照时间先后顺序在完全备份数据基础上再重放一个或多个增量备份数据点或差异备份数据点,最后完成虚拟机数据恢复。在此过程中,需要将备份数据从备份载体中读出,再写入到恢复载体中,涉及大量的数据读写,占用大量的磁盘读写操作,恢复效率低,恢复时间长。随着数据量的增长,恢复时间逐渐变长,例如TB级时,恢复时间可能长达数十分钟甚至数小时。



技术实现要素:

本发明提出在备份服务器端构建虚拟文件,通过映射相关的完全备份数据、增量备份数据和差异备份数据,构造某一恢复时间点数据,并通过NFS协议,将该恢复时间点数据共享给Hypervisor,Hypervisor通过虚拟文件立即访问恢复时间点数据,实现虚拟机的瞬时恢复。同时,将数据变化写入到写入点存储文件和写入点元数据文件,虚拟机可进行数据读写,实现虚拟机业务运行,而且并不破坏备份数据。虚拟机瞬时恢复主要包括生成瞬时恢复点、瞬时恢复数据读出、瞬时恢复数据写入、删除瞬时恢复点步骤。由于虚拟机数据的存储数据以虚拟机中的虚拟磁盘为单位,因此,本发明只描述单个虚拟磁盘的瞬时恢复,整个虚拟机的恢复为按照先后顺序对该虚拟机所有的虚拟磁盘进行瞬时恢复。

本发明涉及一种虚拟机瞬时恢复方法,定义的数据结构包括:

定义备份链记录数据结构T,至少包括时间点Tt,备份类型Ty,备份点存储文件路径Tp,备份点元数据文件存储路径Tm;

定义写入点记录数据结构W,至少包括时间点Wt、写入类型Wy、写入点存储文件路径Wp、写入点元数据文件存储路径Wm;

定义恢复链记录数据结构E,至少包括恢复时间Et、当前写入时间点En,写入点元数据文件路径Er、写入点存储文件路径Ew;

定义备份点/写入点元数据数据结构S,至少包括偏移量Sv、存储偏移量Ss;

定义虚拟文件记录数据结构L,至少包括偏移量Lv、备份点/写入点存储文件描述符Ld、存储偏移量Ls、数据属性Lt;

本发明包括以下步骤:

步骤1,生成瞬时恢复点的步骤,包括:

步骤101,接收虚拟机恢复管理模块传入的恢复时间点Tr和当前写入时间点Tw,虚拟文件记录集合L为空的步骤;

步骤102,判断恢复链Fe中是否有与Tr相同恢复时间点的恢复记录集合FeX(对于相同的备份数据,可能执行多次瞬时恢复,产生多个瞬时恢复点数据),如有转步骤103,否则转步骤109;

步骤103,生成恢复所需的备份点集合Be,设置瞬时恢复点集合Re=Be的步骤;

步骤104,判断恢复记录集合FeX中是否有与当前写入时间点Tw相同的记录,如有转步骤105,否则转步骤108;

步骤105,读出对应的恢复链记录Ex,利用Ex信息生成写入点记录W步骤;

步骤107,生成虚拟文件的步骤;

步骤108,返回虚拟文件记录集合L的步骤;

步骤109,生成恢复链新记录En+1,并写入恢复链Fe中的步骤;

步骤110,利用En+1信息生成写入点记录W的步骤;

步骤2,瞬时恢复数据读出步骤,包括:

步骤201,从配置文件Fs中读出分块大小Eb,虚拟磁盘长度Et,获得虚拟文件记录集合L,设n=0的步骤;

步骤202,NFS服务器传入需要读取数据Dr的起始地址Ar和长度Hr,设需要读取数据Dr为空步骤;

步骤203,判断读出数据是否超过虚拟机磁盘长度(Ar+Hr>Et),如是,转步骤209,否则转步骤204;

步骤204,计算需要读取数据Dr的快速的步骤;

步骤2105,在虚拟文件记录集合L中查找偏移量等于起始地址Ar+n*Eb的记录Lx的步骤,即Lx,v=A+n*Eb;

步骤206,利用备份点或写入点存储文件描述符Lx,d,以存储偏移量开始Lx,s,读出Eb长度数据,并添加到数据Dr的尾部的步骤;

步骤207,n自加1步骤;

步骤208,判断n是否等于Br,若是,转步骤209,否则转步骤205;

步骤209,返回需要读取数据Dr的步骤;

步骤3,瞬时恢复数据写入的步骤,包括:

步骤301,从配置文件Fs中读出分块大小Eb,虚拟磁盘长度Et,获得虚拟文件记录集合L,设n=0的步骤;

步骤302,NFS服务器传入需要写入数据Dw、及其起始地址Aw和长度Hw的步骤;

步骤303,判断写入数据是否超过虚拟机磁盘长度(Aw+Hw>Et),如是,则转步骤318,否则转步骤304;

步骤304,获得瞬时恢复点Re的副本Rp、当前写入时间点Tw,得到写入点记录W的步骤,即查找Rp中记录的时间点和Tw最接近的记录;

步骤305,利用写入点存储文件路径Wp,获得写入点存储文件Fws描述符Fwsd,利用写入点元数据文件存储路径Wm,打开写入点元数据文件Fw的步骤;

步骤306,计算写入数据块数Bw的步骤;

步骤307,查找到虚拟文件记录集合L中偏移量等于起始地址Aw+n*Eb的记录Lx,如果是,转步骤308,否则转步骤316;

步骤308,判断数据属性Lx,t是否为只读,如果是,转步骤309,否则转步骤315;

步骤309,追加数据到写入点文件Fws的步骤;

步骤310,追加记录到写入点元数据文件Fw的步骤;

步骤311,更新虚拟文件记录Lx的步骤;

步骤312,n自增长1的步骤;

步骤313,判断n是否等于Bw,如果是,转步骤314,否则转步骤307;

步骤314,返回写入数据长度n*Eb,转步骤319;

步骤315,更新数据到写入点文件Fws、转步骤312的步骤;

步骤316,追加数据到写入点文件Fws的步骤;

步骤317,追加记录到写入点元数据文件的步骤;

步骤318,增加虚拟文件记录到虚拟文件记录集合L中、转步骤312的步骤;

步骤319,结束;

步骤4,瞬时恢复点删除的步骤,包括:

步骤401,接收虚拟机恢复管理模块传入的恢复时间点Tr和当前写入时间点Tw的步骤;

步骤402,在恢复链Fe中查找时间点等于Tr且当前时间点等于Tw的瞬时恢复点记录Ex,如果是,转步骤403,否则转步骤407;

步骤403,清空Ex关联的虚拟文件记录L,清空Ex关联的瞬时恢复集合Re,清空备份点集合Be,得到写入点记录W的步骤;

步骤404,删除写入点存储文件Fws的步骤;

步骤405,删除写入点元数据文件Fw的步骤;

步骤406,删除写入点记录W、删除瞬时恢复点记录Ex的步骤;

步骤407,结束。

所述步骤103中生成恢复所需的备份点集合Be进一步为:

步骤501,接收恢复时间点Tr,设置备份点集合Be为空,设n=0步骤;

步骤502,打开备份链Fb步骤,读取备份链Fb中记录方式为数组方式,以n为下标;

步骤503,从Fb中读出一条备份链记录Tn的步骤;

步骤504,判断备份链记录Tn是否为空,如为空,转步骤517,否则转步骤505;

步骤505,判断备份链记录Tn中时间点Tn,t是否等于Tr,如是转步骤507,否则转506;

步骤506,设置n自增长(n=n+1),转步骤503;

步骤507,将备份链记录Tn加入到备份点集合Be的步骤;

步骤508,判断备份链记录Tn中备份类型Tn,y是否为完全备份,如是转步骤516,否则转509;

步骤509,判断备份链记录Tn中备份类型Tn,y是否为增量备份,如是转步骤510,否则转步骤514;

步骤510,设置n自减少(n=n-1),从备份链Fb中读出Tn步骤;

步骤511,判断备份链记录Tn中备份类型Tn,y是否为差异备份或完全备份,如是转步骤512,否则转步骤510;

步骤512,将备份链记录Tn加入到备份点集合Be的步骤;

步骤513,判断备份链记录Tn中备份类型Tn,y是否为完全备份,如是转步骤518,否则转步骤510;

步骤514,设置n自减少(n=n-1),从备份链元文件中读出Tn的步骤;

步骤515,判断备份链记录Tn中备份类型Tn,y是否为完全备份,如是转步骤516,否则转步骤514;

步骤516,将备份链记录Tn加入到备份点集合Be的步骤;

步骤517,返回备份点集合Be的步骤。

所述步骤107中生成虚拟文件进一步为:

步骤601,初始化,设置虚拟文件记录集合L为空,获得瞬时恢复点Re的副本Rp,当前写入时间点Tw,设置k=0的步骤,即Rp=Re;

步骤602,从瞬时恢复点集合Rp中读出时间点距当前写入时间点Tw最远的备份链记录Ti的步骤;

步骤603,判断Ti是否为空,如为空,转步骤621,否则转步骤604;

步骤604,判断Ti中备份类型Ti,y是否为完全备份,如是,转步骤605,否则转步骤610;

步骤605,打开备份点元数据文件(路径为Ti,m),打开备份点存储文件(路径Ti,p)获得文件描述符Ti,r,设置j=0,读出一条记录Sj的步骤;

步骤606,从备份点元数据文件中读出一条记录Sj,赋值虚拟机文件记录Lk的步骤,即设置Lk,v=Sj,v,Lk,d=Ti,r,Lk,s=Sj,s,Lk,t=只读;

步骤607,j、k自加1,从备份点元数据文件中读出一条记录Sj的步骤,即(j=j+1,k=k+1);

步骤608,判断记录Sj是否为空,如是,转步骤609,否则转步骤606;

步骤609,从瞬时恢复点集合Rp中删除备份链记录Ti,转步骤602;

步骤610,打开备份点元数据文件(路径为Ti,m),打开备份点存储文件(路径为Ti,p),获得文件描述符Ti,r,设置j=0的步骤;

步骤611,从备份点元数据文件或写入点元数据文件中读出一条记录Sj的步骤;

步骤612,从L中找到偏移量和Sj中偏移量相等的记录Lx的步骤,即判断Lx,v是否等于Sj,v,如找到,转步骤613,否则转步骤617;

步骤613,替换虚拟文件记录Lx的步骤,即设置 Lx,d=Ti,r, Lx,s=Sj,s;

步骤614,按照类型Ti,y的值,赋值Lx,t,如果为写入,则Lx,t=读写,否则Lx,t=只读的步骤;

步骤615,j自加1,读出记录Sj的步骤;

步骤616,判断记录Sj是否空,如是转步骤609,否则转步骤611;

步骤617,追加虚拟机文件记录Lk的步骤,即设置Lk,v=Sj,v, Lk,d=Ti,r, Lk,s=Sj,s;

步骤618,按照类型Ti,y的值,赋值Lx,t,如果为写入,则Lx,t=读写,否则Lx,t=只读的步骤;

步骤619,j、k自加1,读出记录Sj的步骤,即(j=j+1,k=k+1);

步骤620,判断记录Sj是否空,如是转步骤609,否则转步骤611;

步骤621,返回虚拟文件记录集合L的步骤。

附图说明

图1为本发明模块结构图。

图2为本发明备份链原理图。

图3为本发明恢复链原理图。

图4为本发明备份链数据结构、写入点数据结构图。

图5为本发明恢复链数据结构图。

图6为本发明备份/写入点元数据结构图。

图7为本发明虚拟文件数据结构图。

图8为本发明生成瞬时恢复点流程图。

图9为本发明生成备份点集合流程图。

图10为本发明生成虚拟文件流程图。

图11为本发明瞬时恢复数据读出流程图。

图12为本发明瞬时恢复数据写入流程图。

图13为本发明瞬时恢复点删除流程图。

具体实施方式

下面结合附图,对本发明做进一步的详细描述。

本发明模块结构如图1所示。

本发明模块结构分为生产服务器和备份服务器两个部分。生产服务器部署Hypervisor M01、VM M02和NFS客户端M03。备份服务器部署NFS服务器M04、虚拟文件管理模块M05、虚拟机恢复管理模块M06、备份模块M07。各模块及附属文件的含义为:

Hypervisor M01:虚拟机管理控制模块,如VMware的Esxi、XenServer等。

VM M02:来宾操作系统,如Windows、Linux等。

NFS客户端M03:支持NFS协议的客户端。

NFS服务器M04:支持NFS协议的服务器端。

虚拟文件管理模块M05:构造虚拟文件,转换NFS读写操作到实际文件读写到,实现瞬时恢复,本发明主要步骤运行在本模块。管理写入点元文件Fw、写入点存储文件Fws、虚拟文件Fv。

写入点元文件Fw:用于描述虚拟机恢复后,在虚拟机运行过程中新生成的数据的元数据,如偏移量、存储位置、长度等。

写入点文件Fws:用于存储虚拟机恢复后,在虚拟机运行过程中新生成的数据。

虚拟文件Fv:用于描述虚拟文件管理模块M05利用备份数据和写入数据生成的某个时刻的虚拟磁盘数据,以文件访问的形式提供给NFS服务器。可用虚拟文件记录集合L描述。

虚拟机恢复管理模块M06:管理恢复链Fe。

恢复链Fe:用于描述虚拟磁盘的多个瞬时恢复点信息。

备份模块M07:执行虚拟机备份任务,生成备份链Fm、管理配置Fs、生成备份点Fr1~Frn。

备份链Fb:用于描述虚拟磁盘的多个备份点信息。

配置文件Fs:用于描述分块大小Eb、虚拟磁盘长度Et、备份链元数据文件路径Em。Eb、Et、Em在备份虚拟机时从备份模块获得。

分块大小Eb:用于描述访问虚拟磁盘时的最小单位,如512byte、2Kbyte等,由Hypervisor在创建虚拟机时生成。

虚拟磁盘长度Et:虚拟磁盘的大小,以字节为单位。

备份链元数据文件路径Em:用于描述备份链元文件存储的绝对路径,包括路径名和文件名。

Fr1~Frn:备份点,用于描述每次备份产生的备份数据,备份点包括备份点元数据文件Fm和备份点存储文件Fms,例如Fr1可描述为<Fm1,Fms1>。

一次典型的瞬时恢复过程如下所示。

备份模块M07已经准备好了至少一个完全备份点的备份数据,即Fr1~Frn、配置文件Fs、备份链Fb。虚拟机恢复管理模块M06从备份链Fb中读出备份点,呈现给用户选择,用户选择瞬时恢复时间点、当前写入时间点后,虚拟机恢复管理模块M06将这两个参数传递给虚拟文件管理模块M05。虚拟文件管理模块05生成虚拟文件Fv并通知虚拟机恢复管理模块M06,虚拟机恢复管理模块M06通知Hypervisor M01瞬时恢复数据已准备好。Hypervisor M01启动VM M02。

VM M02产生读数据请求,读数据请求通过Hypervisor M01后转换为对文件的读请求,可精简描述为<文件名,偏移量,长度>,Hypervisor M01将此请求发送到NFS客户端M03,NFS客户端M03经过网络协议匹配后发送到NFS服务器M04,NFS服务器M04解析网络协议后获得<文件名,偏移量,长度>并发送给虚拟文件管理模块M05,虚拟文件管理模块M05在虚拟文件Fv中查找数据寻址信息,即实际存储的文件、偏移量,如分别在完全备份点、增量备份点和写入点存储文件中读取需要的数据,并按照偏移量先后顺序组成数据Dr,并将数据Dr返回给NFS服务器M04,NFS服务器M04经过网络协议匹配后发送到NFS客户端M03,NFS客户端M03解析网络协议后获得读数据Dr,并将读数据Dr返回给Hypervisor M01,Hypervisor M01转换格式后返回给VM M02,完成数据读过程。

VM M02产生数据写请求,写数据请求通过Hypervisor M01后转换为对文件的写请求,可精简描述为<文件名,偏移量,长度,写数据Dw>,Hypervisor M01将此请求发送到NFS客户端M03,NFS客户端M03经过网络协议匹配后发送到NFS服务器M04,NFS服务器M04解析网络协议后获得<文件名,偏移量,长度,写数据Dw>并发送给虚拟文件管理模块M05。虚拟文件管理模块M05在虚拟文件Fv中查找数据实际存储的文件、偏移量,如数据实际存储在备份点文件中,则将写数据Dw写入到写入点文件中,并更新虚拟文件Fv中存储寻址信息的指向;如数据实际存储在写入点文件中,则将写数据Dw覆盖原来的数据;如数据实际存储即不在备份点文件,也不在写入点文件,则将写数据Dw追加到写入点文件中,在虚拟文件Fv中追加写数据Dw的存储寻址信息。写数据Dw存储完成后,虚拟文件管理模块M05向NFS服务器M04返回实际存储的数据长度,NFS服务器M04将数据长度进行协议匹配后发送到NFS客户端M03,NFS客户端M03解析网络协议后获得数据长度后返回给Hypervisor M01,Hypervisor M01转换格式后返回给VM M02,完成数据写过程。

NFS服务器M04和虚拟文件管理模块M05之间的访问,可通过文件过滤驱动、定制NFS服务器接口、用户空间文件系统等技术手段实现。

本发明备份链原理图如图2所示。

在时间轴t上,有t0,t1,t2,t3,t4,t5备份点,共6个备份点,其中t0为完全备份点,t2, t4,为差异备份点,t1, t3, t5为增量备份点。按照备份类型,完全备份点可描述一个备份时间点的数据状态,差异备份点和其依赖的完全备份点一起可描述一个备份时间点的数据状态,增量备份点和其依赖的所有增量备份点、一个完全备份点一起可描述一个备份时间点的数据状态。以图2为例,各时间点数据可描述为:

t0时刻数据 = t0时刻完全备份点;

t1时刻数据 = t0时刻完全备份点 + t1时刻增量备份点;

t2时刻数据 = t0时刻完全备份点 + t2时刻差异备份点;

t3时刻数据 = t0时刻完全备份点 + t1时刻增量备份点 + t3时刻增量备份点;

t4时刻数据 = t0时刻完全备份点 + t4时刻差异备份点;

t5时刻数据 = t0时刻完全备份点 + t1时刻增量备份点 + t3时刻增量备份点 + t5时刻增量备份点。

本发明恢复链原理图如图3所示。

恢复链Fe用于描述恢复过程中所依赖的备份的数据、新生成的数据及相互之间的关系。

恢复链Fe中,每条恢复记录代表了一次瞬时恢复,瞬时恢复依赖备份数据和写入点数据。备份数据使用备份链管理,每个备份链Fb由若干条备份点记录组成,每个备份点包括备份点元数据文件Fm和备份点存储文件Fms。备份点元数据文件Fm中的每条备份存储记录,指向备份点存储文件Fms中从某个偏移量开始,到某个长度结束的备份数据。备份点存储文件Fms用于存储虚拟磁盘备份数据,文件格式为堆文件。写入数据由写入点元数据文件Fw和写入点存储文件Fws组成。写入点元数据文件Fw中的每条写入存储记录,指向写入点存储文件Fws中从某个偏移量开始,到某个长度结束的写入数据。写入点存储文件Fws用于存储虚拟磁盘写入数据,文件格式为堆文件。

本发明备份链数据结构、写入点数据结构如图4所示。

一个备份链元文件描述一个虚拟磁盘的备份情况,备份链元文件由一组备份点记录组成。每个备份链文件存储多个备份点记录,使用T表示备份点记录。每个备份点记录包括:

时间点Tt,用于描述备份数据生成时刻,按照时间先后,即:T0,t < T1,t < Tn,t。

备份类型Ty,用于描述备份数据类型,如完全备份、增量备份、差异备份等。

备份点存储文件路径Tp,用于描述备份数据存储的绝对路径,包括目录名和文件名,备份点存储文件用于存储备份数据。

备份点元数据文件存储路径Tm,用于描述备份点元数据文件存储的绝对路径,包括目录名和文件名。

写入点记录W,写入点记录和备份点记录数据结构相同。

时间点Wt,用于描述写入点生成时刻系统时间;

写入类型Wy,用于描述写入点的数据类型,为写入;

写入点存储文件路径Wp,用于描述写入数据存储的绝对路径,包括目录名和文件名,写入点存储文件用于存储虚拟机变化数据。

写入点元数据文件存储路径Wm,用于描述写入点元数据文件存储的绝对路径,包括目录名和文件名。

备份点集合Be:用于描述一个备份时间点数据所依赖的所有备份点,其至少包括一个完全备份点。

写入点W:用于描述瞬时恢复后,虚拟机运行导致的数据变化。

瞬时恢复集合Re:包括一个备份点集合Be和一个写入点W,瞬时恢复集合数据结构与备份点记录、写入点记录数据结构相同。

本发明恢复链数据结构如图5所示。

恢复链Fe中每条记录包括:

恢复时间点Et:用于描述需要瞬时恢复的时间点,依赖备份数据。

当前写入时间点En:用于描述当前最新写入操作发生的时间点,依赖写入数据。

写入点元数据文件路径Er:用于描述写入点元数据文件存储的绝对路径,包括路径名和文件名。

写入点存储文件路径Ew:用于描述写入点存储文件的绝对路径,包括路径名和文件名。

本发明备份/写入点元数据结构如图6所示。

备份/写入点每条记录用S表示,描述备份/写入数据实际存储位置。

对于备份/写入点记录,各域的具体含义为:

偏移量Sv用于描述备份/写入数据应在虚拟磁盘中的起始偏移量。

存储偏移量Ss表示备份/写入数据存储在备份点存储文件或写入点存储文件中的偏移量。

本发明虚拟文件数据结构图如图7所示。

虚拟文件中有n条记录,映射到若干个备份点和写入点,虚拟文件用于数据寻址。

对于虚拟文件记录,各域的具体含义为:

偏移量Lv,用于描述数据在虚拟磁盘中的起始地址。

备份点/写入点存储文件描述符Ld,用于描述已经打开的备份点存储文件的描述符或写入点存储文件的描述符,典型情况下,该描述符为一个32bit或64bit整数。

存储偏移量Ls,用于描述数据在备份点/写入点存储文件中的起始地址。

数据属性Lt,用于描述虚拟文件指向数据的属性,备份点数据的属性为“只读”,写入点数据的属性为“读写”。

本发明生成瞬时恢复点流程图如图8所示。其中备份/写入点集合Be中记录的数据结构和备份链数据结构相同。

步骤T801,接收虚拟机恢复管理模块传入的恢复时间点Tr和当前写入时间点Tw,虚拟文件记录集合L为空的步骤;

步骤T802,判断恢复链Fe中是否有与Tr相同恢复时间点的恢复记录集合FeX(对于相同的备份数据,可能执行多次瞬时恢复,产生多个瞬时恢复点数据),如有转步骤T803,否则转步骤T809;

步骤T803,生成恢复所需的备份点集合Be,设置瞬时恢复点集合Re=Be的步骤;

步骤T804,判断恢复记录集合FeX中是否有与当前写入时间点Tw相同的记录,如有转步骤T805,否则转步骤T808;

步骤T805,读出对应的恢复链记录Ex,利用Ex信息生成写入点记录W步骤,时间点Wt = Tw,写入类型Wy = 写入,写入点存储文件路径Wp = Ex,w(写入点存储文件路径),写入点元数据文件存储路径Wm = Ex,r (写入点元数据文件路径);

步骤T806,加入W到瞬时恢复点集合Re的步骤,即在Re中新增一条记录,并用W赋值该条记录;

步骤T807,生成虚拟文件的步骤;

步骤T808,返回虚拟文件记录集合L的步骤;

步骤T809,生成恢复链新记录En+1,并写入恢复链Fe中的步骤,设置En+1,t=Tr,En+1,n=Tw,新建写入点元数据文件Fw,更新En+1,r为Fw的绝对路径,新建写入点存储文件Fws,更新En+1,w为Fws的绝对路径;

步骤T810,利用En+1信息生成写入点记录W的步骤,即时间点Wt = Tw,写入类型Wy = 写入,写入点存储文件路径Wp = En+1,w(写入点存储文件路径),写入点元数据文件存储路径Wm = Ex,r (写入点元数据文件路径)。

本发明生成备份点集合流程图如图9所示。

步骤T901,接收恢复时间点Tr,设置备份点集合Be为空,设n=0步骤;

步骤T902,打开备份链Fb步骤,读取备份链Fb中记录方式为数组方式,以n为下标;

步骤T903,从Fb中读出一条备份链记录Tn的步骤;

步骤T904,判断备份链记录Tn是否为空,如为空,转步骤T917,否则转步骤T905;

步骤T905,判断备份链记录Tn中时间点Tn,t是否等于Tr,如是转步骤T907,否则转T906;

步骤T906,设置n自增长(n=n+1),转步骤T903,即;

步骤T907,将备份链记录Tn加入到备份点集合Be的步骤;

步骤T908,判断备份链记录Tn中备份类型Tn,y是否为完全备份,如是转步骤T916,否则转T909;

步骤T909,判断备份链记录Tn中备份类型Tn,y是否为增量备份,如是转步骤T910,否则转步骤T914;

步骤T910,设置n自减少(n=n-1),从备份链Fb中读出Tn步骤;

步骤T911,判断备份链记录Tn中备份类型Tn,y是否为差异备份或完全备份,如是转步骤T912,否则转步骤T910;

步骤T912,将备份链记录Tn加入到备份点集合Be的步骤;

步骤T913,判断备份链记录Tn中备份类型Tn,y是否为完全备份,如是转步骤T918,否则转步骤T910;

步骤T914,设置n自减少(n=n-1),从备份链元文件中读出Tn的步骤;

步骤T915,判断备份链记录Tn中备份类型Tn,y是否为完全备份,如是转步骤T916,否则转步骤T914;

步骤T916,将备份链记录Tn加入到备份点集合Be的步骤;

步骤T917,返回备份点集合Be的步骤。

本发明生成虚拟文件流程图如图10所示。

步骤T1001,初始化,设置虚拟文件记录集合L为空,获得瞬时恢复点Re的副本Rp,当前写入时间点Tw,设置k=0的步骤,即Rp=Re;

步骤T1002,从瞬时恢复点集合Rp中读出时间点距当前写入时间点Tw最远的备份链记录Ti的步骤;

步骤T1003,判断Ti是否为空,如为空,转步骤T1021,否则转步骤T1004;

步骤T1004,判断Ti中备份类型Ti,y是否为完全备份,如是,转步骤T1005,否则转步骤T1010;

步骤T1005,打开备份点元数据文件(路径为Ti,m),打开备份点存储文件(路径Ti,p)获得文件描述符Ti,r,设置j=0,读出一条记录Sj的步骤;

步骤T1006,从备份点元数据文件中读出一条记录Sj,赋值虚拟机文件记录Lk的步骤,即设置Lk,v=Sj,v,Lk,d=Ti,r,Lk,s=Sj,s,Lk,t=只读;

步骤T1007,j、k自加1,从备份点元数据文件中读出一条记录Sj的步骤,即(j=j+1,k=k+1);

步骤T1008,判断记录Sj是否为空,如是,转步骤T1009,否则转步骤T1006;

步骤T1009,从瞬时恢复点集合Rp中删除备份链记录Ti,转步骤T1002;

步骤T1010,打开备份点元数据文件(路径为Ti,m),打开备份点存储文件(路径为Ti,p),获得文件描述符Ti,r,设置j=0的步骤;

步骤T1011,从备份点元数据文件或写入点元数据文件中读出一条记录Sj的步骤;

步骤T1012,从L中找到偏移量和Sj中偏移量相等的记录Lx的步骤,即判断Lx,v是否等于Sj,v,如找到,转步骤T1013,否则转步骤T1017;

步骤T1013,替换虚拟文件记录Lx的步骤,即设置 Lx,d=Ti,r, Lx,s=Sj,s;

步骤T1014,按照类型Ti,y的值,赋值Lx,t,如果为写入,则Lx,t=读写,否则Lx,t=只读的步骤;

步骤T1015,j自加1,读出记录Sj的步骤,即(j=j+1);

步骤T1016,判断记录Sj是否空,如是转步骤T1009,否则转步骤T1011;

步骤T1017,追加虚拟机文件记录Lk的步骤,即设置Lk,v=Sj,v, Lk,d=Ti,r, Lk,s=Sj,s;

步骤T1018,按照类型Ti,y的值,赋值Lx,t,如果为写入,则Lx,t=读写,否则Lx,t=只读的步骤;

步骤T1019,j、k自加1,读出记录Sj的步骤,即(j=j+1,k=k+1);

步骤T1020,判断记录Sj是否空,如是转步骤T1009,否则转步骤T1011;

步骤T1021,返回虚拟文件记录集合L的步骤。

本发明瞬时恢复数据读出流程图如图11所示。

步骤T1101,从配置文件Fs中读出分块大小Eb,虚拟磁盘长度Et,获得虚拟文件记录集合L,设n=0的步骤;

步骤T1102,NFS服务器传入需要读取数据Dr的起始地址Ar和长度Hr,设需要读取数据Dr为空步骤;

步骤T1103,判断读出数据是否超过虚拟机磁盘长度(Ar+Hr>Et),如是,转步骤T1109,否则转步骤T1104;

步骤T1104,计算需要读取数据Dr的快速的步骤,即Br=Hr/Eb;

步骤T1105,在虚拟文件记录集合L中查找偏移量等于起始地址Ar+n*Eb的记录Lx的步骤,即Lx,v=A+n*Eb;

步骤T1106,利用备份点或写入点存储文件描述符Lx,d,以存储偏移量开始Lx,s,读出Eb长度数据,并添加到数据Dr的尾部的步骤;

步骤T1107,n自加1步骤,即(n=n+1);

步骤T1108,判断n是否等于Br,若是,转步骤T1109,否则转步骤T1105;

步骤T1109,返回需要读取数据Dr的步骤。

本发明瞬时恢复数据写入流程图如图12所示。

步骤T1201,从配置文件Fs中读出分块大小Eb,虚拟磁盘长度Et,获得虚拟文件记录集合L,设n=0的步骤;

步骤T1202,NFS服务器传入需要写入数据Dw、及其起始地址Aw和长度Hw的步骤;

步骤T1203,判断写入数据是否超过虚拟机磁盘长度(Aw+Hw>Et),如是,则转步骤T1218,否则转步骤T1204;

步骤T1204,获得瞬时恢复点Re的副本Rp、当前写入时间点Tw,得到写入点记录W的步骤,即查找Rp中记录的时间点和Tw最接近的记录;

步骤T1205,利用写入点存储文件路径Wp,获得写入点存储文件Fws描述符Fwsd,利用写入点元数据文件存储路径Wm,打开写入点元数据文件Fw的步骤;

步骤T1206,计算写入数据块数Bw的步骤,即(Bw=Hw/Eb);

步骤T1207,查找到虚拟文件记录集合L中偏移量等于起始地址Aw+n*Eb的记录Lx,即Lx,v=Aw+n*Eb,如果是,转步骤T1208,否则转步骤T1216;

步骤T1208,判断数据属性Lx,t是否为只读,如果是,转步骤T1209,否则转步骤T1215;

步骤T1209,追加数据到写入点文件Fws的步骤;获得Fws文件尾的偏移量地址Fwsa,在Fwsa处写入Dw中从n*Eb开始,长度为Eb的数据;

步骤T1210,追加记录到写入点元数据文件的步骤,设Sy,v=Aw+n*Eb, Sy,s=Fwsa,将Sy写入到写入点元数据文件尾部;

步骤T1211,更新虚拟文件记录Lx的步骤,设Lx,d=Fwsd,Lx,s=Fwsa,Lx,t=读写;

步骤T1212,n自增长1的步骤,即(n=n+1);

步骤T1213,判断n是否等于Bw,如果是,转步骤T1214,否则转步骤T1207;

步骤T1214,返回写入数据长度n*Eb,转步骤T1219;

步骤T1215,更新数据到写入点文件Fws、转步骤T1212的步骤,在偏移量Lx,s处写入Dw中从n*Eb开始,长度为Eb的数据;

步骤T1216,追加数据到写入点文件Fws的步骤,获得Fws文件尾的偏移量地址Fwsa,在Fwsa处写入Dw中从n*Eb开始,长度为Eb的数据;

步骤T1217,追加记录到写入点元数据文件的步骤,设Sy,v=Aw+n*Eb,Sy,s=Fwsa,将Sy写入到写入点元数据文件尾部;

步骤T1218,增加虚拟文件记录到虚拟文件记录集合L中、转步骤T1212的步骤,设Ly,v=Aw+n*Eb,Ly,d=Fwsd,Ly,s=Fwsa,Ly,t=读写;

步骤T1219,结束。

本发明瞬时恢复点删除流程图如图13所示。

步骤T1301,接收虚拟机恢复管理模块传入的恢复时间点Tr和当前写入时间点Tw的步骤;

步骤T1302,在恢复链Fe中查找时间点等于Tr且当前时间点等于Tw的瞬时恢复点记录Ex,如果是,转步骤T1303,否则转步骤T1307;

步骤T1303,清空Ex关联的虚拟文件记录L,清空Ex关联的瞬时恢复集合Re,清空备份点集合Be,得到写入点记录W的步骤;

步骤T1304,删除写入点存储文件的步骤,利用路径Wp;

步骤T1305,删除写入点元数据文件的步骤,利用路径Wm;

步骤T1306,删除写入点记录W、删除瞬时恢复点记录Ex的步骤;

步骤T1307,结束。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1