发明内容
针对相关技术中大量数据备份操作会影响虚拟机的本身业务的问题,本发明提出一种虚拟机的数据备份方法,能够缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种虚拟机的数据备份方法。
该数据备份方法包括:
对一个或多个虚拟机中的多个磁盘中的数据进行快照,以生成快照文件,并将所生成的快照文件存入快照队列中;
在进行快照的过程中,对各磁盘中新增的数据进行补充快照,并将所生成的补充快照文件存入快照队列中,直到磁盘中的所有数据被快照;以及
当快照队列中的快照文件与补充快照文件达到阈值时,将快照文件与补充快照文件备份到目标磁盘中。
其中,守护线程被配置成截取写入磁盘中的数据。
其中,持续数据保护服务器截取写入磁盘中的数据。
其中,发送线程被配置成将快照文件与补充快照文件备份到目标磁盘中。
并且,快照队列中的快照文件与补充快照文件达到阈值包括快照队列被快照文件与补充快照文件填满。
进一步地,当磁盘中的所有数据被快照后,发送线程被配置成将剩余的快照文件与补充快照文件备份到目标磁盘中。
此外,当快照文件与补充快照文件备份到目标磁盘中之后,将虚拟机的配置文件备份到目标磁盘中。
优选地,在将虚拟机的配置文件备份到目标磁盘中之后,检查点检查数据与备份后的数据的一致性。
可选地,在将虚拟机的配置文件备份到目标磁盘中之后,目标磁盘将备份结果上报给虚拟机管理器。
并且,快照队列设置在主机系统的内存中。
本发明通过将数据进快照以及补充快照,在快照和补充快照文件达到阈值时进行文件数据转移,从而缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的一个实施例,提供了一种虚拟机的数据备份方法。
如图1所示,根据本发明实施例的数据备份方法包括:
步骤S101,对一个或多个虚拟机中的多个磁盘中的数据进行快照,以生成快照文件,并将所生成的快照文件存入快照队列中;
步骤S103,在进行快照的过程中,对各磁盘中新增的数据进行补充快照,并将所生成的补充快照文件存入快照队列中,直到磁盘中的所有数据被快照;以及
步骤S105,当快照队列中的快照文件与补充快照文件达到阈值时,将快照文件与补充快照文件备份到目标磁盘中。
其中,守护线程被配置成截取写入磁盘中的数据。
其中,持续数据保护服务器截取写入磁盘中的数据。
其中,发送线程被配置成将快照文件与补充快照文件备份到目标磁盘中。
并且,快照队列中的快照文件与补充快照文件达到阈值包括快照队列被快照文件与补充快照文件填满。
进一步地,当磁盘中的所有数据被快照后,发送线程被配置成将剩余的快照文件与补充快照文件备份到目标磁盘中。
此外,当快照文件与补充快照文件备份到目标磁盘中之后,将虚拟机的配置文件备份到目标磁盘中。
优选地,在将虚拟机的配置文件备份到目标磁盘中之后,检查点检查数据与备份后的数据的一致性。
可选地,在将虚拟机的配置文件备份到目标磁盘中之后,目标磁盘将备份结果上报给虚拟机管理器。
并且,快照队列设置在主机系统的内存中。
根据本发明的一个实施例,提供了一种虚拟机的数据备份方法,其中,虚拟机备份包括虚拟磁盘、内存、CPU寄存器等部分的备份,可以通过快照、迁移、克隆、日志记录等操作实现虚拟机备份。可以从下四个方面实现虚拟机备份:
一、虚拟机异步快照及存储
快照功能相当于整个虚拟机的热拷贝,尽管虚拟机还在保持运行,对于一个非常繁忙的系统,可能会短暂地中断服务,但是快照的巨大优势还是远远超过了短暂的停机时间。虚拟机快照技术通常针对虚拟磁盘进行,由于内存信息变化大,保存方式有两种:1)暂停虚拟机运行,把内存拷贝到文件;2)通过虚拟机迁移来实现内存的保存。当采用较高的快照频率或写操作驱动的生成策略时,快照的生成可能导致较大的开销,从而降低虚拟机运行速度,特别是I/O密集型的应用。为此,虚拟机备份过程中,本发明的技术方案引进了一种异步快照的方式以降低快照对虚拟机性能的影响,异步快照的主要思想流程如下:
1.当有快照生成请求时,首先将要写入快照的磁盘块及其快照时标写入内存中的一个快照队列;
2.当快照队列满或队列中的快照达到一定的阈值时,VMM(Virtual MachineMonitor,虚拟机)或快照服务将快照队列中的全部或部分快照写回磁盘;
3.当无快照生成请求时,VMM或是快照服务从快照队列的头部开始逐一将队列中的快照写回磁盘。
4.当快照尺寸和数量庞大时,可将快照保存在专门设计的共享存储池中,从而提供虚拟机备份的速度。对于写操作密集或快照频率较高的应用,大量快照可能会占用大量的存储空间,因此可以根据实际情况,将较早产生的快照进行压缩存储,转储。
二、持续数据保护技术的实现
根据本发明的一个实施例,提供了一种实现持续数据保护的方法,如图2所示是实现持续数据保护的方法的结构示意图。系统修改虚拟机管理中的磁盘读写部分代码,截获对磁盘的写操作,并把数据发送到本地内存中的一个队列。内存中的队列,用来缓存CDP数据,并发送到远程备份站点。采用多线程设计,一个线程作为守护线程用来截获接受CDP数据并缓存;另一个线程用来进行发送数据到远程备份站点。
由于科技发展,对数据的可靠性提出了更高的要求,传统的数据备份方法已经不能满足需求,通过持续数据保护,才能在意外发生时将数据的损失降到最低,使服务中断的时间最短,使得可以恢复到以前时刻的任意一点,并且,存储的数据和恢复时间都在可以接受范围内。
三、回滚机制的实现
系统不需要对系统中发生的所有事件进行记录,仅仅记录影响进程执行的不确定事件以及这些事件发生的位置或者时间点,在必要的时候通过这些记录信息重构系统之前运行状况。如图3所示是根据本发明的一个实施例的虚拟机回滚机制的体系结构的示意图,其中,回滚机制的实现流程如下:
1.在本地虚拟机内部实现:管理器,操作界面,用来执行命令,设置参数,执行回滚操作等待;
2.CDP服务器用来截获系统写数据,然后自适应传送到备份点;
3.检查点用来保存系统的CPU数据和内存数据,需要进行一致性的检查,并把结果存放到检查点的数据中。
这个回滚体系结构把当前版本和历史版本分开,这样的分割可以帮助提供快速的读取,由于在访问虚拟磁盘时没有重定向,虚拟磁盘维持地址来保证顺序访问的性能不受影响。
四、自适应算法的实现
系统在自适应发送数据时,需要搜集系统的性能参数,其中,性能参数包括CPU利用率、内存使用率、磁盘空间、磁盘I/O、网络流量等数据。具体就是提取四个反应系统性能的因子:1)CPU利用率Uc、2)系统I/O使用率Ui、3)内存使用率Um、4)网络带宽使用率Un。并且为每个因子赋予一定的比重,则分别对应Rc、Ri、Rm、Rn,综合影响因子P可以用以下公式得出:P=Rc*Uc+Ri*Ui+Rm*Um+Rn*Un。
修改虚拟机管理软件,让其截获客户操作系统的写操作,然后通过有名管道把写的数据发送给守护线程,这样既保证了数据的可靠性,并且保证了数据块的顺序。为了有一个标准的判断,系统计算了一个P0,如果P大于P0,说明系统处于比较忙的状态,系统尽量减少数据的发送。如果小于P0,系统认为处于空闲状态,可以发送较多的数据,并且P越小发送的越多。
其中,数据接受算法包括:
(1)、打开管道,读取数据,如果没有则进入休眠;
(2)、分配内存,把读取的数据放到内存队列内,等待发送;
(3)、如果服务完成,关闭管道。
数据发送算法包括:
(1)、获取当前系统的性能U,队列长度,当前指针和尾指针;
(2)、如果P<P0,则发送当前指针指向的数据块,并相应的移动指针,P0越小发送的数据越多,如果P>P0,则减少发送的数据块,甚至不发送;
(3)、如果遇到尾指针,则说明队列为空,停止发送。
自适应算法参数信息的获取包括:
(1)、CPU信息的获取,在文件“/proc/stat”里面就包含了CPU的信息,包括CPU的tick使用信息。计算单位时间里面CPU的负载,只需要计算1秒前后数值的差除以每一秒的tick数量就可以了。计算公式为:((200*(V1-V2)/CPU_TICKS_PER_SECOND)+1)/2,其中V1,V2为两次读取的数值。
(2)、内存消耗,在文件“/proc/meminfo”里面包含了内存的信息,还包含了swap的信息。
(3)、磁盘I/O的数据,在文件“/proc/partitions”里面,需要隔一段时间取值,两次取值的差就是流量。
网络流量,在文件“/proc/net/dev”里面获取。同样也是需要两次取值其差作为流量值。
五、虚拟机备份的实现
根据本发明的一个实施例,可以结合虚拟机磁盘镜像文件快照技术和快照合并技术实现虚拟机备份,如图4所示,为根据本发明的一个实施例的虚拟机备份的方法的流程图,包括:
指定虚拟机的备份点;
在备份点中,判断对虚拟机做快照是否成功,对虚拟机做快照失败,则返回异常;
对虚拟机做快照成功,则根据备份点中的快照文件查找父磁盘镜像文件;
检查点异步执行,采用持续数据保护技术将虚拟机的内存信息同步到备份点指定路径,直到内存同步完成后,再同步虚拟机的其他配置文件到备份点;
在备份点中,将新创建的快照文件重命名为Base快照文件,并制作基于Base快照文件的新快照文件;
将备份点中的虚拟机Base快照文件的内容合并到父磁盘镜像文件中去,速度极快,可在1分钟内完成操作;
拷贝虚拟机父磁盘镜像文件到备份点的指定目录,推荐父磁盘镜像文件使用稀疏格式;
管理监听等待所有数据同步完成的事情发生,这样可实现虚拟机的备份。
本发明的技术方案的虚拟机备份是基于在共享存储(也可以不是共享存储)的环境下利用快照技术和快照合并技术完成的,所以备份速度会比较快。在备份过程中采用了持续数据保护技术来保证了虚拟机备份前后内存文件的一致性。在备份恢复时候采用了回滚技术,就可以保证虚拟机在异常发生的情况下,可以重构恢复到过去的某一个时间点的状态。
综上所述,借助于本发明的上述技术方案,通过将数据进快照以及补充快照,在快照和补充快照文件达到阈值时进行文件数据转移,从而缩短虚拟机备份的时间,并且在备份过程中持续运行虚拟机,减少了虚拟机备份过程中对物理服务器性能的影响,提高了虚拟机内存数据和磁盘缓存数据的一致性。虚拟机备份是解决了虚拟磁盘镜像文件安全性的一种途径;解决了传统虚拟机备份过程中占用太多的物理服务器系统资源;解决了虚拟机中对实时性要求比较苛刻的应用需求。管理员在任何时间点执行备份的过程中,保护了虚拟机内存的安全性,同时,也解决了运行时虚拟机磁盘镜像文件缓存的一致性。本发明技术方案可以实现备份虚拟机过程中业务不中断,备份虚拟机过程中不影响其他虚拟机的性能,对备份后的虚拟机进行快速恢复,虚拟机恢复到备份的时间点,保证内存数据一致性,以及虚拟机的备份和恢复均一键完成,操作简捷,管理自动化。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。