一种虚拟机热升级的方法及装置与流程

文档序号:36503911发布日期:2023-12-28 08:28阅读:36来源:国知局
一种虚拟机热升级的方法及装置与流程

本发明涉及计算机领域,尤其涉及一种虚拟机热升级的方法及装置。


背景技术:

1、qemu(虚拟机)热升级是指在不关闭虚拟机的情况下,快速替换运行中的qemu版本,可用于qemu进行在线的错误修复、上线新的特征、版本升级同步等操作。

2、目前,qemu的热升级基于虚拟机热迁移框架完成。在基于虚拟机热迁移框架进行虚拟机热升级时,需要暂停源虚拟机(即源虚拟机中断),然后进行虚拟机状态迁移,其中包括迁移源虚拟机中中断寄存器信息,首先源虚拟机复制源虚拟机中断寄存器中的中断信息,再将中断信息加载至目的虚拟机中。上述加载中断信息的过程中存在时间差,在该时间差期间,给源虚拟机透传信息的透传设备仍在运行,可能存在源虚拟机产生中断之后的信息,导致加载至目的虚拟机的状态信息不完整(即仅包括中断之前的中断信息,不包括中断之后的信息),发生中断丢失的情况。当发生中断丢失时,目的虚拟机通过对中断信息进行中断补偿,以使目的虚拟机对中断进行处理。

3、然而qemu每次热升级时,无法确定升级期间是否产生了新的中断,即无法确定是否存在中断丢失,即无法确定是否存在中断丢失,使得目的虚拟机每次热升级后都需要进行中断补偿,这也导致目的虚拟机对未发生中断丢失进行中断补偿的情况,此时的中断补偿为无效中断,导致增加了热升级的耗时,降低了热升级的效率。


技术实现思路

1、本发明实施例提供一种虚拟机热升级的方法及装置,用于让源qemu和目的qemu的本地中断控制器的寄存器内存共享同一段内存地址,由于本地中断控制器的寄存器内记录的中断信息没有进行迁移操作,所以不会发生中断丢失的情况,也就不需要进行中断补偿,提升热升级的效率。

2、第一方面,本发明实施例提供虚拟机热升级的方法,包括:

3、目的虚拟机接收文件描述符;所述文件描述符是源虚拟机在触发热升级之后生成并发送至所述目的虚拟机的,表征所述源虚拟机的本地中断控制器的寄存器中记录有中断信息的内存地址;

4、所述目的虚拟机解析所述文件描述符,确定所述文件描述符对应的内存地址;

5、所述目的虚拟机加载所述内存地址,将所述内存地址对应的内存空间存储的中断信息作为自身的状态信息。

6、上述技术方案中,源虚拟机为进行热升级之前的虚拟机,目的虚拟机为源虚拟机进行热升级后得到的虚拟机。文件描述符是源虚拟机清除标识后发送给目的虚拟机的,标识用来表示该文件描述符可以在源虚拟机解析。文件描述符表征源虚拟机通过预设方式分配的用来存储中断信息的内存地址。目的虚拟机接收到源虚拟机发送的文件描述符,解析文件描述符得到对应的内存地址,然后加载上述内存地址,相当于将源虚拟机的本地中断控制器的寄存器中记录有中断信息的内存地址直接复用到目标虚拟机中作为目的虚拟机的本地中断控制器的寄存器的内存地址,以此避免本地中断控制器的寄存器中记录的中断信息进行迁移,防止产生中断丢失进行中断补偿,提升热升级的效率。

7、可选的,所述目的虚拟机加载所述内存地址,包括:

8、所述目的虚拟机通过预设调用命令将所述内存地址加载至所述目的虚拟机的虚拟处理器对应的本地中断控制器的寄存器中。

9、上述技术方案中,目的虚拟机利用预设调用命令访问内核中的本地中断控制器的寄存器,然后将解析文件描述符得到的源虚拟机的本地中断控制器的寄存器中记录有中断信息的内存地址加载到内核中的本地中断控制器的寄存器中。实现了源虚拟机的本地中断控制器的寄存器中记录有中断信息的内存地址复用到目的虚拟机的本地中断控制器的寄存器中,提升了热升级的效率。

10、可选的,上述方法还包括:

11、所述目的虚拟机接收所述源虚拟机发送的除所述内存地址对应的内存空间存储的中断信息之外的其他状态信息。

12、上述技术方案中,源虚拟机将内存空间中除中断信息以外的其他状态信息提取出来,发送给目的虚拟机,目的虚拟机获取其他状态信息,保存在内存空间中,实现了源虚拟机的热升级。

13、第二方面,本发明实施例提供虚拟机热升级的方法,包括:

14、源虚拟机接收热升级指令,所述热升级指令包括目的虚拟机的标识;

15、所述源虚拟机响应于所述热升级指令,根据所述目的虚拟机的标识将文件描述符发送至所述目的虚拟机;所述文件描述符表征所述源虚拟机的本地中断控制器的寄存器中记录有中断信息的的内存地址,用于指示所述目的虚拟机解析所述文件描述符,确定所述文件描述符对应的内存地址;加载所述内存地址,将所述内存地址对应的内存空间存储的中断信息作为自身的状态信息。

16、上述技术方案中,源虚拟机接收到热升级指令后,将表征源虚拟机的本地中断控制器的寄存器中记录有中断信息的的内存地址的文件描述符发送给目的虚拟机,让目的虚拟机进行解析,实现了源虚拟机的本地中断控制器的寄存器中记录有中断信息的的内存地址复用到目的虚拟机的本地中断控制器的寄存器中。

17、可选的,源虚拟机接收热升级指令之前,还包括:

18、所述源虚拟机通过预设方式分配所述源虚拟机对应的本地中断控制器的寄存器的内存地址,并得到文件描述符;所述内存地址对应的内存空间用于记录中断信息;

19、所述源虚拟机通过预设调用命令将所述内存地址存储至所述源虚拟机对应的虚拟处理器的本地中断控制器的字段中。

20、上述技术方案中,源虚拟机对应的本地中断控制器的寄存器的内存地址通过预设方式进行分配,避免对本地中断控制器的寄存器的内存地址的随机分配,实现了对内存地址的自行分配,可以得到对应的文件描述符。

21、可选的,上述方法还包括:

22、所述源虚拟机将除所述内存地址对应的内存空间存储的中断信息之外的其他状态信息发送至所述目的虚拟机。

23、上述技术方案中,源虚拟机将内存空间中除中断信息以外的其他状态信息提取出来,发送给目的虚拟机。以使目的虚拟机将其他状态信息保存在内存空间后,完成源虚拟机的热升级。

24、第三方面,本发明实施例提供一种虚拟机热升级的装置,包括:

25、获取模块,用于接收文件描述符;所述文件描述符是源虚拟机在触发热升级之后生成并发送至所述目的虚拟机的,表征所述源虚拟机的本地中断控制器的寄存器中记录有中断信息的的内存地址;

26、处理模块,用于解析所述文件描述符,确定所述文件描述符对应的内存地址;

27、加载所述内存地址,将所述内存地址对应的内存空间存储的中断信息作为自身的状态信息。

28、可选的,所述处理模块具体用于:

29、通过预设调用命令将所述内存地址加载至所述目的虚拟机的虚拟处理器对应的本地中断控制器的寄存器中。

30、可选的,所述处理模块还用于:

31、接收所述源虚拟机发送的除所述内存地址对应的内存空间存储的中断信息之外的其他状态信息。

32、第四方面,本发明实施例提供一种虚拟机热升级的装置,包括:

33、获取单元,用于接收热升级指令,所述热升级指令包括目的虚拟机的标识;

34、处理单元,用于响应于所述热升级指令,根据所述目的虚拟机的标识将文件描述符发送至所述目的虚拟机;所述文件描述符表征所述源虚拟机的本地中断控制器的寄存器中记录有中断信息的的内存地址,用于指示所述目的虚拟机解析所述文件描述符,确定所述文件描述符对应的内存地址;加载所述内存地址,将所述内存地址对应的内存空间存储的中断信息作为自身的状态信息。

35、可选的,所述处理单元还用于:

36、通过预设方式分配所述源虚拟机对应的本地中断控制器的寄存器的内存地址,并得到文件描述符;所述内存地址对应的内存空间用于记录中断信息;

37、通过预设调用命令将所述内存地址存储至所述源虚拟机对应的虚拟处理器的本地中断控制器的字段中。

38、可选的,所述处理单元还用于:

39、将除所述内存地址对应的内存空间存储的中断信息之外的其他状态信息发送至所述目的虚拟机。

40、第五方面,本发明实施例还提供一种计算机设备,包括:

41、存储器,用于存储程序指令;

42、处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述的虚拟机热升级的方法。

43、第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的虚拟机热升级的法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1