虚拟机迁移方法、调度系统及相关产品与流程

摘要: 本技术涉及云计算领域,尤其涉及一种虚拟机迁移方法、调度系统及相关产品。背景技术:1、随着服务器上中央处理器(centralprocessingunit,cpu)...
虚拟机迁移方法、调度系统及相关产品与流程

本技术涉及云计算领域,尤其涉及一种虚拟机迁移方法、调度系统及相关产品。

背景技术:

1、随着服务器上中央处理器(centralprocessingunit,cpu)核数的不断增加,传统的对称多处理(symmetric multi-processing,smp)架构下cpu和内存控制器之间的总线成为了系统性能的瓶颈。为此,服务器可以采用非一致内存访问(non-uniform memoryaccess,numa)架构。

2、在numa架构下,服务器包括多个numa节点,每个numa节点通常由一个物理cpu和所属的本地内存构成,每个numa节点可以承载一个或多个虚拟机。在实际应用中,服务器内的不同numa节点上承载的虚拟机可能不同,这就导致服务器内各numa节点的负载不尽相同,比如部分numa节点的负载重,部分numa节点的负载轻。负载重的numa节点上可能出现资源热点,进而影响numa节点上虚拟机的正常运行。

3、针对上述问题,当前可以通过跨主机迁移的方式,将上述出现资源热点的numa节点上的虚拟机迁移到其他服务器上,以缓解该numa节点的资源热点情况。举例说明,当服务器1中的numa节点1出现资源热点时,可以通过服务器1与服务器2之间的网络,将numa节点1上的部分虚拟机迁移至服务器2的numa节点2。但是,由于服务器1与服务器2之间的网络还需要实现服务器1与服务器2之间的正常业务通信,因此当迁移数据量较大时,使用上述方法会增加迁移时长,进而影响被迁移虚拟机上运行的业务。

技术实现思路

1、本技术提供了一种虚拟机迁移方法、调度系统及相关产品,能够提高虚拟机迁移效率。

2、第一方面,本技术提供了一种虚拟机迁移方法。该方法应用于调度系统。具体来说,第一服务器包括多个numa节点,每个numa节点上承载有一个或多个虚拟机。当调度系统检测到第一服务器上的第一numa节点不能够满足第一虚拟机的正常运行,或者第一numa节点的cpu资源和内存资源分配不均衡时,该调度系统会迁移第一numa节点上的一个或多个虚拟机到第一服务器上的第二numa节点。

3、可以理解,在第一numa节点不能够满足第一虚拟机的正常运行时,通过将第一numa节点上的一个或多个虚拟机迁移到第二numa节点上,不仅可以使得上述已迁移的虚拟机能够正常运行,还可以减少第一numa节点的资源占用,使得第一numa节点上的其他虚拟机能够正常运行。在第一numa节点的cpu资源和内存资源分配不均衡时,通过将第一numa节点上的一个或多个虚拟机迁移到第二numa节点上,可以使得第一numa节点的cpu资源和内存资源的分配达到均衡,减少第一numa节点的碎片资源,进而减少第一服务器的碎片资源,减少第一服务器的资源浪费及性能下降。另一方面,相较于跨主机迁移,在第一服务器内的numa节点间进行虚拟机的迁移,具有更高的迁移效率。

4、在一种可能的实现方式中,调度系统检测到第一服务器上的第一numa节点不能够满足第一虚拟机的正常运行,包括以下一种或多种情况:其一,当第一numa节点的cpu资源和/或内存资源热点时,确定第一numa节点不能够满足第一虚拟机的正常运行,这里的资源热点是指资源因过度集中使用而使得第一numa节点的性能出现瓶颈,进而影响第一numa节点上虚拟机的正常运行。其二,当第一虚拟机上运行的应用的服务质量(quality ofservice,qos)劣化时,确定第一numa节点不能够满足所述第一虚拟机的正常运行,这里应用的qos劣化是指应用的qos低于用户对应用的qos的最低要求,应用的qos是指虚拟机为用户提供应用服务时的延迟和等待时间。

5、在一种可能的实现方式中,调度系统迁移第一numa节点上的一个或多个虚拟机到第一服务器上的第二numa节点,包括:调度系统迁移第一numa节点上的第二虚拟机到第二numa节点,其中,第二虚拟机的优先级小于预设优先级。

6、虚拟机的优先级由用户基于虚拟机上运行的应用所设置,一般情况下,虚拟机的优先级越高,说明用户对虚拟机上运行的应用的服务体验的要求越高,也就是说,需要优先保障该虚拟机的正常运行。上述实现方式中,待迁移的第二虚拟机的优先级小于预设优先级,意味着用户对第二虚拟机上运行的应用的服务体验的要求相对较低,用户无法感知到(或者可以接受)迁移第二虚拟机对服务体验造成的影响。另一方面,对于第一numa节点上承载的、优先级大于预设优先级的虚拟机而言,通过迁移第二虚拟机,可以快速恢复上述优先级大于预设优先级的虚拟机的正常运行。

7、在一种可能的实现方式中,调度系统可通过以下步骤迁移第一numa节点上的第二虚拟机到第二numa节点:调度系统在第二numa节点上创建第三虚拟机,并建立第二虚拟机与第三虚拟机之间的本地通信通道,之后通过上述本地通信通道,将第二虚拟机的状态和数据迁移至第三虚拟机。

8、上述实现方式中,本地通信通道可以是例如unix socket通道,因此通过第二虚拟机与第三虚拟机之间的本地通信通道实现第二虚拟机的迁移,减少了网络带宽的消耗,提高了第二虚拟机的迁移效率。

9、在一种可能的实现方式中,第二虚拟机与第一服务器上插置的一个或多个直通设备绑定,这里的直通设备可以是通过外设部件互连标准(peripheral componentinterconnect,pci)插槽或快速外部组件互联标准(peripheral component interconnectexpress,pcie)插槽等插置到第一服务器上的设备,例如,网卡、硬盘、图形处理器(graphicsprocessingunit,gpu)、神经网络处理器(neural network processing unit,npu)等一种或多种。

10、对于第二虚拟机上绑定(也可称为“挂载”)的直通设备(以下称为“虚拟直通设备”),调度系统可通过以下步骤将上述虚拟直通设备迁移到第三虚拟机:调度系统将虚拟直通设备从第二虚拟机上卸载,并将虚拟直通设备重新挂载到第三虚拟机上。由此,便可以将实现虚拟直通设备的迁移,整个过程无需为第三虚拟机创建新的虚拟直通设备,提高了第二虚拟机的迁移效率。

11、在一种可能的实现方式中,调度系统在迁移第一numa节点上的一个或多个虚拟机到第二numa节点前,还根据第一服务器上各numa节点的负载、各numa节点上承载的虚拟机的优先级、迁移后第一服务器上存在的碎片资源中的至少一种,从第一服务器包含的多个numa节点中选择第二numa节点。

12、实施上述实现方式,可以尽量选择负载小、未承载优先级大于预设优先级的虚拟机、迁移后第一服务器上存在的碎片资源少的numa节点作为第二numa节点。如此,迁移后不会造成第二numa节点上的虚拟机无法正常运行,也不会造成第一服务器上的碎片资源增多。

13、在一种可能的实现方式中,调度系统在迁移第一numa节点上的一个或多个虚拟机到第二numa节点前,还确定是否符合本地迁移需求。其中,当符合本地迁移需求时,调度系统迁移第一numa节点上的一个或虚拟机到第二numa节点。当不符合本地迁移需求时,调度系统可以迁移第一numa节点上的一个或多个虚拟机到第二服务器的numa节点上,也可以迁移第一numa节点上的一个或虚拟机到第二numa节点。

14、上述本地迁移需求包括以下一个或多个:第一服务器包括能够满足一个或多个虚拟机正常运行的numa节点;或者,第一numa节点上承载有一个或多个重要虚拟机,重要虚拟机为优先级大于所述预设优先级的虚拟机;或者,上述一个或多个重要虚拟机的qos劣化。

15、实施上述实现方式,调度系统可优先在第一服务器内的numa节点间进行虚拟机迁移,由于虚拟机的本地迁移效率高,因此可更快地实现虚拟机的迁移。

16、第二方面,本技术提供了一种调度系统。该调度系统用于实现对第一服务器上虚拟机的迁移的管理。具体来说,第一服务器包括多个numa节点,每个numa节点上承载有一个或多个虚拟机。调度系统包括第一调度模块。第一调度模块用于检测到第一服务器上的第一numa节点不能够满足第一虚拟机的正常运行,或者第一numa节点的cpu资源和内存资源分配不均衡,之后迁移第一numa节点上的一个或多个虚拟机到第一服务器上的第二numa节点。

17、在一种可能的实现方式中,第一调度模块用于在第一numa节点的cpu资源和/或内存资源热点时,确定第一numa节点不能够满足第一虚拟机的正常运行,这里的资源热点是指资源因过度集中使用而使得第一numa节点的性能出现瓶颈,进而影响第一numa节点上虚拟机的正常运行。

18、在另一种可能的实现方式中,第一调度模块用于在第一虚拟机上运行的应用的服务质量qos劣化时,确定第一numa节点不能够满足所述第一虚拟机的正常运行,这里应用的qos劣化是指应用的qos低于用户对应用的qos的最低要求,应用的qos是指虚拟机为用户提供应用服务时的延迟和等待时间。

19、在一种可能的实现方式中,第一调度模块用于迁移第一numa节点上的第二虚拟机到第二numa节点,其中,第二虚拟机的优先级小于预设优先级。

20、在一种可能的实现方式中,第一调度模块用于在第二numa节点上创建第三虚拟机,并建立第二虚拟机与第三虚拟机之间的本地通信通道,之后通过上述本地通信通道,将第二虚拟机的状态和数据迁移至第三虚拟机。

21、在一种可能的实现方式中,第二虚拟机与第一服务器上插置的一个或多个直通设备绑定,这里的直通设备可以是pci)插槽或pcie插槽等插置到第一服务器上的设备,例如,网卡、硬盘、gpu、npu等一种或多种。对于第二虚拟机上绑定(也可称为“挂载”)的直通设备(以下称为“虚拟直通设备”),第一调度模块用于将虚拟直通设备从第二虚拟机上卸载,并将虚拟直通设备重新挂载到第三虚拟机上。由此,便可以将实现虚拟直通设备的迁移。

22、在一种可能的实现方式中,第一调度模块还用于根据第一服务器上各numa节点的负载、各numa节点上承载的虚拟机的优先级、迁移后第一服务器上存在的碎片资源中的至少一种,从第一服务器包含的多个numa节点中选择第二numa节点。

23、在一种可能的实现方式中,第一调度模块用于确定符合本地迁移需求,当符合本地迁移需求时,迁移第一numa节点上的一个或虚拟机到第二numa节点。可选地,当不符合本地迁移需求时,第一调度模块也可以迁移第一numa节点上的一个或虚拟机到第二numa节点。

24、上述本地迁移需求包括以下一个或多个:第一服务器包括能够满足一个或多个虚拟机正常运行的numa节点;或者,第一numa节点上承载有一个或多个重要虚拟机,重要虚拟机为优先级大于所述预设优先级的虚拟机;或者,上述一个或多个重要虚拟机的qos劣化。

25、在一种可能的实现方式中,调度系统还包括第二调度模块。第二调度模块在不符合本地迁移需求时,迁移第一numa节点上的一个或多个虚拟机到第二服务器的numa节点上。

26、第三方面,本技术提供了一种计算设备。该计算设备包括处理器和存储器,处理器用于执行存储器中存储的指令,以使得上述计算设备执行前述第一方面及其任一种实现方式所描述的部分或全部方法。

27、第四方面,本技术提供了一种计算设备集群。该计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器。上述至少一个计算设备的处理器用于执行上述至少一个计算设备的存储器中存储的指令,以使得上述计算设备集群执行前述第一方面及其任一种实现方式所描述的部分或全部方法。

28、第五方面,本技术提供了一种包含指令的计算机程序产品。该计算机程序产品可以是包含指令的、能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当该计算机程序产品在计算设备上运行时,使得该计算设备执行前述第一方面及其任意一种实现方式所描述的部分或全部方法。

29、第六方面,本技术提供了一种计算机可读存储介质。该计算机存储介质包括计算机程序指令,当所述计算机程序指令被计算设备执行时,使得该计算设备执行前述第一方面及其任意一种实现方式所描述的部分或全部方法。