虚拟机的调度方法、装置、芯片以及计算机可读存储介质与流程

专利2025-06-07  18


本技术涉及通信,特别涉及一种虚拟机的调度方法、装置、芯片以及计算机可读存储介质。


背景技术:

1、随着云计算时代的到来,对云服务器的数据处理的要求越来越高,目前,云服务器中配置有中央处理器(central processing unit,cpu)以及加速卡,cpu的部分计算任务可卸载到加速卡上,由加速卡执行这部分计算任务,使得云服务器的处理能力和内存可以更多的腾出来给租户的虚拟机(virtual machine,vm)使用。

2、以加速卡为加密卡为例,将cpu中的数据加密和数据解密功能卸载到加密卡上,将加密卡虚拟出多个虚拟功能(virtual function,vf)单元,每个vf单元与云服务器中的一个vm绑定,任一vm将数据加密/解密请求发送到绑定的vf单元的处理队列,以和绑定的vf单元通信,由加密卡以轮询的方式,处理多个vf单元的处理队列中的该数据加密/解密请求。

3、由于每个虚拟机只能与加速卡中绑定的vf单元通信,导致虚拟机与加速卡之间的通信方式不灵活。


技术实现思路

1、本技术实施例提供了一种虚拟机的调度方法、装置、芯片以及计算机可读存储介质,能够提高虚拟机与加速卡之间通信方式的灵活性。该技术方案如下:

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、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。


技术特征:

1.一种虚拟机的调度方法,其特征在于,所述方法应用于计算机设备,所述计算机设备中配置有至少一个加速卡、多个虚拟机以及多个线程,所述加速卡包括多个虚拟功能单元,所述虚拟机通过至少一个线程与至少一个虚拟功能单元通信;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述通信单元为所述虚拟功能单元,所述至少一种通信单元的负载量包括所述至少一个加速卡中各个虚拟功能单元的负载量,所述目标通信单元为所述虚拟功能单元;

3.根据权利要求1所述的方法,其特征在于,所述通信单元为所述线程,所述至少一种通信单元的负载量包括所述多个线程的负载量,所述目标通信单元为所述线程;

4.根据权利要求3所述的方法,其特征在于,所述为至少一个第二虚拟机中的目标虚拟机分配所述第二线程包括:

5.根据权利要求1所述的方法,其特征在于,所述通信单元为所述线程,所述至少一种资源的负载量包括所述多个线程的负载量,所述目标通信单元为所述线程;

6.根据权利要求5所述的方法,其特征在于,所述为至少一个第三虚拟机中的目标虚拟机分配所述第四线程包括:

7.根据权利要求1所述的方法,其特征在于,所述通信单元为所述线程,所述至少一种通信单元的负载量包括所述多个线程的负载量,所述目标通信单元为所述线程;

8.根据权利要求1所述的方法,其特征在于,所述通信单元为所述加速卡,所述至少一个加速卡包括多个加速卡,所述至少一种通信单元的负载量包括所述多个加速卡的负载量,所述目标通信单元为所述加速卡;

9.根据权利要求8所述的方法,其特征在于,所述为至少一个第五虚拟机中的目标虚拟机分配所述第二加速卡包括:

10.根据权利要求8或9所述的方法,其特征在于,所述为至少一个第五虚拟机中的目标虚拟机分配所述第二加速卡之后,所述方法还包括:

11.根据权利要求1所述的方法,其特征在于,所述通信单元为所述加速卡,所述至少一个加速卡包括多个加速卡,所述至少一种通信单元的负载量包括所述多个加速卡的负载量,所述目标通信单元为所述加速卡;

12.根据权利要求1所述的方法,其特征在于,所述通信单元为所述加速卡,所述至少一个加速卡包括多个加速卡,所述至少一种通信单元的负载量包括所述多个加速卡的负载量,所述目标通信单元为所述加速卡;

13.一种虚拟机的调度装置,其特征在于,所述装置应用于计算机设备,所述计算机设备中配置有至少一个加速卡、多个虚拟机以及多个线程,所述加速卡包括多个虚拟功能单元,所述虚拟机通过至少一个线程与至少一个虚拟功能单元通信;所述装置包括:

14.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于执行至少一条程序代码,使得所述芯片执行如权利要求1至权利要求12中任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由芯片中的处理器读取以使所述芯片执行如权利要求1至权利要求12中任一项所述的方法。


技术总结
本申请公开了一种虚拟机的调度方法、装置、芯片以及计算机可读存储介质,属于通信技术领域。本方法通过基于计算机设备的虚拟功能单元、线程以及加速卡中至少一种通信单元的负载量,为计算机设备中的目标虚拟机分配目标通信单元,将目标虚拟机调度到分配的目标通信单元,使得目标虚拟机与目标通信单元能够进行通信,由于能够为目标虚拟机分配目标通信单元,从而使得能够与目标虚拟机通信的虚拟功能单元并不固定,也就无需将目标虚拟机与固定的虚拟功能单元绑定,随着目标虚拟机在加速卡的不同通信单元之间进行调度,使得目标虚拟机能够与不同的虚拟功能单元灵活通信,从而提高了虚拟机与加速卡之间通信方式的灵活性。

技术研发人员:金鑫,徐新海
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/index.php/read-1820932.html

最新回复(0)