一种RDMA虚拟机热迁移的方法、系统及相应物理机技术方案

技术编号:35877489 阅读:13 留言:0更新日期:2022-12-07 11:15
本发明专利技术公开了一种RDMA虚拟机热迁移的方法,包括如下步骤:源物理机的Host主机向RDMA网卡下发虚拟机热迁移同步命令;源物理机的RDMA网卡停止向对端物理机的RDMA网卡发送新的数据报文,同时向对端物理机的RDMA网卡发送一热迁移控制报文;对端物理机的RDMA网卡收到所述热迁移控制报文后,暂停向源物理机的RDMA网卡发送当前数据传输的后续的数据报文;源物理机的RDMA网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;源物理机把所述虚拟机对应的内存页表拷贝到目标物理机的内存区域。本发明专利技术还公开了相应的系统和物理机。实施本发明专利技术,可提高热迁移的效率,缩短热迁移的时间,以及提高热迁移的成功率。功率。功率。

【技术实现步骤摘要】
一种RDMA虚拟机热迁移的方法、系统及相应物理机


[0001]本专利技术涉及数据存储
,特别是涉及一种RDMA虚拟机热迁移的方法、系统及相应物理机。

技术介绍

[0002]虚拟机热迁移是指将正在运行的虚拟机,在对业务中断时间和系统性能损失尽量小的目标下,将其从源物理机迁移到目标物理机,在虚拟机热迁移的应用技术中,通过多次循环迭代的方式拷贝虚拟机的页面内存信息是制约虚拟机热迁移效率的主要瓶颈。其中,所采用的拷贝通常采用RDMA(Remote Direct Memory Access,远程直接内存访问)网卡在源内存和目标内存之间通过远程直接内存访问的方式实现。
[0003]在虚拟机热迁移过程,系统从源物理机拷贝所有页面到目标物理机,如果源物理机对需要拷贝的内存区域有写操作,则标记对应页面为脏页,如果在拷贝和传输过程中不断出现脏页,则采用迭代拷贝的方式不断拷贝脏页,当迭代拷贝的内存数据收敛或者低于某个阈值时,源物理机暂停虚拟机,拷贝最后一轮脏页和虚拟机状态到目标物理机,然后关掉源物理机的虚拟机,启动目标物理机的虚拟机运行,从而实现了虚拟机从源物理机到目标物理机的热迁移。
[0004]现有的这种采用RDMA卡实现虚拟机热迁移的方案存在以下缺点:
[0005]在RDMA通信下,主要由硬件完成通信协议的处理,很多内存数据表项是由硬件维护,而且硬件内部通常有缓存空间(cache)缓存更新的数据,跟内存区域的数据不一致,系统从源物理机拷贝内存数据到目标物理机的过程中需要把硬件内缓存的数据同步到内存区域再拷贝,从而导致迭代拷贝的效率低下。其中,内存数据表项包括:QPC(Queue Pair Context,队列对上下文)、CQC(Complete Queue Context,完成队列上下文)、SRQC(Shared Receive Queue Context,共享接收队列上下文)以及EQC(Event Queue Context,共享接收队列上下文)。
[0006]在RDMA通信下,当源物理机在迭代拷贝的时候,与之通信的对端物理机无法感知源物理机正在迁移,仍然给源物理机发送数据报文。当源物理机的RDMA网卡接收到数据报文进行处理时又会在硬件内产生新的脏数据,需要系统不停的同步网卡内的脏数据到内存区域,也导致迭代拷贝的效率低下。
[0007]同时,在RDMA通信下,当源物理机暂停被迁移虚拟机时,被迁移虚拟机不能再处理与之通信的对端物理机的数据报文,对端物理机的数据报文被丢弃,如果被迁移虚拟机暂停时间过长,导致与之通信的对端物理机长时间无法收到已发送数据报文的响应而产生超时重传,甚至超时重传溢出会导致对端物理机RDMA网卡断链,即使被迁移虚拟机最终完成内存数据搬移,也无法在目的物理机恢复与对端的通信。

技术实现思路

[0008]本专利技术所要解决的技术问题在于,提供一种RDMA虚拟机热迁移的方法及装置,可
以快速且平滑地实现RDMA虚拟机热迁移,且提高了热迁移效率以及成功率。
[0009]为解决上述技术问题,作为本专利技术的一方面,提供一种RDMA虚拟机热迁移的方法,其至少包括如下步骤:
[0010]获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,源物理机的Host主机向RDMA网卡下发虚拟机热迁移同步命令;
[0011]源物理机的RDMA网卡停止向对端物理机的RDMA网卡发送新的数据报文,同时向对端物理机的RDMA网卡发送一热迁移控制报文;
[0012]对端物理机的RDMA网卡收到所述热迁移控制报文后,暂停向源物理机的RDMA网卡发送当前数据传输的后续的数据报文;
[0013]源物理机的RDMA网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;
[0014]源物理机把所述虚拟机对应的内存页表拷贝到目标物理机的内存区域。
[0015]其中,进一步包括:
[0016]在源物理机把虚拟机的内存页表全部拷贝到目标物理的内存区域后,关闭源物理机的相应虚拟机,启动目标物理机的相应虚拟机;
[0017]目标物理机RDMA网卡向对端物理机的RDMA网卡发送一重启控制报文;
[0018]对端物理机RDMA网卡收到所述重启控制报文后,重启当前数据传输,向目标物理机的RDMA网卡发送后续的数据报文。
[0019]相应地,本专利技术的另一方面还提供一种RDMA虚拟机热迁移的系统,其至少包括有源物理机、对端物理机以及目标物理机,其中:
[0020]所述源物理机,用于获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,控制其Host主机向RDMA网卡下发虚拟机热迁移同步命令;控制其RDMA网卡停止向对端物理机的RDMA网卡发送新的数据报文,同时向对端物理机的RDMA网卡发送一热迁移控制报文;控制其RDMA网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;将所述虚拟机对应的内存页表拷贝到目标物理机的内存区域;
[0021]对端物理机,用于在其RDMA网卡收到来自源物理机的热迁移控制报文后,暂停向源物理机的RDMA网卡发送当前数据传输的后续的数据报文;以及用于在收到来自目标物理机的重启控制报文后,重启当前数据传输,向目标物理机的RDMA网卡发送后续的数据报文;
[0022]目标物理机,用于在目标物理机的内存区域接收源物理机所拷贝的内存页表后,启动目标物理机中相应的虚拟机;控制目标物理机RDMA网卡向对端物理机的RDMA网卡发送一重启控制报文;并控制目标物理机与对端物理机之间的数据传送。
[0023]其中,进一步包括:
[0024]所述源物理机进一步用于在把虚拟机的内存页表全部拷贝到目标物理的内存区域后,关闭其上相应的虚拟机。
[0025]作为本专利技术的一方面,还提供一种源物理机,其包括有硬件层,在所述硬件层上运行有Host主机,在所述Host主机之上运行有至少一个虚拟机,所述硬件层进一步包括RDMA网卡以及内存区域;
[0026]其中,所述Host主机用于:
[0027]获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,向RDMA网卡下
发虚拟机热迁移同步命令;
[0028]控制源物理机的RDMA网卡停止向对端物理机的RDMA网卡发送新的数据报文,同时向对端物理机的RDMA网卡发送一热迁移控制报文;
[0029]控制源物理机的RDMA网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;
[0030]控制源物理机把虚拟机的内存页表拷贝到目标物理机的内存区域;
[0031]并在拷贝完成后,控制关闭源物理机上相应的虚拟机。
[0032]作为本专利技术的一方面,还提供一种对端物理机,其包括有硬件层,在所述硬件层上运行有Host主机,在所述Host主机之上运行有至少一个虚拟机,所述硬件层进一步包括RDMA网卡以及内存区域;
[0033]其中,所述RDMA网卡用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RDMA虚拟机热迁移的方法,其特征在于,至少包括如下步骤:获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,源物理机的Host主机向RDMA网卡下发虚拟机热迁移同步命令;源物理机的RDMA网卡停止向与被迁移虚拟机通信的对端物理机的RDMA网卡发送当前数据传输的后续数据报文,同时向所述对端物理机的RDMA网卡发送一热迁移控制报文;对端物理机的RDMA网卡收到所述热迁移控制报文后,暂停向源物理机的RDMA网卡发送当前数据传输的后续的数据报文;源物理机的RDMA网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;源物理机把所述虚拟机对应的内存页表拷贝到目标物理机的内存区域。2.如权利要求1所述的方法,其特征在于,进一步包括:在源物理机把虚拟机的内存页表全部拷贝到目标物理的内存区域后,关闭源物理机的相应虚拟机,启动目标物理机的相应虚拟机;目标物理机RDMA网卡向对端物理机的RDMA网卡发送一重启控制报文;对端物理机RDMA网卡收到所述重启控制报文后,重启当前数据传输,向目标物理机的RDMA网卡发送后续的数据报文。3.一种RDMA虚拟机热迁移的系统,其特征在于,至少包括有源物理机、对端物理机以及目标物理机,其中:所述源物理机,用于获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,控制其Host主机向RDMA网卡下发虚拟机热迁移同步命令;控制其RDMA网卡停止向对端物理机的RDMA网卡发送新的数据报文,同时向对端物理机的RDMA网卡发送一热迁移控制报文;控制其RDMA网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;将所述虚拟机对应的内存页表拷贝到目标物理机的内存区域;对端物理机,用于在其RDMA网卡收到来自源物理机的热迁移控制报文后,暂停向源物理机的RDMA网卡发送当前数据传输的后续的数据报文;以及用于在收到来自目标物理机的重启控制报文后,重启当前数据传输,向目标物理机的RDMA网卡发送后续的数据报文;目标物理机,用于在目标物理机的内存区域接收源物理机所拷贝的内存页表后,启动目标物理机中相应的虚拟机;控制目标物理机RDMA网卡向对端物理机的RDM...

【专利技术属性】
技术研发人员:韦奋
申请(专利权)人:深圳云豹智能有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1