数据迁移方法、系统、设备及可读存储介质与流程

文档序号:37010287发布日期:2024-02-09 12:58阅读:19来源:国知局
本技术涉及虚拟机,尤其涉及一种数据迁移方法、系统、设备及可读存储介质。
背景技术
::1、虚拟化技术通过在物理机中引入新的软件层,即虚拟机监控程序(virtualmachine monitor,vmm,或hypervisor)为虚拟机提供所需的运行环境,同时能够控制管理虚拟机对真实物理资源的访问和使用。脏页追踪作为虚拟化技术中对客户机内核及其用户态进程较为重要的处理过程,其性能的优劣与客户机的安全性和隔离性关联。2、现有追踪脏页方案中,linux提供了追踪可以利用的两个接口:userfaultfd和/proc/<pid>/pagemap,在客户机中追踪脏页时会产生大量的缺页异常,同时在主机和客户机之间产生大量的虚拟机退出客户机模式(vm-exit)和虚拟机切换至客户机模式(vm-entry)事件。对于userfaultfd,支持失效(miss)和硬盘写保护(write_protect)两种监控模式,这两种模式在缺页异常解决之前都会挂起,会消耗大量时间;对于使用/proc,需要先清除被追踪进程/proc/<pid>/clear_refs的脏页位,会触发内核解析页表条目(pagetable entry,pte)和刷新转化后备缓冲器(translation lookaside buffer,tlb)操作,内存越大消耗时间越长。因此,现有方案中的脏页追踪技术存在着消耗时间较长、资源量消耗较大的问题。技术实现思路1、本技术实施例提供一种数据迁移方法、装置、电子设备及可读存储介质,以解决现有方案中的脏页追踪技术存在着消耗时间较长、资源量消耗较大的问题。2、为解决上述技术问题,本技术是这样实现的:3、第一方面,本技术实施例提供了一种数据迁移方法,应用于客户机,所述客户机运行在虚拟机上,所述客户机包括第一模块和第二模块,所述第一模块和所述第二模块通过第一接口连接,所述方法包括:4、所述第一模块接收所述客户机中应用程序对所述第一接口的注册,并向所述第二模块发送所述应用程序对目标跟踪进程的注册请求,其中,所述第一模块设置在所述客户机的用户态中,所述第二模块设置在所述客户机内核态中;5、所述第二模块接收所述注册请求,以使所述第一模块与所述应用程序通过第二接口连接;6、基于所述虚拟机的页面修改记录pml功能,所述第二模块记录与所述目标跟踪进程关联的目标数据至客户机pml缓冲器;7、所述第二模块在接收到所述客户机pml缓冲器发送的处理间ipi中断指示的情况下,拷贝所述客户机pml缓冲器中的所述目标数据至环形缓冲器中;8、所述第一模块通过所述第二接口执行所述应用程序对所述环形缓冲器中的所述目标数据的读取。9、可选地,所述在所述第二模块在接收到所述客户机pml缓冲器发送的处理间ipi中断指示之前,所述方法还包括:10、在所述客户机pml缓冲器记录所述目标数据的内存空间已满的情况下,所述客户机pml缓冲器发起所述ipi中断,并向所述第二模块发送所述ipi中断指示。11、可选地,所述环形缓冲器为所述第二模块分配的在所述客户机的内核态和用户态用于共享所述目标数据的缓冲器。12、可选地,所述在所述应用程序基于所述第一接口读取所述环形缓冲器中的所述目标数据之后,还包括:13、所述第一模块向所述第二模块发送对目标跟踪进程的注销请求;14、所述第二模块接收所述注销请求,以中断与所述应用程序连接的所述第二接口。15、可选地,所述虚拟机的页面修改记录pml功能至少确定以下至少一项:客户机虚拟地址gva、客户机物理地址gpa;16、其中,所述目标数据为所述gva,所述gpa用于记录至所述虚拟机的宿主机pml缓冲器。17、第二方面,本技术提供了一种数据迁移系统,包括宿主机、虚拟机和虚拟机监视器vmm,所述虚拟机安装运行在所述宿主机上,所述vmm安装在所述宿主机上用于监控所述虚拟机的运行,所述系统包括:18、客户机,所述客户机运行在虚拟机上,所述客户机包括第一模块和第二模块,所述第一模块和第二模块通过第一接口连接,其中,所述第一模块用于接收所述客户机中应用程序对所述第一接口的注册或者注册,所述第二模块用于接收所述应用程序的注册请求,以使所述第一模块与所述应用程序通过第二接口连接;19、其中,所述第二接口用于所述应用程序通过所述第一模块读取记录在环形缓冲器中的目标数据,所述环形缓冲器中的目标数据基于对客户机pml缓冲器中的所述目标数据的拷贝获取,所述客户机pml缓冲器中的所述目标数据基于所述虚拟机的pml功能通过所述第二模块记录。20、可选地,所述vmm中的虚拟机控制数据vmcs结构中存储有客户机pml缓冲器的地址和宿主机pml缓冲器的地址。21、可选地,存储在所述vmcs结构中的所述宿主机pml缓冲器的地址为所述客户机pml缓冲器的地址通过所述虚拟机中的扩展内存页表ept进行转换获取。22、第三方面,本技术实施例还提供了一种数据迁移装置,应用于客户机,所述客户机运行在虚拟机上,所述客户机包括第一模块和第二模块,所述第一模块和第二模块通过第一接口连接,所述装置包括:23、注册请求模块,用于所述第一模块接收所述客户机中应用程序对所述第一接口的注册,并向所述第二模块发送所述应用程序对目标跟踪进程的注册请求,其中,所述第一模块设置在所述客户机的用户态中,所述第二模块设置在所述客户机内核态中;24、接口连接模块,用于所述第二模块接收所述注册请求,以使所述第一模块与所述应用程序通过第二接口连接;25、数据记录模块,用于基于所述虚拟机的页面修改记录pml功能,所述第二模块记录与所述目标跟踪进程关联的目标数据至客户机pml缓冲器;26、数据拷贝模块,用于所述第二模块在接收到所述客户机pml缓冲器发送的处理间ipi中断指示的情况下,拷贝所述客户机pml缓冲器中的所述目标数据至环形缓冲器中;27、数据读取模块,用于所述第一模块通过所述第二接口执行所述应用程序对所述环形缓冲器中的所述目标数据的读取。28、第四方面,本技术实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述第一方面所述的数据迁移方法的步骤。29、第五方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的数据迁移方法的步骤。30、本技术实施例中,通过分别设置在客户机用户态的第一模块和设置在内核态的第二模块,第一模块用于应用程序注册需要追踪的进程,第二模块用于收集处理目标数据,即脏页数据。再通过虚拟机的pml功能,采用第二模块记录目标数据至客户机pml缓冲器,并且通过第二模块拷贝目标数据至第一模块和第二模块共享的环形缓冲器中,便于第一模块实现对环形缓冲器中缓存的目标数据的读取。这样,完成了客户机中应用程序对脏页数据的读取,无需对页表进行扫描,也无需系统资源的参与,有效减少了系统资源开销,提升了追踪脏页的性能,同时还提升了客户机的安全性和隔离性。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1