本发明属于数据容灾备份,涉及一种xen全虚拟化的无代理实时备份方法、系统及存储介质。
背景技术:
1、xen是一种支持半虚拟化和完全虚拟化的开源虚拟化技术,其中完全虚拟化这种模式依赖于具备虚拟化扩展的硬件,如intel vt或amd-v,使得xen能够在虚拟化层模拟物理硬件环境。这一特性允许xen运行未经修改的操作系统,包括各种版本的windows和其他标准操作系统,从而提供了卓越的灵活性和广泛的兼容性。
2、与半虚拟化相比,完全虚拟化的主要优势在于其对不同操作系统的高度兼容性以及易于管理和维护的特点。尽管这可能意味着在某些情况下会有一定的性能牺牲,但总的来说,xen的完全虚拟化技术为那些需要灵活部署和运行标准操作系统的环境提供了理想的解决方案。
3、虚拟机的无代理实时备份技术是一种高效的数据备份解决方案。通过实时备份能够持续捕获并记录虚拟机中数据的任何变化,确保备份数据始终是最新的,大大降低了数据丢失的风险。同时,无代理备份的方法避免了在虚拟机内部安装备份代理软件的需求,简化了备份流程,减少了对虚拟机配置的依赖。
4、在虚拟化环境中捕捉虚拟机中的数据变化需要对系统进行i/o的方式进行解析,在xen完全虚拟化环境中,虚拟机产生的磁盘i/o请求由虚拟机管理程序xen hypervisor处理,最后交由宿主机dom0实际写入磁盘。i/o请求首先由虚拟机domu中运行的客户操作系统发起,这个操作系统并不知晓自己在虚拟环境中运行,因此它会像在物理机上一样处理i/o请求。当domu设备层向下传递i/o请求时,xen hypervisor拦截这些来自虚拟机的i/o请求,xen hypervisor通过虚拟的磁盘控制器(如ide或scsi控制器)来处理这些请求。这时,tapdisk作为后端(backend)服务运行在dom0的用户空间,负责管理和访问虚拟磁盘映像文件, 当tapdisk收到来自虚拟机的磁盘读写请求时,它将这些请求转换为对应的物理存储操作,比如读取或修改磁盘映像文件中的数据。当tapdisk的转换操作完成,就将i/o请求提交到宿主机dom0内核进行实际的写入物理硬件操作。
5、目前,在xen虚拟化技术中,尚未实现真正的无代理实时持续数据保护。大多数现有的xen虚拟机备份方法依赖于利用公共接口对虚拟机进行定时快照备份。这种方式是在备份开始时对虚拟机的磁盘状态进行快照,以捕获数据的精确副本,并在固定间隔后再次进行快照。快照的间隔时间越短,可能丢失的数据就越少。现有技术如公开号cn108182128a的基于xen的无代理虚拟化备份恢复方法(申请日2017年12月29日)和公开号cn106598787a的基于xen的无代理备份还原方法和系统(申请日2016年12月31日),都采用了基于虚拟机快照的定时备份方式来保护xen虚拟机数据。然而,这种定时备份方法虽然提供了一定程度的数据保护,但在备份间隔期间发生的系统故障可能仍导致大量数据丢失。到目前为止,在xen 虚拟化环境中的数据备份技术还没有涉及到实时备份的研究。
6、现在,在xen中急需要应用实时备份技术,然而由于xen完全虚拟化架构下的虚拟机独特i/o方式,现有的实时保护技术不能完全应用于该环境。因此,在xen全虚拟化的环境中如何对虚拟机进行持续性数据保护,实现一种高效且低干扰的实时备份方法成为当前急需解决的技术问题。
技术实现思路
1、本发明为了解决上述背景技术中的技术问题,提供一种xen全虚拟化的无代理实时备份方法、系统及存储介质。技术方案如下:
2、第一方面,提供一种xen全虚拟化的无代理实时备份方法,由位于生产端宿主机操作系统中的备份驱动执行,所述方法包括步骤:
3、在初始化时获取并通过宿主机中所有tapdisk进程的pid及其对应的磁盘文件描述符生成全局标识向量表,其中全局标识向量表包含磁盘文件标识向量及其所对应的虚拟机磁盘文件路径;
4、截获用户程序向宿主机内核传递的异步i/o请求,获取当前进程的pid和进程名,并过滤非tapdisk进程的异步i/o请求;
5、解析异步i/o请求获取磁盘写入位置信息,根据全局标识向量表匹配当前进程的虚拟机磁盘文件路径,然后根据异步i/o请求中的磁盘写入数据地址获取磁盘文件变化数据;
6、创建备份结构体,将磁盘写入位置信息、当前进程的虚拟机磁盘文件路径和磁盘文件变化数据写入备份结构体,然后将结构体数据写入内核缓冲区暂存,其中内核缓冲区为初始化时创建;
7、将内核缓冲区中的数据异步发送至备份服务程序。
8、第二个方面,提供一种xen全虚拟化的无代理实时备份方法,用于备份服务端,处理来自生产端宿主机操作系统中的备份驱动的备份数据,所述方法包括步骤:
9、备份服务程序接收来自备份驱动传输的备份结构体数据;
10、备份服务程序将接收到的备份结构体数据写入与备份结构体结构相同的接收结构体,再将接收结构体中目标内容写进日志文件;所述备份结构体由将磁盘写入位置信息、当前进程的虚拟机磁盘文件路径和磁盘文件变化数据写入形成;所述备份驱动用于将结构体数据写入内核缓冲区暂存,内核缓冲区为初始化时创建;备份驱动还用于解析异步i/o请求获取磁盘写入位置信息,根据全局标识向量表匹配当前进程的虚拟机磁盘文件路径,然后根据异步i/o请求中的磁盘写入数据地址获取磁盘文件变化数据;备份驱动还用于截获用户程序向宿主机内核传递的异步i/o请求,获取当前进程的pid和进程名,并过滤非tapdisk进程的异步i/o请求;备份驱动还再用于在初始化时获取并通过宿主机中所有tapdisk进程的pid及其对应的磁盘文件描述符生成全局标识向量表,其中全局标识向量表包含磁盘文件标识向量及其所对应的虚拟机磁盘文件路径。
11、第三个方面,还提供了一种xen全虚拟化的无代理实时备份系统,由位于生产端宿主机操作系统中的备份驱动执行,所述系统包括:
12、初始化模块,用于在初始化时获取并通过宿主机中所有tapdisk进程的pid及其对应的磁盘文件描述符生成全局标识向量表,其中全局标识向量表包含磁盘文件标识向量及其所对应的虚拟机磁盘文件路径;
13、截获模块,用于截获用户程序向宿主机内核传递的异步i/o请求,获取当前进程的pid和进程名,并过滤非tapdisk进程的异步i/o请求;
14、数据获取模块,用于解析异步i/o请求获取磁盘写入位置信息,根据全局标识向量表匹配当前进程的虚拟机磁盘文件路径,然后根据异步i/o请求中的磁盘写入数据地址获取磁盘文件变化数据;
15、数据装载模块,用于创建备份结构体,将磁盘写入位置信息、当前进程的虚拟机磁盘文件路径和磁盘文件变化数据写入备份结构体,然后将结构体数据写入内核缓冲区暂存,其中内核缓冲区为初始化时创建;
16、发送模块,用于将内核缓冲区中的数据异步发送至备份服务程序。
17、第四个方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述xen全虚拟化的无代理实时备份方法。
18、本发明的有益效果是:
19、(1).本发明通过对生产系统的磁盘文件不断监控与自动备份,实现了虚拟机数据的持续保护,使得系统出现故障或磁盘数据损坏时,能够加速恢复过程,缩短业务中断时间,从而增强业务的持续运营能力,保证业务系统稳定运行;
20、(2).本发明通过仅在宿主机中安装备份驱动,能够对运行在xen全虚拟化环境中的所有虚拟机进行实时数据保护,而无需在所有虚拟机中安装备份代理程序,可以提供更快的恢复时间(rto)和更短的数据丢失窗口(rpo),具有部署简单、简化管理和降低资源占用等优点;
21、(3).本发明在备份驱动初始化时创建全局标识向量表,大大简化了备份驱动在截获磁盘文件变化数据时识别磁盘文件的过程,并可以在备份驱动运行时为新创建的虚拟机动态更新全局标识向量表,有效地提高了备份驱动的执行效率;
22、(4).本发明利用xen全虚拟化环境中虚拟机i/o特点设计截获磁盘变化数据的方法,备份驱动通过监控tapdisk对磁盘文件的操作,能够在宿主机内核中高效获取异步写入磁盘的变化数据,对运行在宿主机用户空间的虚拟机请求处理程序影响小。
1.一种xen全虚拟化的无代理实时备份方法,其特征在于,由位于生产端宿主机操作系统中的备份驱动执行,包括步骤:
2.根据权利要求1所述的xen全虚拟化的无代理实时备份方法,其特征在于,所述在初始化时获取并通过宿主机中所有tapdisk进程的pid及其对应的磁盘文件描述符生成全局标识向量表的步骤,包括:
3.根据权利要求1所述的xen全虚拟化的无代理实时备份方法,其特征在于,所述截获用户程序向宿主机内核传递的异步i/o请求,获取当前进程的pid和进程名,过滤非tapdisk进程的异步i/o请求的步骤,包括:
4.根据权利要求1所述的xen全虚拟化的无代理实时备份方法,其特征在于,所述解析异步i/o请求获取磁盘写入位置信息,根据全局标识向量表匹配当前进程的虚拟机磁盘文件路径,然后根据异步i/o请求中的磁盘写入数据地址获取磁盘文件变化数据的步骤,包括:
5.根据权利要求1所述的xen全虚拟化的无代理实时备份方法,其特征在于,所述创建备份结构体,将磁盘写入位置信息、当前进程的虚拟机磁盘文件路径和磁盘文件变化数据写入备份结构体,然后将结构体数据写入内核缓冲区暂存的步骤,包括:
6.一种xen全虚拟化的无代理实时备份方法,其特征在于,应用于备份服务端,处理来自生产端宿主机操作系统中的备份驱动的备份数据,包括步骤:
7.一种xen全虚拟化的无代理实时备份系统,其特征在于,由位于生产端宿主机操作系统中的备份驱动执行,所述系统包括:
8.根据权利要求7所述的xen全虚拟化的无代理实时备份系统,其特征在于,所述初始化模块,包括:
9.根据权利要求7所述的xen全虚拟化的无代理实时备份系统,其特征在于,所述截获模块,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6任一项所述xen全虚拟化的无代理实时备份方法。