CN109753346A - 一种虚拟机热迁移方法及装置 - Google Patents

一种虚拟机热迁移方法及装置 Download PDF

Info

Publication number
CN109753346A
CN109753346A CN201811592633.0A CN201811592633A CN109753346A CN 109753346 A CN109753346 A CN 109753346A CN 201811592633 A CN201811592633 A CN 201811592633A CN 109753346 A CN109753346 A CN 109753346A
Authority
CN
China
Prior art keywords
virtual machine
network interface
virtual
host
interface card
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.)
Granted
Application number
CN201811592633.0A
Other languages
English (en)
Other versions
CN109753346B (zh
Inventor
钟晋明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Cloud Technologies Co Ltd
Original Assignee
New H3C Cloud Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Cloud Technologies Co Ltd filed Critical New H3C Cloud Technologies Co Ltd
Priority to CN201811592633.0A priority Critical patent/CN109753346B/zh
Publication of CN109753346A publication Critical patent/CN109753346A/zh
Application granted granted Critical
Publication of CN109753346B publication Critical patent/CN109753346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提出一种虚拟机热迁移方法及装置,涉及云计算技术领域。该方法及装置在源主机向目的主机发送的待迁移的配置有第一VF驱动的第一虚拟机的内存数据,以使目的主机将内存数据同步至目的主机创建的第二虚拟机中之前,向智能网卡发送第一控制指令以使第一虚拟机可通过运行第一VF驱动与第一物理功能网卡进行网络I/O的数据交互,使得在迁移第一虚拟机的内存数据的同时,第一虚拟机还能通过第一物理功能网卡收/发数据,使得源主机能够读取到迁移过程中第一虚拟机的数据变化,并能够将变化的数据同步至第二虚拟机,既能解决现有技术中利用智能网卡不能实现虚拟机在线迁移的问题,又能避免利用virtio‑net驱动智能网卡导致的网卡综合性能低的问题。

Description

一种虚拟机热迁移方法及装置
技术领域
本发明涉及云计算技术领域,具体而言,涉及一种虚拟机热迁移方法及装置。
背景技术
SR-IOV(Single-Root I/O Virtualization,单根I/O虚拟化)是一种IO虚拟化技术,该技术可以在一个物理PCIe(Peripheral Component Interconnection Express,快速外设组件互连)设备上虚拟化出多个虚拟的PCIe设备,虚拟PCIe设备只能通过原物理PCIe设备进行配置和管理,每个虚拟PCIe设备可以有独立的中断和DMA(Direct MemoryAccess,直接内存存取),这样虚拟机可以直接通过虚拟PCIe设备访问物理PCIE设备,不需要VMM(Virtual Machine Monitor,虚拟机监控器)的干预。
以SR-IOV NIC(Network Interface Card,网络接口卡)为例,SR-IOV NIC一般定义了一个PF(Physical Function,物理功能)和若干个VF(Virtual Function,虚拟功能),PF和VF可作为单独的网卡使用,VF一般通过PCIe透传技术将硬件透传到虚拟机中,这样在虚拟机中可以直接访问VF的硬件寄存器。然而,由于SR-IOV VF网卡是PCIe的物理网卡功能,如果使用VF网卡,会使虚拟客户机无法进行在线迁移。
发明内容
有鉴于此,本发明的目的在于提供一种虚拟机热迁移方法及装置,以解决或者改善上述问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种虚拟机热迁移方法,应用于主机,所述虚拟机热迁移方法包括:
若所述主机为与第一智能网卡物理电连接的源主机,响应接收到的虚拟机迁移指令向目的主机发送所述源主机上布设的待迁移的第一虚拟机的配置信息,以使所述目的主机依据所述配置信息创建第二虚拟机,其中,所述第一智能网卡包括第一物理功能网卡,所述第一虚拟机上配置有第一VF驱动;
向所述第一智能网卡发送第一控制指令,以使所述第一智能网卡通过所述第一物理功能网卡与所述配置有所述第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;
向所述目的主机发送所述第一虚拟机的内存数据,以使所述目的主机将所述第一虚拟机的内存数据同步至所述第二虚拟机中。
第二方面,本发明实施例还提供了一种虚拟机热迁移方法,应用于智能网卡,所述虚拟机热迁移方法包括:
若所述智能网卡为与源主机物理电连接的第一智能网卡,当接收到所述源主机发送的第一控制指令时,通过所述第一智能网卡的第一物理功能网卡与所述源主机上布设的待迁移的配置有第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;其中,所述第一控制指令与所述源主机接收到的虚拟机迁移指令关联。
第三方面,本发明实施例还提供了一种虚拟机热迁移装置,应用于主机,所述虚拟机热迁移装置包括:
信息发送单元,若所述主机为与第一智能网卡物理电连接的源主机,所述信息发送单元用于响应接收到的虚拟机迁移指令向目的主机发送所述源主机上布设的待迁移的第一虚拟机的配置信息,以使所述目的主机依据所述配置信息创建第二虚拟机,其中,所述第一智能网卡包括第一物理功能网卡,所述第一虚拟机上配置有第一虚拟功能驱动;
指令发送单元,用于向所述第一智能网卡发送第一控制指令,以使所述第一智能网卡通过所述第一物理功能网卡与所述配置有所述第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;
所述信息发送单元还用于向所述目的主机发送所述第一虚拟机的内存数据,以使所述目的主机将所述第一虚拟机的内存数据同步至所述第二虚拟机中。
第四方面,本发明实施例还提供了一种虚拟机热迁移装置,应用于智能网卡,所述虚拟机热迁移装置包括:
网卡配置单元,若所述智能网卡为与源主机物理电连接的第一智能网卡,所述网卡配置单元用于当接收到所述源主机发送的第一控制指令时,通过所述第一智能网卡的第一物理功能网卡与所述源主机上布设的待迁移的配置有第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;其中,所述第一控制指令与所述源主机接收到的虚拟机迁移指令关联。
本发明实施例提供的虚拟机热迁移方法,在源主机向目的主机发送源主机上布设的待迁移的配置有第一VF驱动的第一虚拟机的内存数据,以使目的主机将第一虚拟机的内存数据同步至目的主机根据源主机响应接收到的虚拟机迁移指令而发送的第一虚拟机的配置信息创建的第二虚拟机中之前,向智能网卡发送第一控制指令以使第一虚拟机可通过运行第一VF驱动与第一物理功能网卡进行网络I/O的数据交互,使得在迁移第一虚拟机的内存数据的同时,第一虚拟机还能通过第一物理功能网卡收/发数据,使得源主机能够读取到迁移过程中第一虚拟机的数据变化,并能够将变化的数据同步至第二虚拟机,既能解决现有技术中利用智能网卡不能实现虚拟机在线迁移的问题,又能避免利用virtio-net驱动智能网卡导致的网卡综合性能低的问题。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了一种常见的虚拟机热迁移方法的应用场景。
图2示出了本发明实施例提供的虚拟机热迁移方法的应用场景。
图3示出了本发明实施例提供的主机的方框示意图。
图4示出了本发明实施例提供的智能网卡的方框示意图。
图5示出了本发明实施例提供的虚拟机热迁移方法的信令流程图。
图6示出了本发明实施例提供的第一虚拟机热迁移装置的功能模块图。
图7示出了本发明实施例提供的第二虚拟机热迁移装置的功能模块图。
图标:110-源主机;120-目的主机;130-第一虚拟机;140-第二虚拟机;150-第一智能网卡;152-第一物理功能网卡;154-第一虚拟功能网卡;160-第二智能网卡;162-第二物理功能网卡;164-第二虚拟功能网卡;210-第一存储器;220-第一处理器;230-第一通信模块;310-第二存储器;320-第二处理器;330-总线接口;400-第一虚拟机热迁移装置;410-信息发送单元;420-指令发送单元;430-虚拟机控制单元;440-队列同步单元;450-虚拟机创建单元;460-网口分配单元;470-内存同步单元;480-信息接收单元;490-队列更新单元;500-第二虚拟机热迁移装置;510-网卡配置单元;520-聚合网口新建单元。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了更好地理解本发明的技术方案,下面首先对本发明中的主机进行详细说明。
主机上安装有支持SR-IOV技术的智能网卡,且运行虚拟化软件层Hypervisor。Hypervisor也可称为虚拟机监控器(Virtual Machine Monitor,VMM),例如,Hypervisor可以是VMWare ESXi、KVM(Kernel-based Virtual Machine,基于内核的虚拟机)等。另外,主机可以包括多个虚拟机(Virtual Machine,VM)。
支持SR-IOV技术的智能网卡通常包括至少一个PF端口,且每个PF端口可被配置为一个PF网卡以及多个VF网卡。每个VM可以与其对应的一个或多个VF网卡直接进行网络I/O的数据交互,无需通过Hypervisor,既降低了Hypervisor中的I/O性能开销,又保证了每个VM的I/O吞吐效率。
另外,在支持SR-IOV技术的智能网卡还集成有一个L2vSwitch(虚拟交换机),该L2vSwitch具备基本的二层交换功能。VF与该L2vSwitch直连,VF相当于该L2vSwitch上的端口。
从而,在上述描述的基础上,VM接收数据包的过程为:当数据包发送到SR-IOV NIC时,会被发送到L2vSwitch进行分类和交换,根据该数据包的目的地址确定对应的VF网卡,从而将该数据包转发到确定的VF网卡,VF网卡发起DMA操作将该数据包传递给与该VF网卡连接的VM。VM发送数据包的过程为:VM将数据包发送给SR-IOV NIC对应的VF网卡,从而通过该VF网卡将数据包进行发送。
目前,由于SR-IOV技术不支持虚拟机的热迁移,可利用以下方式解决上述问题。
请参阅图1所述的应用场景。在该应用场景中,源主机与第一智能网卡物理电连接,目的主机与第二智能网卡物理电连接,同时第一智能网卡以及第二智能网卡中均配置有VF网卡和PF网卡;源主机上布设有待迁移的第一虚拟机,目的主机上布设有与第一虚拟机配置相同的第二虚拟机,第一虚拟机及第二虚拟机均配置有Virtio-net驱动;此外,源主机及目的主机上均安装有转发程序。
在上述方案中,第一虚拟机发包时,需要通过Virtio-net驱动填充Virtio-ring,并将Virtio-ring通过转发程序同步至VF网卡的VF队列,由于Virtio-ring需要经由转发程序转发,从而可以被源主机复制到目的主机,从而支持第一虚拟机的热迁移。
但经发明人研究发现,这种方式虽然支持虚拟机的热迁移,但实际上由于第一虚拟机大部分时间都处于非迁移状态,也即热迁移次数以及持续时间与正常状态相比,占比很少,采用上述方案实现的I/O性能远远低于利用VF驱动直接与VF网卡进行网络I/O交互的性能,造成了第一虚拟机在非迁移状态下的综合性能低的问题。例如,在非迁移状态时,采用上述方案进行网络I/O的数据交互时,会牺牲掉一部分性能用作程序处理,所以I/O性能仍低于利用VF驱动直接与VF网卡进行网络I/O的数据交互的方式。也就是说,上述方案是通过牺牲了一部分正常状态下的I/O性能来使源主机支持热迁移。
有鉴于此,发明人拟提出一种既能够在非迁移状态下具备较高的I/O性能,又能支持热迁移的技术方案。
请参阅图2,为本发明实施例提供的虚拟机热迁移方法的应用场景图。其中,源主机110与第一智能网卡150物理电连接,目的主机120与第二智能网卡160物理电连接,且第一智能网卡150包括第一物理功能网卡152及第一虚拟功能网卡154,第二智能网卡160包括第二物理功能网卡162及第二虚拟功能网卡164。源主机110上配置有待迁移的第一虚拟机130以及可驱动第一物理功能网卡152的第一物理功能(Physical Function,PF)驱动,且第一虚拟机130中配置有可驱动第一虚拟功能网卡154的第一虚拟功能(Virtual Function,VF)驱动;目的主机120上配置有根据第一虚拟机130的配置信息创建的第二虚拟机140以及可驱动第二物理功能网卡162的第二物理功能(Physical Function,PF)驱动,且第二虚拟机140中配置有可驱动第二虚拟功能网卡164的第二虚拟功能(Virtual Function,VF)驱动。
此外,第一智能网卡150及第二智能网卡160中均配置有evswitch。evswitch是一种集成有虚拟交换机功能的芯片,具备添加、删除聚合网口以及在聚合网口内添加或删除虚拟接口的功能。
需要说明的是,本发明所述的智能网卡与主机物理电连接,均指代智能网卡通过PCIe插槽接入主机的连接方式,在后文中不再赘述。
如图2所示,第一虚拟机130可通过运行第一VF驱动并利用第一聚合网口与第一虚拟功能网卡154或第一物理功能网卡152进行I/O网络的数据交互;第二虚拟机140可通过运行第二VF驱动并利用第二聚合网口与第二虚拟功能网卡164或第二物理功能网卡162进行I/O网络的数据交互。
事实上,一台主机既能作为一次在线迁移虚拟机过程中的源主机110,也能作为另一次在线迁移虚拟机过程中的目的主机120。从而前文所述的源主机110与目的主机120仅仅是在动态迁移虚拟机过程中便于区分定义的发送虚拟机内存数据的一方及接收虚拟机内存数据的一方;实际上,目的主机120与源主机110从物理配置上可以相同。在一种可选的实施方式中,源主机110及目的主机120均可用如图3所示的方框示意图表示。
其中,主机包括第一存储器210、第一处理器220及第一通信模块230。所述第一存储器210、第一处理器220以及第一通信模块230各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,第一存储器210用于存储程序或者数据。所述第一存储器210可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-Only Memory,EEPROM)等。
第一处理器220用于读/写第一存储器210中存储的数据或程序,并执行相应地功能。
第一通信模块230用于通过所述网络建立所述主机与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
当然,源主机110与目的主机120在包含如图3所示的功能模块的情况下,还可以各自包含不同的功能模块,也即源主机110与目的主机120的配置也可以不完全相同。
相应地,第一智能网卡150及第二智能网卡160也是便于说明而给出的不同命名,实际上,第二智能网卡160从配置上可以与第一智能网卡150的配置相同,第二智能网卡160与第一智能网卡150均可用如图4所示的方框示意图表示。
其中,智能网卡包括第二存储器310、第二处理器320及总线接口330。所述第二存储器310、第二处理器320及总线接口330直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
第二存储器310用于存储程序或者数据。所述第二存储器310可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
第二处理器320用于读/写第二存储器310中存储的数据或程序,并执行相应地功能。
当然,第一智能网卡150及第二智能网卡160在包含如图4所示的功能模块的情况下,还可以各自包含不同的功能模块,也即第一智能网卡150及第二智能网卡160的配置也可以不完全相同。
本发明提供了一种虚拟机热迁移方法,应用于如图3所示的主机,用于实现虚拟机的在线迁移。需要说明的是,该主机既可以是图2中的源主机110,也可以是图2中的目的主机120。
请参阅图5,为本发明提供的虚拟机热迁移方法的信令流程图。其中,若主机为与第一智能网卡150物理电连接的源主机110时,该虚拟机热迁移方法包括:
S501,响应接收到的虚拟机迁移指令向目的主机120发送源主机110上布设的待迁移的第一虚拟机130的配置信息。
需要说明的是,该虚拟机迁移指令包含虚拟机信息以及目的主机120信息;具体地,虚拟机信息用于指示源主机110需要将第一虚拟机130确定为待迁移的虚拟机,目的主机120信息用于指示源主机110需要将第一虚拟机130迁移至目的主机120。其中,虚拟机信息可以包括第一虚拟机130的虚拟机名称或者虚拟机地址(例如IP地址、MAC地址),目的主机120信息可以包括目的主机120的地址信息(例如IP地址、MAC地址)。
例如,源主机110接收到的虚拟机迁移指令中,虚拟机信息为VM1,目的主机120信息为123.125.17.1;从而源主机110将名称为VM1的虚拟机确定为待迁移的第一虚拟机130,将IP地址为123.125.17.1的主机确定为目的主机120。
在源主机110确定第一虚拟机130为待迁移的虚拟机后,便能获取第一虚拟机130的配置信息,该配置信息包括第一虚拟机130的网络配置信息、内存信息等。例如,配置信息可以包含第一虚拟机130的内存大小为4g以及第一VF驱动的具体驱动数据等。
目的主机120接收到配置信息后,便能依据所述配置信息创建第二虚拟机140并为第二虚拟机140配置网口。可以理解地,第二虚拟机140与第一虚拟机130的内存大小相同,且配置有与第一虚拟机130相同的VF驱动,也即前文所述的第二VF驱动。
在一种可选的实施方式中,目的主机120配置网口后会向源主机110发送第一反馈信息。
S502,向第一智能网卡150发送第一控制指令。
在一种可选的实施方式中,源主机110在接收到目的主机120发送的第一反馈信息后,便向第一智能网卡150发送第一控制指令。第一控制指令用于指示第一智能网卡150将与第一VF驱动进行网络I/O的数据交互的网卡从第一VF网卡切换为第一PF网卡,从而,第一智能网卡150接收到第一控制指令时,通过第一物理功能网卡152与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互。
此外,第一智能网卡150在成功通过第一物理功能网卡152与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互之后,也即将与第一VF驱动进行网络I/O的数据交互的网卡从第一VF网卡切换为第一PF网卡后,向源主机110发送第二反馈信息。
其中,第一智能网卡150包括第一聚合网口,第一聚合网口包括第一虚拟端口,第一虚拟功能网卡154通过第一虚拟端口与第一虚拟机130进行网络I/O的数据交互。
具体地,第一智能网卡150在接收到第一指令时,便关闭第一虚拟端口,以断开第一VF驱动与第一虚拟功能网卡154的I/O数据的交互;同时第一智能网卡150还通过evswitch在第一聚合网口内添加第二虚拟端口,并控制第一物理功能网卡152与第二虚拟端口通信,从而使得第一物理功能网卡152通过第二虚拟端口与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互。
可以理解地,在源主机110向第一智能网卡150发送第一控制指令之前,第一虚拟机130通过运行第一VF驱动并利用第一聚合网口的第一虚拟端口与第一虚拟功能网卡154进行网络I/O的数据交互。以发送数据包为例,第一虚拟机130将待发送的数据包写入第一VF网卡的第一VF队列,通过第一VF队列将数据包发送至第一VF网卡中,并由第一VF网卡将数据包发送至目的端。其中,目的端可为与第一虚拟机130进行通信的用户终端。
而在源主机110向第一智能网卡150发送第一控制指令之后,第一虚拟机130通过运行第一VF驱动并利用第一聚合网口的第二虚拟端口与第一物理功能网卡152进行网络I/O的数据交互。以发送数据包为例,第一虚拟机130将待发送的数据包写入第一PF网卡的第一PF队列,通过第一PF队列将数据包发送至第一PF网卡中,并由第一PF网卡将数据包发送至目的端。
需要说明的是,虽然此时第一虚拟机130可通过运行第一VF驱动与第一物理功能网卡152进行网络I/O的数据交互,但此时第一物理功能网卡152实际上仍然是由第一PF驱动所驱动,第一VF驱动仅仅是将网络I/O数据写入第一PF队列。
S503,向目的主机120发送第一虚拟机130的内存数据。
源主机110接收到第二反馈信息后,便向目的主机120发送第一虚拟机130的内存数据;而目的主机120在接收到第一虚拟机130的内存数据后,便将第一虚拟机130的内存数据同步至第二虚拟机140中。
从而,在迁移状态下,可通过第一VF驱动与第一PF网卡进行网络I/O的数据交互,使得源主机110能够读取到迁移过程中第一虚拟机130的数据变化,并能够将变化的数据同步至第二虚拟机140,解决了现有技术中利用智能网卡不能实现虚拟机在线迁移的问题;在非迁移状态下,直接通过第一VF驱动与第一VF网卡完成网络I/O的数据交互,相对于Virtio-net驱动与PF网卡进行网络I/O的数据交互的方式,提升了I/O性能。
进一步地,在目的主机120将第一虚拟机130的内存数据同步至第二虚拟机140后,本发明提供的虚拟机热迁移方法还包括:
S504,暂停运行第一虚拟机130。
在一种可选的实施方式中,目的主机120将第一虚拟机130的内存数据同步至第二虚拟机140后,便向源主机110发送第三反馈信息。源主机110接收到第三反馈信息后,确定目的主机120已经将第一虚拟机130的内存数据同步至第二虚拟机140中,便暂停运行第一虚拟机130。
S505,将第一物理功能网卡152中的第一PF队列同步至源主机110的第一主机环形队列以得到第一同步队列并生成同步指令。
其中,第一PF队列中包含第一虚拟机130拟通过第一物理功能网卡152向目的端发送的数据包的地址;第一主机环形队列中包含目的端拟通过第一物理功能网卡152向第一虚拟机130发送的数据包的地址描述符。通过将第一PF队列同步至第一主机环形队列,可以使得第一同步队列中同时包含第一虚拟机130即将发送的数据包地址以及第一虚拟机130即将接收到的数据包地址。
S506,将第一同步队列、第一主机环形队列对应的源主机数据及同步指令发送至目的主机120。
目的主机120在接收到源主机110发送的第一同步队列、第一主机环形队列对应的源主机数据及同步指令后,便响应同步指令而根据源主机数据的地址变化信息以及预存储的地址页表更新第一同步队列得到第二同步队列,并将第二同步队列同步至第二物理功能网卡162中的第二PF队列。
首先,由于在第一虚拟机130停止运行后,第一物理功能网卡152无法再将接收到的数据包传输至第一虚拟机130,只能存入源主机110的存储器内,因此在发送第一同步队列及同步指令的同时,还需要将第一主机环形队列对应的源主机数据同时发送给目的主机120,以避免这部分数据的丢失。
其次,预存储的地址页表即为第二虚拟机140的内存数据的存储地址表。由于将内存数据及源主机数据传输至目的主机120后,内存数据及源主机数据的存储地址均会发生变化,因此需要根据源主机数据的地址变化信息以及预存储的地址页表更新第一同步队列得到的第二同步队列,才能真正适配目的主机120以及第二虚拟机140,再将其同步至第二PF队列后,第二PF网卡才能成功根据第二PF队列读取对应地址处的数据。
若主机为与第二智能网卡160物理电连接的目的主机120时,虚拟机热迁移方法包括:
S601,依据第一虚拟机130的配置信息创建第二虚拟机140并生成第二控制指令。
在源主机110响应接收到的虚拟机迁移指令向目的主机120发送源主机110上布设的待迁移的第一虚拟机130的配置信息之后,目的主机120便依据源主机110发送的第一虚拟机130的配置信息创建第二虚拟机140;同时,并为第二虚拟机140配置第二VF驱动。
S602,向第二智能网卡160发送第二控制指令。
其中,第二智能网卡160接收到目的主机120发送的第二控制指令后,便新建第二聚合网口并控制第二聚合网口与第二物理功能网卡162通信。
其中,第二智能网卡160包括第二物理功能网卡162及第二虚拟功能网卡164。具体地,第二智能网卡160新建第二聚合网口,并在第二聚合网口内添加第一虚拟接口和第二虚拟接口,然后控制第一虚拟接口与第二虚拟功能网卡164通信,并控制第二虚拟接口与第二物理功能网卡162通信,最后关闭第一虚拟接口。
可以理解地,此时关闭第一虚拟接口,使得其他设备只能通过第二聚合网口的第二虚拟接口与第二物理功能网卡162进行网络I/O的数据交互,而无法通过第二聚合网口实现与第二虚拟功能网卡164的网络I/O的数据交互。
第二智能网卡160在成功创建第二聚合网口后,还会生成第四反馈信息,并将第四反馈信息发送给目的主机120。
S603,将第二聚合网口分配给第二虚拟机140。
源主机110接收到第四反馈信息后,便得知第二智能网卡160已经新建好第二聚合网口,便将第二聚合网口分配给第二虚拟机140,使得第二虚拟机140可通过第二聚合网口的第二虚拟接口与第二物理功能网卡162进行网络I/O的数据交互。
但需要说明的是,由于此时第二虚拟机140处于关闭状态,即使第二虚拟机140的第二VF驱动与第二虚拟功能网卡164连通,也暂时还不能进行网络I/O的数据交互。
此外,目的主机120将将第二聚合网口分配给第二虚拟机140之后,第二虚拟机140的网口配置完成,目的主机120向源主机110发送第一反馈信息。
S604,将第一虚拟机130的内存数据同步至第二虚拟机140中。
在一种可选的实施方式中,目的主机120将第一虚拟机130的内存数据同步至第二虚拟机140之后,向源主机110发送第三反馈信息,源主机110接收到第三反馈信息后便暂停运行第一虚拟机130。
S605,接收第一同步队列、第一主机环形队列对应的源主机数据及同步指令。
其中,第一同步队列为源主机110将第一物理功能网卡152中的第一PF队列同步至源主机110的第一主机环形队列得到。
S606,响应同步指令而根据源主机数据的地址变化信息以及预存储的地址页表更新第一同步队列得到第二同步队列。
预存储的地址页表即为第二虚拟机140的内存数据的存储地址表。由于目的主机120在将第一虚拟机130的内存数据同步至第二虚拟机140以及将接收到的源主机数据分配至存储空间后,内存数据及源主机数据的存储地址均会发生变化,因此需要根据源主机数据的地址变化信息以及预存储的地址页表更新第一同步队列得到的第二同步队列。
S607,将第二同步队列同步至第二物理功能网卡162中的第二PF队列。
从而,第二PF队列中既包含拟向目的端发送的数据包的地址,也包含需要发送至第二虚拟机140的数据包的地址。
S608,开启第二虚拟机140。
可以理解地,在开启第二虚拟机140后,第二物理功能网卡162便根据第二PF队列与运行有第二VF网卡的第二虚拟机140进行网络I/O的数据交互,从而保证了第二PF队列对应的数据能够正常传输至目的端或第二虚拟机140。
同样地,此时虽然此时第二虚拟机140可通过运行第二VF驱动与第二物理功能网卡162进行网络I/O的数据交互,但此时第二物理功能网卡162实际上仍然是由第二PF驱动所驱动。
S609,向第二智能网卡160发送第三控制指令。
由于第二智能网卡160的物理功能网卡数量有限,为了不造成资源浪费,目的主机120向第二智能网卡160发送第三控制指令,使得第二智能网卡160将第二虚拟接口从第二聚合网口中删除,从而解放了第二物理功能网卡162;同时开启第一虚拟接口,从而使得第二虚拟功能网卡164与配置有第二VF驱动的第二虚拟机140进行网络I/O的数据交互。
至此,第二虚拟机140的在线迁移过程结束,第二虚拟机140可以通过第二VF驱动与第二虚拟功能网卡164进行网络I/O的数据交互,正常进行工作。
本发明还提供了一种虚拟机热迁移方法,应用于如图4所示的智能网卡,用于实现虚拟机的在线迁移。该智能网卡既可以是图2中的第一智能网卡150,也可以是图2中的第二智能网卡160。
若智能网卡为与源主机110物理电连接的第一智能网卡150,请继续参阅图5,虚拟机热迁移方法包括:
S701,当接收到源主机110发送的第一控制指令时,通过第一智能网卡150的第一物理功能网卡152与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互。
其中,第一控制指令与源主机110接收到的虚拟机迁移指令关联。具体地,与源主机110接收到的虚拟机迁移指令关联可指,在源主机110接收到虚拟机迁移指令后,便会生成第一控制指令并向第一智能网卡150发送。
此外,第一智能网卡150包括第一聚合网口,第一聚合网口包括第一虚拟端口,第一虚拟功能网卡154通过第一虚拟端口与第一虚拟机130进行网络I/O的数据交互。
因此,如要通过第一智能网卡150的第一物理功能网卡152与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互,需要关闭第一虚拟端口,从而断开第一VF驱动与第一虚拟网卡的网络I/O的数据交互;同时还需要在第一聚合网口内添加第二虚拟端口,并控制第一物理功能网卡152与第二虚拟端口通信,从而使得第一物理功能网卡152通过第二虚拟端口与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互。
需要说明的是,虽然此时第一虚拟机130可通过运行第一VF驱动与第一物理功能网卡152进行I/O数据的交互,但此时第一物理功能网卡152实际上仍然是由第一PF驱动所驱动,第一VF驱动仅仅是将I/O数据写入第一PF队列。
若智能网卡为与目的主机120物理电连接的第二智能网卡160,请继续参阅图5,虚拟机热迁移方法包括:
S801,当接收到第二控制指令时,新建第二聚合网口并控制第二聚合网口与第二智能网卡160的第二物理功能网卡162通信。
其中,第二智能网卡160包括第二物理功能网卡162及第二虚拟功能网卡164。具体地,第二智能网卡160新建第二聚合网口,并在第二聚合网口内添加第一虚拟接口和第二虚拟接口,然后控制第一虚拟接口与第二虚拟功能网卡164通信,并控制第二虚拟接口与第二物理功能网卡162通信,最后关闭第一虚拟接口。
可以理解地,此时关闭第一虚拟接口,使得其他设备只能通过第二聚合网口的第二虚拟接口与第二物理功能网卡162进行网络I/O的数据交互,而无法通过第二聚合网口实现与第二虚拟功能网卡164的网络I/O的数据交互。
此外,第二智能网卡160在成功创建第二聚合网口后,还会生成第四反馈信息,并将第四反馈信息发送给目的主机120,以使目的主机120将该第二聚合网口分配给第二虚拟机140。
S802,当接收到第三控制指令时,将第二虚拟接口从第二聚合网口中删除,并开启第一虚拟接口以使第二虚拟功能网卡164与配置有第二VF驱动的第二虚拟机140进行网络I/O的数据交互。
目的主机120在开启第二虚拟机140后,向第二智能网卡160发送第三控制指令。
由于第二智能网卡160的物理功能网卡数量有限,为了不造成资源浪费,目的主机120向第二智能网卡160发送第三控制指令,使得第二智能网卡160将第二虚拟接口从第二聚合网口中删除,从而解放了第二物理功能网卡162;同时开启第一虚拟接口,从而使得第二虚拟功能网卡164与配置有第二VF驱动的第二虚拟机140进行网络I/O的数据交互。
至此,第二虚拟机140的在线迁移过程结束,第二虚拟机140可以通过第二VF驱动与第二虚拟功能网卡164进行网络I/O的数据交互,正常进行工作。
需要说明的是,若在如图2所示的虚拟机热迁移系统进行虚拟机的热迁移,需要按照如图5所述的信令流程图进行。例如,首先由源主机110执行S501,向目的主机120发送第一虚拟机130的配置信息;然后由目的主机120执行S601,依据配置信息创建第二虚拟机140并生成第二控制指令;接着仍然由目的主机120执行S602,向第二智能网卡160发送第二控制指令;然后由第二智能网卡160执行S801…依次类推,直至第二智能网卡160执行完S802后,虚拟机的热迁移过程结束。
进一步地,请参阅图6,为本发明实施例提供的一种第一虚拟机130热迁移装置,该第一虚拟机130热迁移装置实现的功能可以对应上述主机执行的虚拟机热迁移方法的步骤。该第一虚拟机130热迁移装置可以理解为如图3所述的主机,或主机的处理器,也可以独立于上述主机或处理器之外的在主机控制下实现本公开功能的组件。如图6所示,第一虚拟机130热迁移装置包括信息发送单元410、指令发送单元420、虚拟机控制单元430、队列同步单元440、虚拟机创建单元450、网口分配单元460、内存同步单元470、信息接收单元480以及队列更新单元490。
若主机为与第一智能网卡150物理电连接的源主机110时,信息发送单元410用于响应接收到的虚拟机迁移指令向目的主机120发送源主机110上布设的待迁移的第一虚拟机130的配置信息。
可以理解地,在一种可选的实施方式中,信息发送单元410可用于执行S501。
指令发送单元420用于向第一智能网卡150发送第一控制指令。
可以理解地,在一种可选的实施方式中,指令发送单元420可用于执行S502。
信息发送单元410还用于向目的主机120发送第一虚拟机130的内存数据。
可以理解地,在一种可选的实施方式中,信息发送单元410可用于执行S503。
虚拟机控制单元430用于暂停运行第一虚拟机130。
可以理解地,在一种可选的实施方式中,虚拟机控制单元430可用于执行S504。
队列同步单元440用于将第一物理功能网卡152中的第一PF队列同步至源主机110的第一主机环形队列以得到第一同步队列并生成同步指令。
可以理解地,在一种可选的实施方式中,队列同步单元440可用于执行S505。
信息发送单元410还用于将第一同步队列、第一主机环形队列对应的源主机数据及同步指令发送至目的主机120。
可以理解地,在一种可选的实施方式中,信息发送单元410可用于执行S506。
若主机为与第二智能网卡160物理电连接的目的主机120时,虚拟机创建单元450用于依据第一虚拟机130的配置信息创建第二虚拟机140并生成第二控制指令。
可以理解地,在一种可选的实施方式中,虚拟机创建单元450可用于执行S601。
指令发送单元420用于向第二智能网卡160发送第二控制指令。
可以理解地,在一种可选的实施方式中,指令发送单元420可用于执行S602。
网口分配单元460用于将第二聚合网口分配给第二虚拟机140。
可以理解地,在一种可选的实施方式中,网口分配单元460可用于执行S603。
内存同步单元470用于将第一虚拟机130的内存数据同步至第二虚拟机140中。
可以理解地,在一种可选的实施方式中,内存同步单元470可用于执行S604。
信息接收单元480用于接收第一同步队列、第一主机环形队列对应的源主机数据及同步指令。
可以理解地,在一种可选的实施方式中,信息接收单元480可用于执行S605。
队列更新单元490用于响应同步指令而根据源主机数据的地址变化信息以及预存储的地址页表更新第一同步队列得到第二同步队列。
可以理解地,在一种可选的实施方式中,队列更新单元490可用于执行S606。
队列同步单元440用于将第二同步队列同步至第二物理功能网卡162中的第二PF队列。
可以理解地,在一种可选的实施方式中,队列同步单元440可用于执行S607。
虚拟机控制单元430用于开启第二虚拟机140。
可以理解地,在一种可选的实施方式中,虚拟机控制单元430可用于执行S608。
指令发送单元420用于向第二智能网卡160发送第三控制指令。
可以理解地,在一种可选的实施方式中,指令发送单元420可用于执行S609。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图3所示的第一存储器210中或固化于该主机的操作系统(Operating System,OS)中,并可由图3中的第一处理器220执行。同时,执行上述模块所需的数据、程序的代码等可以存储在第一存储器210中。
进一步地,请参阅图7,为本发明实施例提供的一种第二虚拟机140热迁移装置,该第二虚拟机140热迁移装置实现的功能可以对应上述智能网卡执行的虚拟机热迁移方法的步骤。该第二虚拟机140热迁移装置可以理解为如图4所述的智能网卡,或智能网卡的处理器,也可以独立于上述智能网卡或处理器之外的在智能网卡控制下实现本公开功能的组件。如图7所示,第二虚拟机140热迁移装置包括网卡配置单元510及聚合网口新建单元520。
若智能网卡为与源主机110物理电连接的第一智能网卡150,网卡配置单元510用于当接收到源主机110发送的第一控制指令时,通过第一智能网卡150的第一物理功能网卡152与配置有第一VF驱动的第一虚拟机130进行网络I/O的数据交互。
可以理解地,在一种可选的实施方式中,网卡配置单元510可用于执行S701。
若智能网卡为与目的主机120物理电连接的第二智能网卡160,聚合网口新建单元520用于当接收到第二控制指令时,新建第二聚合网口并控制第二聚合网口与第二智能网卡160的第二物理功能网卡162通信。
可以理解地,在一种可选的实施方式中,聚合网口新建单元520可用于执行S802。
网卡配置单元510用于当接收到第三控制指令时,将第二虚拟接口从第二聚合网口中删除,并开启第一虚拟接口以使第二虚拟功能网卡164与配置有第二VF驱动的第二虚拟机140进行网络I/O的数据交互。
可以理解地,在一种可选的实施方式中,网卡配置单元510可用于执行S802。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图4所示的第二存储器310中或固化于该智能网卡的操作系统(Operating System,OS)中,并可由图4中的第二处理器320执行。同时,执行上述模块所需的数据、程序的代码等可以存储在第二存储器310中。
进一步地,本公开实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的虚拟机迁移方法。
综上所述,本发明实施例提供的虚拟机热迁移方法及装置,在源主机向目的主机发送源主机上布设的待迁移的配置有第一VF驱动的第一虚拟机的内存数据,以使目的主机将第一虚拟机的内存数据同步至目的主机根据源主机响应接收到的虚拟机迁移指令而发送的第一虚拟机的配置信息创建的第二虚拟机中之前,向智能网卡发送第一控制指令以使第一虚拟机可通过运行第一VF驱动与第一物理功能网卡进行网络I/O的数据交互,使得在迁移第一虚拟机的内存数据的同时,第一虚拟机还能通过第一物理功能网卡收/发数据,使得源主机能够读取到迁移过程中第一虚拟机的数据变化,并能够将变化的数据同步至第二虚拟机,既能解决现有技术中利用智能网卡不能实现虚拟机在线迁移的问题,又能避免利用virtio-net驱动智能网卡导致的网卡综合性能低的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种虚拟机热迁移方法,应用于主机,其特征在于,所述虚拟机热迁移方法包括:
若所述主机为与第一智能网卡物理电连接的源主机,响应接收到的虚拟机迁移指令向目的主机发送所述源主机上布设的待迁移的第一虚拟机的配置信息,以使所述目的主机依据所述配置信息创建第二虚拟机,其中,所述第一智能网卡包括第一物理功能网卡,所述第一虚拟机上配置有第一虚拟功能驱动;
向所述第一智能网卡发送第一控制指令,以使所述第一智能网卡通过所述第一物理功能网卡与所述配置有所述第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;
向所述目的主机发送所述第一虚拟机的内存数据,以使所述目的主机将所述第一虚拟机的内存数据同步至所述第二虚拟机中。
2.根据权利要求1所述的虚拟机热迁移方法,其特征在于,在所述向所述目的主机发送所述第一虚拟机的内存数据的步骤之后,所述虚拟机热迁移方法还包括:
在所述第一虚拟机的内存数据同步至所述第二虚拟机后,暂停运行所述第一虚拟机;
将所述第一物理功能网卡中的第一物理功能队列同步至所述源主机的第一主机环形队列以得到第一同步队列并生成同步指令;
将所述第一同步队列、所述第一主机环形队列对应的源主机数据及所述同步指令发送至所述目的主机。
3.根据权利要求1所述的虚拟机热迁移方法,其特征在于,所述第二虚拟机上配置有第二虚拟功能驱动,所述虚拟机热迁移方法还包括:
若所述主机为与第二智能网卡物理电连接的目的主机,所述目的主机根据所述配置信息生成第二控制指令,其中,所述第二智能网卡包括第二物理功能网卡;
向所述第二智能网卡发送第二控制指令,以使所述第二智能网卡新建第二聚合网口并控制所述第二聚合网口与所述第二物理功能网卡通信;
在所述第二智能网卡新建所述第二聚合网口后,将所述第二聚合网口分配给所述第二虚拟机,以使所述配置有第二虚拟功能驱动的第二虚拟机通过所述第二聚合网口与所述第二物理功能网卡通信。
4.根据权利要求3所述的虚拟机热迁移方法,其特征在于,所述虚拟机热迁移方法还包括:
接收源主机发送的第一同步队列、第一主机环形队列对应的源主机数据及同步指令,其中,所述第一同步队列为所述源主机将所述第一物理功能网卡中的第一物理功能队列同步至所述源主机的第一主机环形队列得到;
响应所述同步指令而根据所述源主机数据的地址变化信息以及预存储的地址页表更新所述第一同步队列得到第二同步队列;
将所述第二同步队列同步至所述第二物理功能网卡中的第二物理功能队列。
5.根据权利要求4所述的虚拟机热迁移方法,其特征在于,所述第二智能网卡还包括第二虚拟功能网卡,所述第二聚合网口包括与所述第二虚拟功能网卡通信的第一虚拟接口及与所述第二物理功能网卡通信的第二虚拟接口;
所述响应所述同步指令而将所述第一同步队列同步至所述第二物理功能网卡中的第二物理功能队列的步骤之后,所述虚拟机热迁移方法还包括:
开启所述第二虚拟机;
向所述第二智能网卡发送第三控制指令,以使所述第二智能网卡将所述第二虚拟接口从所述第二聚合网口中删除,并开启所述第一虚拟接口以使所述第二虚拟功能网卡与所述配置有第二虚拟功能驱动的第二虚拟机进行网络I/O的数据交互。
6.一种虚拟机热迁移方法,应用于智能网卡,其特征在于,所述虚拟机热迁移方法包括:
若所述智能网卡为与源主机物理电连接的第一智能网卡,当接收到所述源主机发送的第一控制指令时,通过所述第一智能网卡的第一物理功能网卡与所述源主机上布设的待迁移的配置有第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;其中,所述第一控制指令与所述源主机接收到的虚拟机迁移指令关联。
7.根据权利要求6所述的虚拟机热迁移方法,其特征在于,所述第一智能网卡还包括第一聚合网口和第一虚拟功能网卡,所述第一聚合网口包括第一虚拟端口,所述第一虚拟功能网卡通过所述第一虚拟端口与所述第一虚拟机进行网络I/O的数据交互;
所述通过所述第一智能网卡的第一物理功能网卡与所述源主机上布设的待迁移的第一虚拟机进行网络I/O的数据交互的步骤包括:
关闭所述第一虚拟端口;
在所述第一聚合网口内添加第二虚拟端口,并控制所述第一物理功能网卡通过所述第二虚拟端口与所述配置有所述第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互。
8.根据权利要求6所述的虚拟机热迁移方法,其特征在于,所述虚拟机热迁移方法还包括:
若所述智能网卡为与目的主机物理电连接的第二智能网卡,当接收到所述目的主机根据所述第一虚拟机的配置信息生成的第二控制指令时,新建第二聚合网口并控制所述第二聚合网口与所述第二智能网卡的第二物理功能网卡通信;其中,所述配置信息为所述源主机响应接收到的虚拟机迁移指令而向所述目的主机发送的。
9.根据权利要求8所述的虚拟机热迁移方法,其特征在于,所述第二智能网卡还包括第二虚拟功能网卡,所述新建第二聚合网口并控制所述第二聚合网口与所述第二智能网卡的第二物理功能网卡通信的步骤包括:
新建第二聚合网口,并在所述第二聚合网口内添加第一虚拟接口和第二虚拟接口;
控制所述第一虚拟接口与所述第二虚拟功能网卡通信,并控制所述第二虚拟接口与所述第二物理功能网卡通信;
关闭所述第一虚拟接口。
10.根据权利要求8所述的虚拟机热迁移方法,其特征在于,所述虚拟机热迁移方法还包括:
当接收到所述目的主机在开启所述目的主机根据所述配置信息创建的配置有第二虚拟功能驱动的第二虚拟机后发送的第三控制指令时,将所述第二虚拟接口从所述第二聚合网口中删除,并开启所述第一虚拟接口以使所述第二虚拟功能网卡与所述配置有第二虚拟功能驱动的第二虚拟机进行网络I/O的数据交互。
11.一种虚拟机热迁移装置,应用于主机,其特征在于,所述虚拟机热迁移装置包括:
信息发送单元,若所述主机为与第一智能网卡物理电连接的源主机,所述信息发送单元用于响应接收到的虚拟机迁移指令向目的主机发送所述源主机上布设的待迁移的第一虚拟机的配置信息,以使所述目的主机依据所述配置信息创建第二虚拟机,其中,所述第一智能网卡包括第一物理功能网卡,所述第一虚拟机上配置有第一虚拟功能驱动;
指令发送单元,用于向所述第一智能网卡发送第一控制指令,以使所述第一智能网卡通过所述第一物理功能网卡与所述配置有所述第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;
所述信息发送单元还用于向所述目的主机发送所述第一虚拟机的内存数据,以使所述目的主机将所述第一虚拟机的内存数据同步至所述第二虚拟机中。
12.一种虚拟机热迁移装置,应用于智能网卡,其特征在于,所述虚拟机热迁移装置包括:
网卡配置单元,若所述智能网卡为与源主机物理电连接的第一智能网卡,所述网卡配置单元用于当接收到所述源主机发送的第一控制指令时,通过所述第一智能网卡的第一物理功能网卡与所述源主机上布设的待迁移的配置有第一虚拟功能驱动的第一虚拟机进行网络I/O的数据交互;其中,所述第一控制指令与所述源主机接收到的虚拟机迁移指令关联。
CN201811592633.0A 2018-12-25 2018-12-25 一种虚拟机热迁移方法及装置 Active CN109753346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811592633.0A CN109753346B (zh) 2018-12-25 2018-12-25 一种虚拟机热迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811592633.0A CN109753346B (zh) 2018-12-25 2018-12-25 一种虚拟机热迁移方法及装置

Publications (2)

Publication Number Publication Date
CN109753346A true CN109753346A (zh) 2019-05-14
CN109753346B CN109753346B (zh) 2021-01-01

Family

ID=66403995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811592633.0A Active CN109753346B (zh) 2018-12-25 2018-12-25 一种虚拟机热迁移方法及装置

Country Status (1)

Country Link
CN (1) CN109753346B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990116A (zh) * 2019-11-21 2020-04-10 优刻得科技股份有限公司 在智能网卡和虚拟机之间传输数据的方法、装置和系统
CN111736945A (zh) * 2019-08-07 2020-10-02 北京京东尚科信息技术有限公司 基于智能网卡的虚拟机热迁移方法、装置、设备及介质
CN112306624A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种信息处理方法、物理机和pcie设备
CN113630265A (zh) * 2021-06-30 2021-11-09 济南浪潮数据技术有限公司 一种基于智能网卡的虚拟网络冗余备份方法及装置
CN114003334A (zh) * 2020-07-28 2022-02-01 中移(苏州)软件技术有限公司 虚拟机热迁移网络中断的优化方法、装置、设备、存储介质和系统
CN114760242A (zh) * 2022-03-30 2022-07-15 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质
CN115913953A (zh) * 2022-11-04 2023-04-04 陕西浪潮英信科技有限公司 一种云资源加速方法、装置及其介质
WO2023124477A1 (zh) * 2021-12-31 2023-07-06 阿里巴巴(中国)有限公司 一种虚拟化设备的故障恢复方法和装置
CN117692382A (zh) * 2024-02-04 2024-03-12 珠海星云智联科技有限公司 链路聚合方法、网卡、设备以及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103201721A (zh) * 2012-08-29 2013-07-10 华为技术有限公司 虚拟机热迁移的系统和方法
CN103890728A (zh) * 2013-12-31 2014-06-25 华为技术有限公司 虚拟机热迁移的方法和服务器
CN104636185A (zh) * 2015-01-27 2015-05-20 华为技术有限公司 业务上下文管理方法、物理主机、pcie设备及迁移管理设备
CN106557444A (zh) * 2015-09-30 2017-04-05 中兴通讯股份有限公司 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置
CN107544841A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 虚拟机热迁移方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103201721A (zh) * 2012-08-29 2013-07-10 华为技术有限公司 虚拟机热迁移的系统和方法
CN103890728A (zh) * 2013-12-31 2014-06-25 华为技术有限公司 虚拟机热迁移的方法和服务器
CN104636185A (zh) * 2015-01-27 2015-05-20 华为技术有限公司 业务上下文管理方法、物理主机、pcie设备及迁移管理设备
CN106557444A (zh) * 2015-09-30 2017-04-05 中兴通讯股份有限公司 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置
CN107544841A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 虚拟机热迁移方法和系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306624A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种信息处理方法、物理机和pcie设备
CN111736945A (zh) * 2019-08-07 2020-10-02 北京京东尚科信息技术有限公司 基于智能网卡的虚拟机热迁移方法、装置、设备及介质
CN111736945B (zh) * 2019-08-07 2024-05-17 北京京东尚科信息技术有限公司 基于智能网卡的虚拟机热迁移方法、装置、设备及介质
CN110990116B (zh) * 2019-11-21 2023-01-24 优刻得科技股份有限公司 在智能网卡和虚拟机之间传输数据的方法、装置和系统
CN110990116A (zh) * 2019-11-21 2020-04-10 优刻得科技股份有限公司 在智能网卡和虚拟机之间传输数据的方法、装置和系统
CN114003334A (zh) * 2020-07-28 2022-02-01 中移(苏州)软件技术有限公司 虚拟机热迁移网络中断的优化方法、装置、设备、存储介质和系统
CN113630265A (zh) * 2021-06-30 2021-11-09 济南浪潮数据技术有限公司 一种基于智能网卡的虚拟网络冗余备份方法及装置
WO2023124477A1 (zh) * 2021-12-31 2023-07-06 阿里巴巴(中国)有限公司 一种虚拟化设备的故障恢复方法和装置
CN114760242B (zh) * 2022-03-30 2024-04-09 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质
CN114760242A (zh) * 2022-03-30 2022-07-15 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质
CN115913953A (zh) * 2022-11-04 2023-04-04 陕西浪潮英信科技有限公司 一种云资源加速方法、装置及其介质
CN115913953B (zh) * 2022-11-04 2024-06-04 陕西浪潮英信科技有限公司 一种云资源加速方法、装置及其介质
CN117692382A (zh) * 2024-02-04 2024-03-12 珠海星云智联科技有限公司 链路聚合方法、网卡、设备以及介质
CN117692382B (zh) * 2024-02-04 2024-06-07 珠海星云智联科技有限公司 链路聚合方法、网卡、设备以及介质

Also Published As

Publication number Publication date
CN109753346B (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN109753346A (zh) 一种虚拟机热迁移方法及装置
JP6605713B2 (ja) クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
US9176767B2 (en) Network interface card device pass-through with multiple nested hypervisors
CN103733574B (zh) 用于在虚拟化网络和非虚拟化实体之间通信的方法和网关
CN107276783B (zh) 一种实现虚拟机统一管理及互通的方法、装置和系统
CN110063051A (zh) 可重新配置的服务器
CN107580083A (zh) 一种容器ip地址分配的方法和系统
US20170099215A1 (en) Link aggregation group (lag) support on a software-defined network (sdn)
CN111049686B (zh) 一种电力监控系统安全防护虚拟实验室及其构建方法
CN106506314A (zh) 基于docker的网络高可用方法及装置
CN104320350A (zh) 用于提供基于信用的流控制的方法及系统
CN106878204B (zh) 一种虚拟机的创建方法和装置
CN103534987B (zh) 用于配置虚拟网络配置的方法和系统
US20150372867A1 (en) Cluster reconfiguration management
CN104199716B (zh) 一种虚拟机热迁移的方法、物理主机及系统
CN106155264B (zh) 管理存储子系统的电力消耗的计算机方法与计算机系统
US11343141B2 (en) Methods and apparatus to migrate physical server hosts between virtual standard switches and virtual distributed switches in a network
CN110830574B (zh) 一种基于docker容器实现内网负载均衡的方法
US9967139B2 (en) Remote zone management of JBOD systems
CN105978817A (zh) 用于传输数据的方法、存储器和网络适配器
CN109743205A (zh) 一种云平台os网络管理方法、装置及服务器
CN106484327A (zh) 一种数据处理方法及相关存储设备
CN104883302A (zh) 一种数据包转发的方法、装置及系统
CN107534577A (zh) 一种网络业务实例化的方法及设备
CN117997734A (zh) 一种针对多资源池网络的管理方法及系统

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