CN115858103B - 用于开放堆栈架构虚拟机热迁移的方法、设备及介质 - Google Patents
用于开放堆栈架构虚拟机热迁移的方法、设备及介质 Download PDFInfo
- Publication number
- CN115858103B CN115858103B CN202310167642.XA CN202310167642A CN115858103B CN 115858103 B CN115858103 B CN 115858103B CN 202310167642 A CN202310167642 A CN 202310167642A CN 115858103 B CN115858103 B CN 115858103B
- Authority
- CN
- China
- Prior art keywords
- computing node
- hardware acceleration
- virtualized hardware
- virtual machine
- computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请提供用于开放堆栈架构虚拟机之间热迁移的方法、设备及介质。方法包括:提供具有开放堆栈架构的云计算平台,其包括多个计算节点;针对每一个节点,通过数据处理器虚拟化得到虚拟机,其包括多个虚拟化硬件加速设备,这些通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与前端一起构成用户态控制面通路用于数据面直通;针对第一节点和第二节点之间的热迁移,分别创建第一和第二虚拟化硬件加速用户类型网络端口,分配虚拟功能资源给虚拟化硬件加速用户类型网络端口和指定虚拟机的网络端口为虚拟化硬件加速用户类型网络端口;基于虚拟机和虚拟化硬件加速用户类型网络端口进行热迁移。如此提升网络数据处理性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及用于开放堆栈架构虚拟机热迁移的方法、设备及介质。
背景技术
随着各种虚拟化技术的发展例如处理器虚拟化、内存虚拟化、中断虚拟化、设备虚拟化等,在云计算的各种应用场景下例如公有云、私有云以及混合云,广泛地采用了各种虚拟化架构例如virtio架构来提高网路数据性能。但是,对于半虚拟化架构和半虚拟化设备例如虚拟宿主机数据路径加速(vhost Data Path Acceleration,VDPA)设备也叫虚拟化硬件加速设备,virtio架构包括内核态VDPA和用户态VDPA,其中结合Openstack云计算平台的virtio架构仅支持内核态部署的VDPA,因此在提升虚拟机网络数据处理性能和支持虚拟机的热迁移特性等方面受到限制。
综上所述,目前需要解决的问题是如何提升虚拟机网络数据处理性能和支持虚拟机的热迁移特性。
发明内容
本申请实施例提供了用于开放堆栈架构虚拟机热迁移的方法、设备及介质,用于解决现有技术中存在的问题。
第一方面,本申请提供了一种用于开放堆栈架构虚拟机热迁移的方法。所述方法包括:提供具有开放堆栈架构的云计算平台,所述云计算平台包括多个计算节点,针对所述多个计算节点中的每一个计算节点,该计算节点通过部署在该计算节点的数据处理器虚拟化得到虚拟机,该虚拟机包括多个虚拟化硬件加速设备,所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,基于所述用户态控制面通路实现该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通;针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口,以及分配所述第二计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第二虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口;基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。
通过本申请的第一方面,基于所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,实现了用户态下的加速有利于提升虚拟机网络数据处理性能,并且基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口进行所述第一计算节点和所述第二计算节点之间的热迁移,实现了支持虚拟机的热迁移特性,有助于克服原本只支持内核态部署的VDPA的虚拟化架构如virtio架构所带来的限制。
在本申请的第一方面的一种可能的实现方式中,所述多个虚拟化硬件加速设备具有单根输入输出虚拟化特性,所述多个虚拟化硬件加速设备分别根据各自的单根输入输出虚拟化特性虚拟得到多个虚拟功能设备,所述多个虚拟化硬件加速设备中的每一个虚拟化硬件加速设备虚拟得到的多个虚拟功能设备共享该虚拟化硬件加速设备的外围器件互联资源。
在本申请的第一方面的一种可能的实现方式中,进行所述第一计算节点和所述第二计算节点之间的热迁移,包括:指定所述第一计算节点所包括的虚拟功能设备中的一个虚拟功能设备为管理口设备和其它虚拟功能设备为非管理口设备,所述管理口设备用于记录脏页,所述非管理口设备用于所述第一计算节点的虚拟机和所述第二计算节点的虚拟机之间的直通。
在本申请的第一方面的一种可能的实现方式中,所述第一计算节点是源节点,所述第二计算节点是目的节点。
在本申请的第一方面的一种可能的实现方式中,所述方法还包括:开发所述第一计算节点的开放堆栈热迁移代码用于使得所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口支持所述第一计算节点和所述第二计算节点之间的热迁移;和开发所述第二计算节点的开放堆栈热迁移代码用于使得所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口支持所述第一计算节点和所述第二计算节点之间的热迁移。
在本申请的第一方面的一种可能的实现方式中,所述第一虚拟化硬件加速用户类型网络端口通过所述第一计算节点的开放堆栈网络服务组件创建从而使得所述开放堆栈架构管理所述第一计算节点的虚拟化硬件加速用户类型网络资源,所述第二虚拟化硬件加速用户类型网络端口通过所述第二计算节点的开放堆栈网络服务组件创建从而使得所述开放堆栈架构管理所述第二计算节点的虚拟化硬件加速用户类型网络资源。
在本申请的第一方面的一种可能的实现方式中,所述第一虚拟化硬件加速用户类型网络端口基于所述第一计算节点的开放堆栈计算服务组件的支持作为所述第一计算节点的虚拟机的网络端口,所述第二虚拟化硬件加速用户类型网络端口基于所述第二计算节点的开放堆栈计算服务组件的支持作为所述第二计算节点的虚拟机的网络端口。
在本申请的第一方面的一种可能的实现方式中,所述第一计算节点的开放堆栈网络服务组件和所述第一计算节点的开放堆栈计算服务组件是基于对所述第一计算节点的开放堆栈架构的扩展,所述第二计算节点的开放堆栈网络服务组件和所述第二计算节点的开放堆栈计算服务组件是基于对所述第二计算节点的开放堆栈架构的扩展。
在本申请的第一方面的一种可能的实现方式中,所述第一计算节点的开放堆栈计算服务组件还用于所述第一计算节点的虚拟机进行创建、删除、挂起、恢复和暂停操作,所述第二计算节点的开放堆栈计算服务组件还用于所述第二计算节点的虚拟机进行创建、删除、挂起、恢复和暂停操作。
在本申请的第一方面的一种可能的实现方式中,针对所述多个计算节点中的每一个计算节点,该计算节点的虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成该计算节点的虚拟机所包括的虚拟化硬件加速设备的用户态控制面通路用于实现虚拟化输入输出特性协商。
在本申请的第一方面的一种可能的实现方式中,针对所述多个计算节点中的每一个计算节点,该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通用于该计算节点的该虚拟机的网络数据包处理。
在本申请的第一方面的一种可能的实现方式中,针对所述多个计算节点中的每一个计算节点,该计算节点的该虚拟机所包括的虚拟化硬件加速设备基于该计算节点的用户态数据平面开发套件框架来通过该用户态虚拟化硬件加速驱动被加载。
在本申请的第一方面的一种可能的实现方式中,针对所述多个计算节点中的每一个计算节点,该计算节点的该虚拟机所包括的虚拟化硬件加速设备的用户态控制面通路运行在该计算节点的用户态数据平面开发套件框架和多层虚拟交换机的用户态。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第五方面,本申请提供了一种云计算平台。所述云计算平台具有开放堆栈架构和多个计算节点。其中,针对所述多个计算节点中的每一个计算节点,该计算节点通过部署在该计算节点的数据处理器虚拟化得到虚拟机,该虚拟机包括多个虚拟化硬件加速设备,所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,基于所述用户态控制面通路实现该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通。所述云计算平台:针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口,以及分配所述第二计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第二虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口。所述云计算平台:基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种开放堆栈架构虚拟机热迁移的应用场景示意图;
图2为本申请实施例提供的一种用于开放堆栈架构虚拟机热迁移的方法流程图;
图3为本申请实施例提供的一种云计算平台的示意图;
图4为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
本申请实施例提供了一种用于开放堆栈架构虚拟机热迁移的方法、设备及介质,用于解决现有技术中存在的问题。其中,本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种开放堆栈架构虚拟机热迁移的应用场景示意图。如图1所示,开放堆栈(openstack)架构包括控制节点102用于建立虚拟机、分配存储,还包括两个计算节点,计算节点110和计算节点112,用于运行虚拟机,还包括网络节点120用于对外对内网络通信以及存储节点130用于提供虚拟机的额外存储管理。其中,控制节点102的基础服务包括开放堆栈计算服务组件也叫nova模块用于部署虚拟服务器和计算管理服务。应当理解的是,图1所示的开放堆栈架构的节点结构和数量仅为示例性,在其它实施例中可以包括任意数量的计算节点和其它类型的节点等,在此不做具体限定。图1还示出了在计算节点110和计算节点112之间进行热迁移(live migration)。这里,热迁移也叫动态迁移、实时迁移,指的是,通过虚拟机保存和恢复相关的技术,将整个虚拟机的运行状态完整保存下来从而可以快速恢复到原有硬件平台甚至是不同硬件平台上,并且实现在恢复之后保持虚拟机平滑运行。图1中,在计算节点110上的虚拟机要热迁移到计算节点112上,也就是说,原本在计算节点110的硬件平台上的虚拟机需要被保存状态并在计算节点112的硬件平台上平滑运行。其中,计算节点110作为原有硬件平台也叫源节点,计算节点112作为新的硬件平台也叫目的节点。从源节点向目的节点进行热迁移之前,一般需要检查特定条件,例如检查传递的参数是否足够和正确,确定目的节点的物理主机的状态,确定源节点的被迁移的虚拟机的状态,检查在源节点和目的节点物理主机上的服务组件是否正常运行,确定源节点的物理主机和目的节点的物理主机是否是同一台,以及确定目的节点的物理主机是否有足够的内存或者存储介质,可能还包括确定其它细节如版本检查等。在执行热迁移的过程中,需要实现虚拟机状态的完整保存和快速恢复从而实现动态迁移。在热迁移完成后也就是虚拟机迁移完成后,还需要在源节点的物理主机上删除虚拟机并在目的节点的物理主机上更新虚拟机状态。
继续参阅图1,随着各种虚拟化技术的发展例如处理器虚拟化、内存虚拟化、中断虚拟化、设备虚拟化等,以及云计算应用场景的拓展例如公有云、私有云以及混合云,在虚拟架构的计算节点上,例如图1所示的计算节点110和计算节点112上,需要提供各种各样的虚拟化设备如网络和存储方面的虚拟化设备,并且为了提升网络数据处理性能也需要采用新的虚拟化技术例如虚拟宿主机数据路径加速(vhost Data Path Acceleration,VDPA)设备也叫虚拟化硬件加速设备,还有例如virtio架构。其中,VDPA设备通过将数据路径硬件化来实现加速。virtio架构提供了前后端的架构,包括前端驱动模块(如virtio网卡驱动)和后端处理模块(如vhost)。其中前端驱动模块在客户机内部,接收用户态请求并对请求封装后发送操作到后端处理模块。后端处理模块在系统模拟器例如快速模拟器(quickemulator,qemu)中创建,用于接收来自前端驱动模块的请求,对物理设备进行操作并通知前端。Virtio架构通过配置空间完成前后端的通信,以及通过数据共享机制来实现输入输出请求数据的共享。例如前端驱动模块在虚拟机的内存中申请一块内存区域并共享给后端进程,这样前端驱动模块发出的输入输出请求的数据放入共享的内存区域中,后端进程直接从共享的内存区域获取数据,因此不需要模拟硬件实现下完整的操作,节约性能开销。virtio架构根据其后端实现方式可以分成多种方案,例如virtio-net、vhost-net、vhost-user等。virtio-net设备需要内存的多次拷贝及大量的用户态到内核态的操作。vhost-net将后端卸载到内核,使得数据在内核处理,减少了网络数据从用户态到内核态的切换次数,从而提高网络数据性能。另外,在虚拟架构的计算节点上也应用多层虚拟交换机(OpenvSwitch,OVS)和数据平面开发套件(Data Plane Development Kit,DPDK)以及单根输入输出虚拟化(Single Root I/O Virtualization,SRIOV)等技术。其中,基于DPDK框架,将virtio的后端放在用户态并通过OVS-DPDK进程处理,从而利用DPDK的大页内存以及轮询模式等技术进一步加速数据的传输。但是,在应用上述各种虚拟技术来提供开放堆栈架构虚拟机热迁移的解决方案时需要挑战,SRIOV使多个虚拟机能够共享同一外围器件互联(Peripheral Component Interconnect,PCI)物理硬件资源,但是SRIOV直通技术不支持热迁移。VDPA设备支持虚拟机热迁移特性,但是现有的虚拟化架构如virtio架构仅支持内核态部署的VDPA,因此在提升虚拟机网络数据处理性能和支持虚拟机的热迁移特性等方面受到限制。也就是说,在结合虚拟化设备如VDPA设备和开放堆栈架构以及应用DPDK、OVS和SRIOV等技术来提升数据处理和数据传输性能方面,需要应对现有的虚拟化架构如virtio架构的限制,下面结合图2详细说明本申请实施例如何提升虚拟机网络数据处理性能和支持虚拟机的热迁移特性。
图2为本申请实施例提供的一种用于开放堆栈架构虚拟机热迁移的方法流程图。如图2所示,方法包括以下步骤。
步骤S210:提供具有开放堆栈架构的云计算平台,所述云计算平台包括多个计算节点,针对所述多个计算节点中的每一个计算节点,该计算节点通过部署在该计算节点的数据处理器虚拟化得到虚拟机,该虚拟机包括多个虚拟化硬件加速设备,所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,基于所述用户态控制面通路实现该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通。
步骤S220:针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口,以及分配所述第二计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第二虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口。
步骤S230:基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。
参阅图2所示的各个步骤,云计算平台的开放堆栈架构也就是openstack架构,包括多个计算节点,每个计算节点用于运行虚拟机并且各自包括数据处理器(dataprocessing unit,DPU),可以用于所在节点的网络和存储的卸载引擎,接管网络虚拟化、硬件资源池化等基础设施层服务,也可以用于释放所在节点的中央处理器(centralprocessing unit,CPU)算力。并且,各个计算节点可以基于各自的数据处理器来应用各种虚拟化技术和创建虚拟化设备。其中,针对所述多个计算节点中的每一个计算节点,该计算节点通过部署在该计算节点的数据处理器虚拟化得到虚拟机,该虚拟机包括多个虚拟化硬件加速设备(例如VDPA设备或者支持VDPA的硬件),所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动(例如用户态的VDPA驱动)被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路。这里,虚拟宿主机用户协议后端可以是virtio架构下的vhost-user协议后端。因为所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端,这样可以通过虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,这意味着实现了在用户态下的网路数据处理加速。当虚拟宿主机用户协议后端采用virtio架构下的vhost-user协议后端时,可以利用数据处理器实现用户态下的控制面通路,从而有利于前后端进行如virtio特性协商以及硬件vring的协商。进一步地,基于所述用户态控制面通路实现该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通,这意味着实现了由数据处理器虚拟得到的VDPA设备直通到虚拟机,有利于将网络处理数据包的性能提高到近似物理设备网卡的性能。进一步地,针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能(virtual function,VF)资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口。其中,第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口可以是例如VDPA用户类型网络端口,并且有相应的网络资源端口模型,可以作为虚拟机的网络接口。通过在创建虚拟机的时候创建这样的网络端口如分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,接下来可以分配虚拟化硬件加速设备的虚拟功能资源给相应的网络端口,例如分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口。这样有利于实现特定虚拟化设备如VDPA设备的网络资源管理,也可以通过虚拟机来实现如创建、删除、挂起、恢复、暂停等操作来管理虚拟化设备。进一步地,可以指定所在节点的虚拟机的网络端口为所创建并分配VF资源的网络端口,例如指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口,这样结合上述的用户态控制面通路和数据面直通特性,就使得各个计算节点如第一计算节点和第二计算节点,可以结合多种虚拟技术,包括DPDK、OVS和SRIOV等技术来提升数据处理和数据传输性能方面。在一些实施例中,通过数据处理器实现OVS加DPDK的组合,例如基于DPDK框架将virtio的后端放在用户态并通过OVS-DPDK进程处理。上面提到,所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端,因此在用户态控制面通路和数据面直通基础上,可以利用OVS-DPDK进一步提升性能。另外,针对SRIOV直通技术不支持热迁移的问题,基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,可以使得数据处理器所创建的虚拟化设备如VDPA设备具有SRIOV特性并且通过用户态的VDPA驱动来加载相应的VDPA VF设备,在实现SRIOV特性同时也可以通过扩展openstack框架的热迁移代码来使得所创建的所述第一虚拟化硬件加速用户类型网络端口的所述第一计算节点的虚拟机,例如vdpa-user类型的网络端口的虚拟机,可以支持热迁移操作。这样意味着在使得所在节点的虚拟机的虚拟化硬件加速设备可以支持SRIOV特性同时还能使得该虚拟机支持热迁移。因此,在步骤S230中,基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。应当理解的是,图2所示的用于开放堆栈架构虚拟机热迁移的方法,不仅实现了计算节点之间的热迁移,而且实现了用户态下的网络数据处理加速,以及具有良好的扩展性,可以通过应用DPDK、OVS和SRIOV等技术来进一步提升数据处理和数据传输性能并且可以通过数据处理器来便利地管理网络资源和虚拟化设备。因此,基于所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,实现了用户态下的加速有利于提升虚拟机网络数据处理性能,并且基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口进行所述第一计算节点和所述第二计算节点之间的热迁移,实现了支持虚拟机的热迁移特性,有助于克服原本只支持内核态部署的VDPA的虚拟化架构如virtio架构所带来的限制。
在一种可能的实现方式中,所述多个虚拟化硬件加速设备具有单根输入输出虚拟化特性(也即SRIOV特性),所述多个虚拟化硬件加速设备分别根据各自的单根输入输出虚拟化特性虚拟得到多个虚拟功能设备(也叫VF设备),所述多个虚拟化硬件加速设备中的每一个虚拟化硬件加速设备虚拟得到的多个虚拟功能设备共享该虚拟化硬件加速设备的外围器件互联资源(也叫PCI资源,还可以包括PCIE资源)。在一些实施例中,进行所述第一计算节点和所述第二计算节点之间的热迁移,包括:指定所述第一计算节点所包括的虚拟功能设备中的一个虚拟功能设备为管理口设备和其它虚拟功能设备为非管理口设备,所述管理口设备用于记录脏页,所述非管理口设备用于所述第一计算节点的虚拟机和所述第二计算节点的虚拟机之间的直通。在一些实施例中,所述第一计算节点是源节点,所述第二计算节点是目的节点。如此,通过SRIOV特性可以进一步提升系统扩展性和处理性能,通过指定管理口设备来记录脏页,有助于实现热迁移过程。
在一种可能的实现方式中,所述方法还包括:开发所述第一计算节点的开放堆栈热迁移代码用于使得所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口支持所述第一计算节点和所述第二计算节点之间的热迁移;和开发所述第二计算节点的开放堆栈热迁移代码用于使得所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口支持所述第一计算节点和所述第二计算节点之间的热迁移。如此,通过开发开放堆栈热迁移代码有助于实现虚拟机的热迁移特性并且使得所在节点的虚拟机的虚拟化硬件加速设备可以支持SRIOV特性同时还能使得该虚拟机支持热迁移。
在一种可能的实现方式中,所述第一虚拟化硬件加速用户类型网络端口通过所述第一计算节点的开放堆栈网络服务组件(例如openstack neutron组件)创建从而使得所述开放堆栈架构管理所述第一计算节点的虚拟化硬件加速用户类型网络资源,所述第二虚拟化硬件加速用户类型网络端口通过所述第二计算节点的开放堆栈网络服务组件创建从而使得所述开放堆栈架构管理所述第二计算节点的虚拟化硬件加速用户类型网络资源。在一些实施例中,所述第一虚拟化硬件加速用户类型网络端口基于所述第一计算节点的开放堆栈计算服务组件(例如openstack nova组件)的支持作为所述第一计算节点的虚拟机的网络端口,所述第二虚拟化硬件加速用户类型网络端口基于所述第二计算节点的开放堆栈计算服务组件的支持作为所述第二计算节点的虚拟机的网络端口。在一些实施例中,所述第一计算节点的开放堆栈网络服务组件和所述第一计算节点的开放堆栈计算服务组件是基于对所述第一计算节点的开放堆栈架构的扩展,所述第二计算节点的开放堆栈网络服务组件和所述第二计算节点的开放堆栈计算服务组件是基于对所述第二计算节点的开放堆栈架构的扩展。在一些实施例中,所述第一计算节点的开放堆栈计算服务组件还用于所述第一计算节点的虚拟机进行创建、删除、挂起、恢复和暂停操作,所述第二计算节点的开放堆栈计算服务组件还用于所述第二计算节点的虚拟机进行创建、删除、挂起、恢复和暂停操作。如此,实现了管理网络资源和虚拟化设备,而且利用现有的openstack架构的组件有利于降低成本。
在一种可能的实现方式中,针对所述多个计算节点中的每一个计算节点,该计算节点的虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成该计算节点的虚拟机所包括的虚拟化硬件加速设备的用户态控制面通路用于实现虚拟化输入输出(Virtual IO,Vritio)特性协商。如此,实现了Virtio特性的协商。
在一种可能的实现方式中,针对所述多个计算节点中的每一个计算节点,该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通用于该计算节点的该虚拟机的网络数据包处理。在一些实施例中,针对所述多个计算节点中的每一个计算节点,该计算节点的该虚拟机所包括的虚拟化硬件加速设备基于该计算节点的用户态数据平面开发套件框架来通过该用户态虚拟化硬件加速驱动被加载。在一些实施例中,针对所述多个计算节点中的每一个计算节点,该计算节点的该虚拟机所包括的虚拟化硬件加速设备的用户态控制面通路运行在该计算节点的用户态数据平面开发套件框架和多层虚拟交换机的用户态。如此,利用OVS和DPDK进一步提升了网络数据处理性能。
图3为本申请实施例提供的一种云计算平台的示意图。如图3所示,所述云计算平台具有开放堆栈架构和多个计算节点,图3中示例性示出了计算节点310和计算节点320。针对所述多个计算节点中的每一个计算节点,例如计算节点310和计算节点320,该计算节点通过部署在该计算节点的数据处理器虚拟化得到虚拟机,该虚拟机包括多个虚拟化硬件加速设备(例如VDPA设备,虚拟化设备等,可以参考上述图2实施例的有关细节),所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与该计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,基于所述用户态控制面通路实现该计算节点的该虚拟机和该计算节点的数据处理器之间的数据面直通。图3中示例性示出了计算节点310包括数据处理器312,数据平面开发套件框架和多层虚拟交换机314,还有虚拟化硬件加速设备316和虚拟化硬件加速设备318。计算节点320包括数据处理器322,数据平面开发套件框架和多层虚拟交换机324,还有虚拟化硬件加速设备326和虚拟化硬件加速设备328。
继续参阅图3,所述云计算平台:针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口,以及分配所述第二计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第二虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口。以图3为例,在计算节点310和计算节点320之间的热迁移,可以是计算节点310的虚拟化硬件加速设备316到计算节点320的虚拟化硬件加速设备328的热迁移,还可以是计算节点310的虚拟化硬件加速设备318到计算节点320的虚拟化硬件加速设备326的热迁移。并且,计算节点310上的虚拟化硬件加速设备316和虚拟化硬件加速设备318,借助数据处理器312和数据平面开发套件框架和多层虚拟交换机314实现了网络数据处理性能的加速。计算节点320上的虚拟化硬件加速设备326和虚拟化硬件加速设备328,借助数据处理器322和数据平面开发套件框架和多层虚拟交换机324实现了网络数据处理性能的加速。
继续参阅图3,所述云计算平台:基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。图3的云计算平台还包括控制节点330用于管理计算节点310和计算节点320各自的虚拟机。图3所示的云计算平台的有关细节可以进一步参阅上述实施例,在此不再赘述。
参见图4,图4是本申请实施例提供的一种计算设备的结构示意图,该计算设备400包括:一个或者多个处理器410、通信接口420以及存储器430。所述处理器410、通信接口420以及存储器430通过总线440相互连接。可选地,该计算设备400还可以包括输入/输出接口450,输入/输出接口450连接有输入/输出设备,用于接收用户设置的参数等。该计算设备400能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理器410还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备400执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器410用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备400可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口420具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器410具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图4的计算设备400可以包括一个或者多个处理器410,并且多个处理器410可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器410可以构成处理器序列或者处理器阵列,或者多个处理器410之间可以分成主处理器和辅助处理器,或者多个处理器410之间可以具有不同的架构如采用异构计算架构。另外,图4所示的计算设备400,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备400可以包括比图4所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器410可以有多种具体实现形式,例如处理器410可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器410还可以是单核处理器或多核处理器。处理器410可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器410也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器430可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器430也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器430也可用于存储程序代码和数据,以便于处理器410调用存储器430中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备400可能包含相比于图4展示的更多或者更少的组件,或者有不同的组件配置方式。
总线440可以是快捷外围部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线440可以分为地址总线、数据总线、控制总线等。总线440除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行上述方法实施例中的方法步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例系统中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种用于开放堆栈架构虚拟机热迁移的方法,其特征在于,所述方法包括:
提供具有开放堆栈架构的云计算平台,所述云计算平台包括多个计算节点,针对所述多个计算节点中的每一个计算节点,计算节点通过部署在计算节点的数据处理器虚拟化得到虚拟机,虚拟机包括多个虚拟化硬件加速设备,所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,基于所述用户态控制面通路实现计算节点的虚拟机和计算节点的数据处理器之间的数据面直通;
针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口,以及分配所述第二计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第二虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口;
基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。
2.根据权利要求1所述的方法,其特征在于,所述多个虚拟化硬件加速设备具有单根输入输出虚拟化特性,所述多个虚拟化硬件加速设备分别根据各自的单根输入输出虚拟化特性虚拟得到多个虚拟功能设备,所述多个虚拟化硬件加速设备中的每一个虚拟化硬件加速设备虚拟得到的多个虚拟功能设备共享虚拟化硬件加速设备的外围器件互联资源。
3.根据权利要求2所述的方法,其特征在于,进行所述第一计算节点和所述第二计算节点之间的热迁移,包括:指定所述第一计算节点所包括的虚拟功能设备中的一个虚拟功能设备为管理口设备和其它虚拟功能设备为非管理口设备,所述管理口设备用于记录脏页,所述非管理口设备用于所述第一计算节点的虚拟机和所述第二计算节点的虚拟机之间的直通。
4.根据权利要求3所述的方法,其特征在于,所述第一计算节点是源节点,所述第二计算节点是目的节点。
5. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
开发所述第一计算节点的开放堆栈热迁移代码用于使得所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口支持所述第一计算节点和所述第二计算节点之间的热迁移;和
开发所述第二计算节点的开放堆栈热迁移代码用于使得所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口支持所述第一计算节点和所述第二计算节点之间的热迁移。
6.根据权利要求1所述的方法,其特征在于,所述第一虚拟化硬件加速用户类型网络端口通过所述第一计算节点的开放堆栈网络服务组件创建从而使得所述开放堆栈架构管理所述第一计算节点的虚拟化硬件加速用户类型网络资源,所述第二虚拟化硬件加速用户类型网络端口通过所述第二计算节点的开放堆栈网络服务组件创建从而使得所述开放堆栈架构管理所述第二计算节点的虚拟化硬件加速用户类型网络资源。
7.根据权利要求6所述的方法,其特征在于,所述第一虚拟化硬件加速用户类型网络端口基于所述第一计算节点的开放堆栈计算服务组件的支持作为所述第一计算节点的虚拟机的网络端口,所述第二虚拟化硬件加速用户类型网络端口基于所述第二计算节点的开放堆栈计算服务组件的支持作为所述第二计算节点的虚拟机的网络端口。
8.根据权利要求7所述的方法,其特征在于,所述第一计算节点的开放堆栈网络服务组件和所述第一计算节点的开放堆栈计算服务组件是基于对所述第一计算节点的开放堆栈架构的扩展,所述第二计算节点的开放堆栈网络服务组件和所述第二计算节点的开放堆栈计算服务组件是基于对所述第二计算节点的开放堆栈架构的扩展。
9.根据权利要求7所述的方法,其特征在于,所述第一计算节点的开放堆栈计算服务组件还用于所述第一计算节点的虚拟机进行创建、删除、挂起、恢复和暂停操作,所述第二计算节点的开放堆栈计算服务组件还用于所述第二计算节点的虚拟机进行创建、删除、挂起、恢复和暂停操作。
10.根据权利要求1所述的方法,其特征在于,针对所述多个计算节点中的每一个计算节点,计算节点的虚拟宿主机用户协议后端与计算节点的系统模拟器所提供的前端一起构成计算节点的虚拟机所包括的虚拟化硬件加速设备的用户态控制面通路用于实现虚拟化输入输出特性协商。
11.根据权利要求1所述的方法,其特征在于,针对所述多个计算节点中的每一个计算节点,计算节点的虚拟机和计算节点的数据处理器之间的数据面直通用于计算节点的虚拟机的网络数据包处理。
12.根据权利要求11所述的方法,其特征在于,针对所述多个计算节点中的每一个计算节点,计算节点的虚拟机所包括的虚拟化硬件加速设备基于计算节点的用户态数据平面开发套件框架来通过用户态虚拟化硬件加速驱动被加载。
13.根据权利要求12所述的方法,其特征在于,针对所述多个计算节点中的每一个计算节点,计算节点的虚拟机所包括的虚拟化硬件加速设备的用户态控制面通路运行在计算节点的用户态数据平面开发套件框架和多层虚拟交换机的用户态。
14.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至13中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至13中任一项所述的方法。
16.一种云计算平台,其特征在于,所述云计算平台具有开放堆栈架构和多个计算节点,
其中,针对所述多个计算节点中的每一个计算节点,计算节点通过部署在计算节点的数据处理器虚拟化得到虚拟机,虚拟机包括多个虚拟化硬件加速设备,所述多个虚拟化硬件加速设备通过用户态虚拟化硬件加速驱动被加载从而作为虚拟宿主机用户协议后端与计算节点的系统模拟器所提供的前端一起构成所述多个虚拟化硬件加速设备的用户态控制面通路,基于所述用户态控制面通路实现计算节点的虚拟机和计算节点的数据处理器之间的数据面直通,
其中,所述云计算平台:针对所述多个计算节点中的第一计算节点和第二计算节点之间的热迁移,分别在所述第一计算节点和所述第二计算节点上创建第一虚拟化硬件加速用户类型网络端口和第二虚拟化硬件加速用户类型网络端口,分配所述第一计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第一虚拟化硬件加速用户类型网络端口和指定所述第一计算节点的虚拟机的网络端口为所述第一虚拟化硬件加速用户类型网络端口,以及分配所述第二计算节点的虚拟机所包括的虚拟化硬件加速设备的虚拟功能资源给所述第二虚拟化硬件加速用户类型网络端口和指定所述第二计算节点的虚拟机的网络端口为所述第二虚拟化硬件加速用户类型网络端口,
其中,所述云计算平台:基于所述第一计算节点的虚拟机和所述第一虚拟化硬件加速用户类型网络端口以及所述第二计算节点的虚拟机和所述第二虚拟化硬件加速用户类型网络端口,进行所述第一计算节点和所述第二计算节点之间的热迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310167642.XA CN115858103B (zh) | 2023-02-27 | 2023-02-27 | 用于开放堆栈架构虚拟机热迁移的方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310167642.XA CN115858103B (zh) | 2023-02-27 | 2023-02-27 | 用于开放堆栈架构虚拟机热迁移的方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858103A CN115858103A (zh) | 2023-03-28 |
CN115858103B true CN115858103B (zh) | 2023-06-09 |
Family
ID=85659041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310167642.XA Active CN115858103B (zh) | 2023-02-27 | 2023-02-27 | 用于开放堆栈架构虚拟机热迁移的方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858103B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257276B (zh) * | 2023-05-09 | 2023-07-25 | 珠海星云智联科技有限公司 | 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法 |
CN117519908B (zh) * | 2023-12-29 | 2024-04-09 | 珠海星云智联科技有限公司 | 一种虚拟机热迁移方法、计算机设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472624A (zh) * | 2021-06-21 | 2021-10-01 | 烽火通信科技股份有限公司 | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 |
CN114584541A (zh) * | 2022-03-07 | 2022-06-03 | 浪潮云信息技术股份公司 | 一种加速虚拟机网络的方法 |
CN115408103A (zh) * | 2022-08-24 | 2022-11-29 | 阿里巴巴(中国)有限公司 | 虚拟机热迁移方法、系统、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210165675A1 (en) * | 2019-12-02 | 2021-06-03 | Xiao Wang | Live migration for hardware accelerated para-virtualized io device |
-
2023
- 2023-02-27 CN CN202310167642.XA patent/CN115858103B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472624A (zh) * | 2021-06-21 | 2021-10-01 | 烽火通信科技股份有限公司 | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 |
CN114584541A (zh) * | 2022-03-07 | 2022-06-03 | 浪潮云信息技术股份公司 | 一种加速虚拟机网络的方法 |
CN115408103A (zh) * | 2022-08-24 | 2022-11-29 | 阿里巴巴(中国)有限公司 | 虚拟机热迁移方法、系统、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Intel.VDPA: VHOST-MDEV AS NEW VHOST PROTOCOL TRANSPORT.《https://events19.linuxfoundation.org/wp-content/uploads/2017/12/Cunming-Liang-Intel-KVM-Forum-2018-VDPA-VHOST-MDEV.pdf》.第1-20页. * |
欧阳卓玥.基于vDPA的虚拟网络转发性能优化技术的研究与实现.《中国优秀硕士学位论文全文数据库信息科技辑》.2022,(第第1期期),第7-58页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115858103A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778521B2 (en) | Reconfiguring a server including a reconfigurable adapter device | |
CN115858103B (zh) | 用于开放堆栈架构虚拟机热迁移的方法、设备及介质 | |
US20210232528A1 (en) | Configurable device interface | |
US9558041B2 (en) | Transparent non-uniform memory access (NUMA) awareness | |
US9164795B1 (en) | Secure tunnel infrastructure between hosts in a hybrid network environment | |
US11093148B1 (en) | Accelerated volumes | |
CN115858102B (zh) | 一种用于部署支持虚拟化硬件加速的虚拟机的方法 | |
WO2018103356A1 (zh) | 一种数据库服务提供方法及服务器 | |
WO2022179423A1 (zh) | 虚拟化处理系统、方法、装置及设备 | |
US10956195B2 (en) | Virtual machine migrations across clouds assisted with content based read caching | |
CN108139937B (zh) | 多根i/o虚拟化系统 | |
US10084877B2 (en) | Hybrid cloud storage extension using machine learning graph based cache | |
CN109656675B (zh) | 总线设备、计算机设备及实现物理主机云存储的方法 | |
US20210089504A1 (en) | Database upgrade in a distributed database cluster | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
CN116257276B (zh) | 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法 | |
CN115934624B (zh) | 多主机远程直接内存访问网络管理的方法、设备及介质 | |
CN115857995B (zh) | 一种用于互联设备升级的方法、介质及计算设备 | |
CN109656674B (zh) | 一种计算机设备、虚拟化芯片及数据传输方法 | |
US11792289B2 (en) | Live socket redirection | |
US11481255B2 (en) | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator | |
CN117519908B (zh) | 一种虚拟机热迁移方法、计算机设备及介质 | |
US11924336B1 (en) | Cryptographic artifact generation using virtualized security modules | |
CN116303154B (zh) | 用于数据处理单元的基地址寄存器资源分配方法及介质 | |
US11409615B2 (en) | Cloning storage volumes from backup |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |