一种RDMA虚拟机热迁移的方法、系统及相应物理机与流程

文档序号:33023048发布日期:2023-01-20 19:00阅读:25来源:国知局
一种RDMA虚拟机热迁移的方法、系统及相应物理机与流程
一种rdma虚拟机热迁移的方法、系统及相应物理机
技术领域
1.本发明涉及数据存储技术领域,特别是涉及一种rdma虚拟机热迁移的方法、系统及相应物理机。


背景技术:

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


技术实现要素:

8.本发明所要解决的技术问题在于,提供一种rdma虚拟机热迁移的方法及装置,可
以快速且平滑地实现rdma虚拟机热迁移,且提高了热迁移效率以及成功率。
9.为解决上述技术问题,作为本发明的一方面,提供一种rdma虚拟机热迁移的方法,其至少包括如下步骤:
10.获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,源物理机的host主机向rdma网卡下发虚拟机热迁移同步命令;
11.源物理机的rdma网卡停止向与被迁移虚拟机通信的对端物理机的rdma网卡发送当前数据传输的后续数据报文,同时向所述对端物理机的rdma网卡发送第一扩展cnp报文;
12.对端物理机的rdma网卡收到所述第一扩展cnp报文后,对端物理机的rdma网卡中的拥塞控制单元将其数据发送速率降到零;
13.对端物理机rdma网卡在将数据发送速率降到零后,给源端物理机返回第一扩展cnp响应报文;
14.源物理机的rdma网卡在收到所述第一扩展cnp响应报文后,保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;
15.源物理机把所述虚拟机对应的内存页表拷贝到目标物理机的内存区域。
16.其中,进一步包括:
17.在源物理机把虚拟机的内存页表全部拷贝到目标物理的内存区域后,关闭源物理机的相应虚拟机,启动目标物理机的相应虚拟机;
18.目标物理机rdma网卡向对端物理机的rdma网卡发送第二扩展cnp报文;
19.对端物理机rdma网卡收到所述第二扩展cnp报文后,所述rdma网卡的拥塞控制单元恢复对端物理机rdma网卡的发送速率,向目标物理机的rdma网卡发送后续的数据报文。
20.作为本发明的另一方面,还提供一种rdma虚拟机热迁移的系统,其至少包括有源物理机、对端物理机以及目标物理机,其中:
21.所述源物理机,用于获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,控制其host主机向rdma网卡下发虚拟机热迁移同步命令;控制其rdma网卡停止向对端物理机的rdma网卡发送新的数据报文,同时向对端物理机的rdma网卡发送第一扩展cnp报文;在收到来自对端物理机的第一扩展cnp响应报文后,控制其rdma网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;将所述虚拟机对应的内存页表拷贝到目标物理机的内存区域;
22.对端物理机,用于在其rdma网卡收到来自源物理机的第一扩展cnp报文后,其rdma网卡中的拥塞控制单元将其数据发送速率降到零;以及用于在收到来自目标物理机的第二扩展cnp报文后,其rdma网卡的拥塞控制单元恢复对端物理机rdma网卡的发送速率,向目标物理机的rdma网卡发送后续的数据报文;
23.目标物理机,用于在目标物理机的内存区域接收源物理机所拷贝的内存页表后,启动目标物理机中相应的虚拟机;控制目标物理机rdma网卡向对端物理机的rdma网卡发送第二扩展cnp报文;并控制目标物理机与对端物理机之间的数据传送。
24.其中,进一步包括:
25.所述源物理机进一步用于在把虚拟机的内存页表全部拷贝到目标物理的内存区域后,关闭其上相应的虚拟机。
26.作为本发明的又一方面,还提供一种源物理机,其包括有硬件层,在所述硬件层上
运行有host主机,在所述host主机之上运行有至少一个虚拟机,所述硬件层进一步包括rdma网卡以及内存区域,所述rdma网卡中包含有拥塞控制单元;
27.其中,所述host主机用于:
28.获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,向rdma网卡下发虚拟机热迁移同步命令;
29.控制源物理机的rdma网卡停止向对端物理机的rdma网卡发送新的数据报文,同时向对端物理机的rdma网卡发送第一扩展cnp报文;
30.在收到来自对端物理机的第一扩展cnp响应报文后,控制源物理机的rdma网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;
31.控制源物理机把虚拟机的内存页表拷贝到目标物理机的内存区域;
32.并在拷贝完成后,控制关闭源物理机上相应的虚拟机。
33.作为本发明的又一方面,还提供一种对端物理机,其包括有硬件层,在所述硬件层上运行有host主机,在所述host主机之上运行有至少一个虚拟机,所述硬件层进一步包括rdma网卡以及内存区域,所述rdma网卡中包含有拥塞控制单元;
34.其中,所述rdma网卡用于:
35.在收到来自源物理机的第一扩展cnp报文后,控制rdma网卡中的拥塞控制单元将其数据发送速率降到零;
36.在收到来自目标物理机的第二扩展cnp报文后,控制rdma网卡的拥塞控制单元恢复对端物理机rdma网卡的发送速率,向目标物理机的rdma网卡发送后续的数据报文。
37.作为本发明的又一方面,还提供一种目标物理机,其包括有硬件层,在所述硬件层上运行有host主机,在所述host主机之上运行有至少一个虚拟机,所述硬件层进一步包括rdma网卡以及内存区域;
38.其中,所述host主机用于:
39.在目标物理机的内存区域接收源物理机所拷贝的内存页表后,启动目标物理机的虚拟机;
40.控制目标物理机rdma网卡向对端物理机的rdma网卡发送第二扩展cnp报文;
41.控制目标物理机与对端物理机之间的数据传送。
42.作为本发明的又一方面,还提供一种rdma虚拟机热迁移的系统,其包括:多台物理机,所述多台物理机至少包括:如前述的源物理机,如前述的对端物理机;以及如前述的目标物理机。
43.实施本发明实施例,具有如下的有益效果:
44.本发明提供一种rdma虚拟机热迁移的方法、系统及相应物理机,通过使用cnp报文中的保留字段,扩展cnp报文的定义的方式,在源物理机的虚拟机启动热迁移时,采用第一扩展cnp报文通知与被迁移虚拟机通信的对端物理机rdma网卡利用其拥塞控制单元把发送流量降到零,实现暂停对端物理机rdma网卡发送新的数据报文的目的,从而达到提高热迁移的效率,缩短热迁移的时间,以及提高热迁移的成功率。
45.在热迁移时,可以使源物理机和对端物理机之间网络流量暂停,源物理机的rdma网卡不再产生新的脏页,源物理机的系统只需要执行一次rdma硬件缓存和系统内存之间的数据同步操作就可以执行最后一轮拷贝,无需不断迭代同步和拷贝,从而大大提高迁移效
率。
46.同时,当最后一轮拷贝完成,启动目标物理机的虚拟机运行,通过目标物理机的rdma网卡给与源物理机被迁移虚拟机通信的对端物理机发送一个第二扩展cnp报文,通知对端物理机rdma网卡利用其拥塞控制单元恢复数据发送速率,重启数据包发送的流程,可以防止现有技术中断链的风险。
47.综上,本发明通过在rdma通信两端链接之间增加一种控制信息通道的方式,通过利用cnp扩展报文,在源物理机的虚拟机启动热迁移时,通知与被迁移虚拟机通信的对端被迁移虚拟机的状态,通知对端暂停发送新的数据报文,从而达到提高热迁移的效率,缩短热迁移的时间,以及提高热迁移的成功率。
附图说明
48.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。
49.图1为本发明提供的一种rdma虚拟机热迁移的方法的一个实施例的主流程示意图;
50.图2为图1的一种rdma虚拟机热迁移的系统的一个实施例的结构示意图。
具体实施方式
51.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
52.如图1所示,示出了本发明提供的一种rdma虚拟机热迁移的方法的一个实施例的主流程示意图。一并结合图2所示,在本实施例中,所述方法应用于图2所示的应用架构中,其中图2中的序号1至10大致示出了本发明方法的流程的前后顺序。在本实施例中,所述方法至少包括如下步骤:
53.步骤s10,获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,源物理机的host主机向rdma网卡下发虚拟机热迁移同步命令;可以理解的是,在一个具体的例子中,所述命令中会携带待迁移的虚拟机标识信息、目标物理机的虚拟机标识信息等内容;
54.步骤s11,源物理机的rdma网卡停止向与被迁移虚拟机通知的对端物理机的rdma网卡发送新的数据报文,同时向对端物理机的rdma网卡发送第一扩展cnp报文(如cnp_pause报文);在此步骤中,源物理机的rdma网卡通过其拥塞控制单元停止向对端物理机的rdma网卡发送当前数据传输中的后续的数据报文;
55.步骤s12,对端物理机的rdma网卡收到所述第一扩展cnp报文后,对端物理机的rdma网卡中的拥塞控制单元将其数据发送速率降到零;并给源端物理机返回第一扩展cnp响应报文(cnp_ack报文);
56.源物理机的rdma网卡在收到所述第一扩展cnp响应报文后,源物理机的rdma网卡流量暂停,并保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;
57.步骤s14,源物理机把所述虚拟机对应的内存页表拷贝到目标物理机的内存区域。
58.其中,所述方法进一步包括如下步骤:
59.步骤s15,在源物理机把虚拟机的内存页表全部拷贝到目标物理机的内存区域后,关闭源物理机的相应虚拟机,启动目标物理机的相应虚拟机;
60.步骤s16,目标物理机rdma网卡向对端物理机的rdma网卡发送第二扩展cnp报文(如cnp_resume报文);
61.步骤s17,对端物理机rdma网卡收到所述第二扩展cnp报文后,所述rdma网卡的拥塞控制单元恢复对端物理机rdma网卡的发送速率,重启当前数据传输,向目标物理机的rdma网卡发送后续的数据报文。
62.可以理解的是,本发明实施例的主要创新点是利用cnp报文的保留字段,扩展cnp报文的功能,使源物理机可以通过cnp报文通知对端物理rdma网卡暂停和恢复数据报文发送流量,从而达到提高rdma热迁移效率的目的。
63.在通常的应用场景下,当数据报文在网络中检测到拥塞时,由接收数据报文的网卡产生cnp报文,通知数据报文的发送网卡降低数据报文的发送速率。当发送网卡收到cnp报文时,会使用dcqcn指定的量化算法降低发送速率。如下图所示,假设对端物理机网卡发送数据报文给源物理机网卡,在网络上检测到拥塞,于是源物理机网卡产生一个cnp报文给对端物理机网卡。对端物理机网卡收到cnp报文后会降低数据报文的发送速率。
64.为了跟本发明实施例的扩展cnp报文区分开,我们把通常应用场景下的cnp报文称为cnp.normal,本发明实施例涉及的扩展cnp报文称为cnp.extend。在通常应用场景下,cnp.normal由接收到带拥塞标识的数据报文触发产生。在本发明中cnp.extend由源物理机网卡主动产生,不需要依赖于接收到数据报文。当对端物理机网卡接收到cnp.normal时,会使用dcqcn指定的量化算法降低发送速率,但在速率降低到零之前对端物理机网卡仍然可以给源物理机网卡发送数据包。在本发明实施例中当对端物理机网卡接收到cnp.extend时,会立即把发送速率降低到零(或者恢复到初始发送速率),所以收到cnp.extend后对端物理机网卡无法再发出新的数据报文。
65.从原理上来讲,cnp.normal和cnp.extend的机制都是一样的,都是通过dcqcn的量化算法来达到控制数据报文的发送速率的目的,只需要修改一下dcqcn的量化算法就可以支持cnp.extend。而且cnp.extend的产生也可以复用cnp.normal的通路。所以对于rdma通信两端网卡的数据报文处理流程没有任何影响,也不需要rdma通信两端网卡的上层应用软件感知,对现有的rdma网卡影响非常小。
66.重新结合图2所示,本发明实施例的另一方面还提供了一种rdma虚拟机热迁移的系统的,其至少包括有多台物理机,所述多台物理机至少包括源物理机、对端物理机以及目标物理机,其中:
67.所述源物理机,用于获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,控制其host主机向rdma网卡下发虚拟机热迁移同步命令;控制其rdma网卡停止向对端物理机的rdma网卡发送新的数据报文,同时向对端物理机的rdma网卡发送第一扩展cnp报文;在收到来自对端物理机的第一扩展cnp响应报文后,控制其rdma网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;将所述虚拟机对应的内存页表拷贝到目标物理机的内存区域;所述源物理机进一步用于在把虚拟机的内存页表全
部拷贝到目标物理的内存区域后,关闭其上相应的虚拟机。
68.更具体地,所述源物理机,其包括有硬件层,在所述硬件层上运行有host主机,在所述host主机之上运行有至少一个虚拟机(vm),所述硬件层进一步包括rdma网卡以及内存区域,所述rdma网卡中包含有拥塞控制单元以及发送单元;在一个具体的例子中,所述源物理机的上述功能通过其中的host主机来实现。
69.具体地,在一个例子中,所述源物理机中的host主机用于:
70.获取对源物理机中被迁移虚拟机的内存数据进行迁移的迁移请求,向rdma网卡下发虚拟机热迁移同步命令;
71.控制源物理机的rdma网卡停止向对端物理机的rdma网卡发送新的数据报文,同时向对端物理机的rdma网卡发送第一扩展cnp报文;
72.在收到来自对端物理机的第一扩展cnp响应报文后,控制源物理机的rdma网卡保持其内缓存的表项数据稳定,并将缓存的表项数据同步到源物理机的内存区域;
73.控制源物理机把虚拟机的内存页表拷贝到目标物理机的内存区域;
74.并在拷贝完成后,控制关闭源物理机上相应的虚拟机。
75.对端物理机,用于在其rdma网卡收到来自源物理机的第一扩展cnp报文后,控制rdma网卡中的拥塞控制单元将其数据发送速率降到零;以及用于在收到来自目标物理机的第二扩展cnp报文后,控制rdma网卡的拥塞控制单元恢复对端物理机rdma网卡的发送速率,重启当前数据传输,向目标物理机的rdma网卡发送后续的数据报文;
76.更具体地,所述对端物理机,其包括有硬件层,在所述硬件层上运行有host主机,在所述host主机之上运行有至少一个虚拟机(vm),所述硬件层进一步包括rdma网卡以及内存区域,所述rdma网卡中包含有拥塞控制单元以及发送单元;在一个具体的例子中,所述对端物理机的上述功能可以通过其中的所述rdma网卡自动实现。
77.具体地,在一个例子中,所述对端物理机中的rdma网卡用于:
78.在收到来自源物理机的第一扩展cnp报文后,控制rdma网卡中的拥塞控制单元将其数据发送速率降到零;
79.在收到来自目标物理机的第二扩展cnp报文后,控制rdma网卡的拥塞控制单元恢复对端物理机rdma网卡的发送速率,向目标物理机的rdma网卡发送后续的数据报文。
80.目标物理机,用于在目标物理机的内存区域接收源物理机所拷贝的内存页表后,启动目标物理机中相应的虚拟机;控制目标物理机rdma网卡向对端物理机的rdma网卡发送第二扩展cnp报文;并控制目标物理机与对端物理机之间的数据传送。
81.更具体地,所述目标物理机,其包括有硬件层,在所述硬件层上运行有host主机,在所述host主机之上运行有至少一个虚拟机(vm),所述硬件层进一步包括rdma网卡以及内存区域,所述rdma网卡中包含有拥塞控制单元以及发送单元;在一个具体的例子中,所述目标物理机的上述功能通过其中的host主机来实现。
82.在一个例子中,所述目标物理机中的host主机用于:
83.在目标物理机的内存区域接收源物理机所拷贝的内存页表后,启动目标物理机的虚拟机;
84.控制目标物理机rdma网卡向对端物理机的rdma网卡发送第二扩展cnp报文;
85.控制目标物理机与对端物理机之间的数据传送。
86.更多的细节,可以参考并结合前述对图1的描述,在此不进行赘述。
87.实施本发明实施例,具有如下的有益效果:
88.本发明实施例提供一种rdma虚拟机热迁移的方法、系统及相应物理机,通过使用cnp报文中的保留字段,扩展cnp报文的定义的方式,在源物理机的虚拟机启动热迁移时,采用第一扩展cnp报文通知与被迁移虚拟机通信的对端物理机rdma网卡利用其拥塞控制单元把发送流量降到零,实现暂停对端物理机rdma网卡发送新的数据报文的目的,从而达到提高热迁移的效率,缩短热迁移的时间,以及提高热迁移的成功率。
89.在热迁移时,可以使源物理机和对端物理机之间网络流量暂停,源物理机的rdma网卡不再产生新的脏页,源物理机的系统只需要执行一次rdma硬件缓存和系统内存之间的数据同步操作就可以执行最后一轮拷贝,无需不断迭代同步和拷贝,从而大大提高迁移效率。
90.同时,当最后一轮拷贝完成,启动目标物理机的虚拟机运行,通过目标物理机的rdma网卡给与源物理机被迁移虚拟机通信的对端物理机发送一个第二扩展cnp报文,通知对端物理机rdma网卡利用其拥塞控制单元恢复数据发送速率,重启数据包发送的流程,可以防止现有技术中断链的风险。
91.综上,本发明实施例通过在rdma通信两端链接之间增加一种控制信息通道的方式,通过利用cnp扩展报文,在源物理机的虚拟机启动热迁移时,通知与被迁移虚拟机通信的对端被迁移虚拟机的状态,通知对端暂停发送新的数据报文,从而达到提高热迁移的效率,缩短热迁移的时间,以及提高热迁移的成功率。
92.本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
93.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
94.以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1