[发明专利]虚拟机直通设备的热迁移方法和装置有效
申请号: | 201810590075.8 | 申请日: | 2018-06-08 |
公开(公告)号: | CN108874506B | 公开(公告)日: | 2020-07-24 |
发明(设计)人: | 谢永吉;柴稳;张宇 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 直通 设备 迁移 方法 装置 | ||
1.一种虚拟机直通设备的热迁移方法,包括:
在停止源端虚拟机的服务之前的迁移准备阶段,通过调用已配置的寄存器状态同步接口执行寄存器状态同步方法,以将源端虚拟机直通设备的寄存器状态同步至目标端虚拟机,其中,所述寄存器状态同步接口封装了所述直通设备的寄存器状态同步逻辑;
在热迁移执行阶段,不暂停源端虚拟机的服务,取消所述源端虚拟机直通设备的透传状态,通过迭代执行多轮同步操作将源端虚拟机直通设备迁移至目标端虚拟机;
所述同步操作包括:
通过调用已配置的寄存器状态同步接口执行寄存器状态同步方法,以捕获迁移过程中对源端虚拟机直通设备的寄存器的读写操作,对目标端虚拟机直通设备的寄存器执行所捕获的读写操作;以及
通过调用已配置的DMA脏页传输接口执行DMA脏页同步方法,以将源端虚拟机直通设备标识的DMA脏页对应的数据写入目标端虚拟机的内存中;
在每轮的同步操作执行完毕后,判断当前轮的脏页率与上一轮的脏页率之间的差异是否小于预设的阈值,若是,则停止源端虚拟机的服务,再执行一次同步操作,以将源端虚拟机的所有数据都同步至目标端虚拟机,然后启动目标端虚拟机的服务,并在目标端虚拟机恢复直通设备寄存器的透传状态。
2.根据权利要求1所述的方法,其中,所述通过调用已配置的寄存器状态同步接口执行寄存器状态同步方法,以将源端虚拟机直通设备的寄存器状态同步至所述目标端虚拟机,包括:
通过调用已配置的寄存器状态同步接口执行将源端虚拟机直通设备的寄存器状态传输至虚拟机监控器的操作,在目标端虚拟机同步所述虚拟机监控器获取的寄存器状态;以及
所述通过调用已配置的寄存器状态同步接口执行寄存器状态同步方法,以捕获迁移过程中对源端虚拟机直通设备的寄存器的读写操作,包括:
通过调用已配置的寄存器状态同步接口执行将迁移过程中对源端虚拟机直通设备的寄存器的读写操作记录传输至所述虚拟机监控器的操作。
3.根据权利要求1所述的方法,其中,所述通过调用已配置的DMA脏页传输接口执行DMA脏页同步方法,以将源端虚拟机直通设备标识的DMA脏页对应的数据写入目标端虚拟机的内存中,包括:
通过调用已配置的DMA脏页传输接口执行将所述源端虚拟机直通设备标识的DMA脏页传输至虚拟机监控器的操作;
在目标端虚拟机读取所述虚拟机监控器获取的DMA脏页,并解析DMA脏页获得迁移过程中DMA修改的数据,将解析得到的数据写入所述目标端虚拟机的内存中。
4.根据权利要求1-3任一项所述的方法,其中,所述方法还包括:
读取源端虚拟机直通设备的设备标识;
所述通过调用已配置的寄存器状态同步接口执行寄存器状态同步方法,包括:
通过调用已配置的寄存器状态同步接口执行所述设备标识关联的寄存器状态同步方法;
所述通过调用已配置的DMA脏页传输接口执行DMA脏页同步方法,包括:
通过调用已配置的DMA脏页传输接口执行所述设备标识关联的DMA脏页同步方法。
5.根据权利要求1所述的方法,其中,所述通过调用已配置的寄存器状态同步接口执行寄存器状态同步方法,以将源端虚拟机直通设备的寄存器状态同步至所述目标端虚拟机,包括:
通过调用所述寄存器状态同步接口读取源端虚拟机直通设备的读写寄存器的内容,将源端虚拟机直通设备的读写寄存器的内容传输并写入目标端虚拟机直通设备的读写寄存器;
通过调用所述寄存器状态同步接口捕捉并记录源端虚拟机直通设备的对读写寄存器的读写操作,在目标端虚拟机直通设备执行所述源端虚拟机的读写操作,以将源端虚拟机直通设备的状态寄存器的内容同步至目标端虚拟机直通设备的状态寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810590075.8/1.html,转载请声明来源钻瓜专利网。