虚拟机的数据备份方法

文档序号:6527017阅读:674来源:国知局
虚拟机的数据备份方法
【专利摘要】本发明公开了一种虚拟机的数据备份方法,该方法包括:对一个或多个虚拟机中的多个磁盘中的数据进行快照,以生成快照文件,并将所生成的快照文件存入快照队列中;在进行快照的过程中,对各磁盘中新增的数据进行补充快照,并将所生成的补充快照文件存入快照队列中,直到磁盘中的所有数据被快照;以及当快照队列中的快照文件与补充快照文件达到阈值时,将快照文件与补充快照文件备份到目标磁盘中。本发明通过将数据进快照及补充快照,在快照和补充快照文件达到阈值时进行文件转移,从而缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。
【专利说明】虚拟机的数据备份方法
【技术领域】
[0001]本发明涉及计算机领域,主要涉及一种虚拟机的数据备份方法。
【背景技术】
[0002]根据现有的虚拟机备份技术,无论是小型的或是存放多达几个TB数据的服务器,都可在几分钟内完成备份。但是,当数据规模达到TB级以上的时候文件拷贝将会占用大量时间、大量系统磁盘I/O、大量网络带宽以及大量内存,使得CPU利用率非常低,从而影响了虚拟机系统中的正常业务的运行性能。很明显,这种方法不能满足TB级数据的虚拟机备份要求。
[0003]并且,根据现有的虚拟机备份技术,虚拟机的备份必须先要关闭虚拟机或是先要暂停虚拟机后才能执行备份操作,这样会影响业务7X24小时的不间断运行,暂停过程会对虚拟机内实时性要求较高的应用带来不良影响。存在这些问题的原因是虚拟机在备份的过程中保证了数据的一致性,而为了保证备份数据的完整一致性牺牲了业务的不可中断性。
[0004]虚拟化基础设施通常需要争夺更多的数据,越多的应用程序产生的文件越多,越大,每个虚拟机本身也是一个大文件。单个虚拟机在进行备份的过程中,会消耗90%的服务器处理器和I/O资源,备份期间其它进程想要正常运行是非常困难的。如果备份单个虚拟机势必会对物理服务器造成过度的资源消耗,其它处于运行中的虚拟机将受到不利影响,原因是物理服务器上的资源(包括CPU,内存,磁盘10,网络10)采用虚拟化技术提供给虚拟机使用,很大程度上,虚拟机本身的性能是取决于物理主机服务上的资源性能。
[0005]在虚拟机执行备份之前,需要在物理服务器上安装备份程序,在虚拟机备份过程中,备份程序的运行会影响物理主机的性能,因为备份程序不支持快照链接技术,会执行大量的数据拷贝操作。
[0006]针对相关技术中大量数据备份操作会影响虚拟机的本身业务的问题,目前尚未提出有效的解决方案。

【发明内容】

[0007]针对相关技术中大量数据备份操作会影响虚拟机的本身业务的问题,本发明提出一种虚拟机的数据备份方法,能够缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。
[0008]本发明的技术方案是这样实现的:
[0009]根据本发明的一个方面,提供了一种虚拟机的数据备份方法。
[0010]该数据备份方法包括:
[0011]对一个或多个虚拟机中的多个磁盘中的数据进行快照,以生成快照文件,并将所生成的快照文件存入快照队列中;[0012]在进行快照的过程中,对各磁盘中新增的数据进行补充快照,并将所生成的补充快照文件存入快照队列中,直到磁盘中的所有数据被快照;以及
[0013]当快照队列中的快照文件与补充快照文件达到阈值时,将快照文件与补充快照文件备份到目标磁盘中。
[0014]其中,守护线程被配置成截取写入磁盘中的数据。
[0015]其中,持续数据保护服务器截取写入磁盘中的数据。
[0016]其中,发送线程被配置成将快照文件与补充快照文件备份到目标磁盘中。
[0017]并且,快照队列中的快照文件与补充快照文件达到阈值包括快照队列被快照文件与补充快照文件填满。
[0018]进一步地,当磁盘中的所有数据被快照后,发送线程被配置成将剩余的快照文件与补充快照文件备份到目标磁盘中。
[0019]此外,当快照文件与补充快照文件备份到目标磁盘中之后,将虚拟机的配置文件备份到目标磁盘中。
[0020]优选地,在将虚拟机的配置文件备份到目标磁盘中之后,检查点检查数据与备份后的数据的一致性。
[0021]可选地,在将虚拟机的配置文件备份到目标磁盘中之后,目标磁盘将备份结果上报给虚拟机管理器。
[0022]并且,快照队列设置在主机系统的内存中。
[0023]本发明通过将数据进快照以及补充快照,在快照和补充快照文件达到阈值时进行文件数据转移,从而缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。
【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是根据本发明实施例的数据备份方法的流程图;
[0026]图2是根据本发明的一个实施例实现持续数据保护的方法的结构示意图;
[0027]图3是根据本发明的一个实施例的虚拟机回滚机制的体系结构的示意图;
[0028]图4是根据本发明的一个实施例的虚拟机备份的方法的流程图。
【具体实施方式】
[0029]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0030]根据本发明的一个实施例,提供了一种虚拟机的数据备份方法。[0031]如图1所示,根据本发明实施例的数据备份方法包括:
[0032]步骤S101,对一个或多个虚拟机中的多个磁盘中的数据进行快照,以生成快照文件,并将所生成的快照文件存入快照队列中;
[0033]步骤S103,在进行快照的过程中,对各磁盘中新增的数据进行补充快照,并将所生成的补充快照文件存入快照队列中,直到磁盘中的所有数据被快照;以及
[0034]步骤S105,当快照队列中的快照文件与补充快照文件达到阈值时,将快照文件与补充快照文件备份到目标磁盘中。
[0035]其中,守护线程被配置成截取写入磁盘中的数据。
[0036]其中,持续数据保护服务器截取写入磁盘中的数据。
[0037]其中,发送线程被配置成将快照文件与补充快照文件备份到目标磁盘中。
[0038]并且,快照队列中的快照文件与补充快照文件达到阈值包括快照队列被快照文件与补充快照文件填满。
[0039]进一步地,当磁盘中的所有数据被快照后,发送线程被配置成将剩余的快照文件与补充快照文件备份到目标磁盘中。
[0040]此外,当快照文件与补充快照文件备份到目标磁盘中之后,将虚拟机的配置文件备份到目标磁盘中。
[0041]优选地,在将虚拟机的配置文件备份到目标磁盘中之后,检查点检查数据与备份后的数据的一致性。
[0042]可选地,在将虚拟机的配置文件备份到目标磁盘中之后,目标磁盘将备份结果上报给虚拟机管理器。
[0043]并且,快照队列设置在主机系统的内存中。
[0044]根据本发明的一个实施例,提供了一种虚拟机的数据备份方法,其中,虚拟机备份包括虚拟磁盘、内存、CPU寄存器等部分的备份,可以通过快照、迁移、克隆、日志记录等操作实现虚拟机备份。可以从下四个方面实现虚拟机备份:
[0045]一、虚拟机异步快照及存储
[0046]快照功能相当于整个虚拟机的热拷贝,尽管虚拟机还在保持运行,对于一个非常繁忙的系统,可能会短暂地中断服务,但是快照的巨大优势还是远远超过了短暂的停机时间。虚拟机快照技术通常针对虚拟磁盘进行,由于内存信息变化大,保存方式有两种:1)暂停虚拟机运行,把内存拷贝到文件;2)通过虚拟机迁移来实现内存的保存。当采用较高的快照频率或写操作驱动的生成策略时,快照的生成可能导致较大的开销,从而降低虚拟机运行速度,特别是I/O密集型的应用。为此,虚拟机备份过程中,本发明的技术方案引进了一种异步快照的方式以降低快照对虚拟机性能的影响,异步快照的主要思想流程如下:
[0047]1.当有快照生成请求时,首先将要写入快照的磁盘块及其快照时标写入内存中的一个快照队列;
[0048]2.当快照队列满或队列中的快照达到一定的阈值时,VMM (Virtual MachineMonitor,虚拟机)或快照服务将快照队列中的全部或部分快照写回磁盘;
[0049]3.当无快照生成请求时,VMM或是快照服务从快照队列的头部开始逐一将队列中的快照写回磁盘。
[0050]4.当快照尺寸和数量庞大时,可将快照保存在专门设计的共享存储池中,从而提供虚拟机备份的速度。对于写操作密集或快照频率较高的应用,大量快照可能会占用大量的存储空间,因此可以根据实际情况,将较早产生的快照进行压缩存储,转储。
[0051]二、持续数据保护技术的实现
[0052]根据本发明的一个实施例,提供了一种实现持续数据保护的方法,如图2所示是实现持续数据保护的方法的结构示意图。系统修改虚拟机管理中的磁盘读写部分代码,截获对磁盘的写操作,并把数据发送到本地内存中的一个队列。内存中的队列,用来缓存CDP数据,并发送到远程备份站点。采用多线程设计,一个线程作为守护线程用来截获接受CDP数据并缓存;另一个线程用来进行发送数据到远程备份站点。
[0053]由于科技发展,对数据的可靠性提出了更高的要求,传统的数据备份方法已经不能满足需求,通过持续数据保护,才能在意外发生时将数据的损失降到最低,使服务中断的时间最短,使得可以恢复到以前时刻的任意一点,并且,存储的数据和恢复时间都在可以接受范围内。
[0054]三、回滚机制的实现
[0055]系统不需要对系统中发生的所有事件进行记录,仅仅记录影响进程执行的不确定事件以及这些事件发生的位置或者时间点,在必要的时候通过这些记录信息重构系统之前运行状况。如图3所示是根据本发明的一个实施例的虚拟机回滚机制的体系结构的示意图,其中,回滚机制的实现流程如下:
[0056]1.在本地虚拟机内部实现:管理器,操作界面,用来执行命令,设置参数,执行回滚操作等待;
[0057]2.⑶P服务器用来截获系统写数据,然后自适应传送到备份点;
[0058]3.检查点用来保存系统的CPU数据和内存数据,需要进行一致性的检查,并把结果存放到检查点的数据中。
[0059]这个回滚体系结构把当前版本和历史版本分开,这样的分割可以帮助提供快速的读取,由于在访问虚拟磁盘时没有重定向,虚拟磁盘维持地址来保证顺序访问的性能不受影响。
[0060]四、自适应算法的实现
[0061]系统在自适应发送数据时,需要搜集系统的性能参数,其中,性能参数包括CPU利用率、内存使用率、磁盘空间、磁盘I/o、网络流量等数据。具体就是提取四个反应系统性能的因子:1)CPU利用率Uc、2)系统I/O使用率U1、3)内存使用率Um、4)网络带宽使用率Un。并且为每个因子赋予一定的比重,则分别对应Rc、R1、Rm、Rn,综合影响因子P可以用以下公式得出:P=Rc*Uc+Ri*Ui+Rm*Um+Rn*Un。
[0062]修改虚拟机管理软件,让其截获客户操作系统的写操作,然后通过有名管道把写的数据发送给守护线程,这样既保证了数据的可靠性,并且保证了数据块的顺序。为了有一个标准的判断,系统计算了一个PO,如果P大于PO,说明系统处于比较忙的状态,系统尽量减少数据的发送。如果小于PO,系统认为处于空闲状态,可以发送较多的数据,并且P越小发送的越多。
[0063]其中,数据接受算法包括:
[0064](I)、打开管道,读取数据,如果没有则进入休眠;
[0065](2)、分配内存,把读取的数据放到内存队列内,等待发送;[0066]( 3 )、如果服务完成,关闭管道。
[0067]数据发送算法包括:
[0068](I)、获取当前系统的性能U,队列长度,当前指针和尾指针;
[0069](2)、如果Ρ〈Ρ0,则发送当前指针指向的数据块,并相应的移动指针,PO越小发送的数据越多,如果Ρ>Ρ0,则减少发送的数据块,甚至不发送;
[0070](3)、如果遇到尾指针,则说明队列为空,停止发送。
[0071]自适应算法参数信息的获取包括:
[0072](1)、CPU信息的获取,在文件“/proc/stat”里面就包含了 CPU的信息,包括CPU的tick使用信息。计算单位时间里面CPU的负载,只需要计算I秒前后数值的差除以每一秒的 tick 数量就可以了。计算公式为:((200*(Vl-V2)/CPU_TICKS_PER_SEC0ND)+l)/2,其中VI,V2为两次读取的数值。
[0073](2)、内存消耗,在文件“/proc/meminfo”里面包含了内存的信息,还包含了 swap的信息。
[0074](3)、磁盘I/O的数据,在文件“/proc/partitions”里面,需要隔一段时间取值,两次取值的差就是流量。
[0075]网络流量,在文件“/proc/net/dev”里面获取。同样也是需要两次取值其差作为
流量值。
[0076]五、虚拟机备份的实现
[0077]根据本发明的一个实施例,可以结合虚拟机磁盘镜像文件快照技术和快照合并技术实现虚拟机备份,如图4所示,为根据本发明的一个实施例的虚拟机备份的方法的流程图,包括:
[0078]指定虚拟机的备份点;
[0079]在备份点中,判断对虚拟机做快照是否成功,对虚拟机做快照失败,则返回异常;
[0080]对虚拟机做快照成功,则根据备份点中的快照文件查找父磁盘镜像文件;
[0081]检查点异步执行,采用持续数据保护技术将虚拟机的内存信息同步到备份点指定路径,直到内存同步完成后,再同步虚拟机的其他配置文件到备份点;
[0082]在备份点中,将新创建的快照文件重命名为Base快照文件,并制作基于Base快照文件的新快照文件;
[0083]将备份点中的虚拟机Base快照文件的内容合并到父磁盘镜像文件中去,速度极快,可在I分钟内完成操作;
[0084]拷贝虚拟机父磁盘镜像文件到备份点的指定目录,推荐父磁盘镜像文件使用稀疏格式;
[0085]管理监听等待所有数据同步完成的事情发生,这样可实现虚拟机的备份。
[0086]本发明的技术方案的虚拟机备份是基于在共享存储(也可以不是共享存储)的环境下利用快照技术和快照合并技术完成的,所以备份速度会比较快。在备份过程中采用了持续数据保护技术来保证了虚拟机备份前后内存文件的一致性。在备份恢复时候采用了回滚技术,就可以保证虚拟机在异常发生的情况下,可以重构恢复到过去的某一个时间点的状态。
[0087]综上所述,借助于本发明的上述技术方案,通过将数据进快照以及补充快照,在快照和补充快照文件达到阈值时进行文件数据转移,从而缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。虚拟机备份是解决了虚拟磁盘镜像文件安全性的一种途径;解决了传统虚拟机备份过程中占用太多的物理服务器系统资源;解决了虚拟机中对实时性要求比较苛刻的应用需求。管理员在任何时间点执行备份的过程中,保护了虚拟机内存的安全性,同时,也解决了运行时虚拟机磁盘镜像文件缓存的一致性。本发明技术方案可以实现备份虚拟机过程中业务不中断,备份虚拟机过程中不影响其他虚拟机的性能,对备份后的虚拟机进行快速恢复,虚拟机恢复到备份的时间点,保证内存数据一致性,以及虚拟机的备份和恢复均一键完成,操作简捷,管理自动化。
[0088]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种虚拟机的数据备份方法,其特征在于,包括: 对一个或多个所述虚拟机中的多个磁盘中的数据进行快照,以生成快照文件,并将所生成的快照文件存入快照队列中; 在进行所述快照的过程中,对各磁盘中新增的数据进行补充快照,并将所生成的补充快照文件存入所述快照队列中,直到所述磁盘中的所有数据被快照;以及 当所述快照队列中的所述快照文件与所述补充快照文件达到阈值时,将所述快照文件与所述补充快照文件备份到目标磁盘中。
2.根据权利要求1所述的数据备份方法,其特征在于,守护线程被配置成截取写入所述磁盘中的数据。
3.根据权利要求2所述的数据备份方法,其特征在于,持续数据保护服务器截取写入所述磁盘中的数据。
4.根据权利要求2所述的数据备份方法,其特征在于,发送线程被配置成将所述快照文件与所述补充快照文件备份到所述目标磁盘中。
5.根据权利要求1所述的数据备份方法,其特征在于,所述快照队列中的所述快照文件与所述补充快照文件达到阈值包括所述快照队列被所述快照文件与所述补充快照文件填满。
6.根据权利要求4所述的数据备份方法,其特征在于,当所述磁盘中的所有数据被快照后,发送线程被配置成将剩余的所述快照文件与所述补充快照文件备份到所述目标磁盘中。
7.根据权利要求6所述的数据备份方法,其特征在于,当所述快照文件与所述补充快照文件备份到所述目标磁盘中之后,将所述虚拟机的配置文件备份到所述目标磁盘中。
8.根据权利要求7所述的数据备份方法,其特征在于,在将所述虚拟机的配置文件备份到所述目标磁盘中之后,检查点检查所述数据与备份后的数据的一致性。
9.根据权利要求7所述的数据备份方法,其特征在于,在将所述虚拟机的配置文件备份到所述目标磁盘中之后,所述目标磁盘将备份结果上报给虚拟机管理器。
10.根据权利要求1所述的数据备份方法,其特征在于,所述快照队列设置在主机系统的内存中。
【文档编号】G06F11/14GK103678045SQ201310752376
【公开日】2014年3月26日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】李立, 王军林, 唐明, 徐博, 成书晟 申请人:曙光云计算技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1