CN114143252B - 一种虚拟机迁移时组播流量不间断的实现方法 - Google Patents
一种虚拟机迁移时组播流量不间断的实现方法 Download PDFInfo
- Publication number
- CN114143252B CN114143252B CN202111430725.0A CN202111430725A CN114143252B CN 114143252 B CN114143252 B CN 114143252B CN 202111430725 A CN202111430725 A CN 202111430725A CN 114143252 B CN114143252 B CN 114143252B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- multicast
- host
- source
- source host
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
本发明涉及计算机网络技术领域,公开了一种虚拟机迁移时组播流量不间断的实现方法,包括:从源主机将虚拟机XML配置文件拷贝到目标主机;源主机qemu进程同目标主机qemu进程建立连接,将虚拟机中的内存数据从源主机迁移到目标主机;源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表;虚拟化管理平台根据目标主机添加multicast snooping表项的返回成功通知源主机vswitch数据迁移完成。本发明能够保证虚拟机接收来自组播源组播流量的连续性,解决了现有的虚拟机发生迁移导致组播流量中断一段时间的问题。
Description
技术领域
本发明属于计算机网络技术领域,特别是涉及一种虚拟机迁移时组播流量不间断的实现方法。
背景技术
IGMP Snooping是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,运行在openswitch上,通过侦听三层组播设备和虚拟机之间发送的组播协议报文来维护组播报文的出接口信息,从而管理和控制组播数据报文在openvswitch上转发,实现将组播流量转发给虚拟机,详细描述如图2所示,在OVS启用IGMP Snooping功能,图中有两个组播组,前两个组播组235.1.2.3,包括虚拟机VM-1和VM-2;后两个组播组235.4.5.6,包括虚拟机VM-3和VM-4,以后两个组播组为例说明组播路由器(图2中LocalMulticast Router)和虚拟机之间的组播通信过程:
1)组播路由器定时向组播组235.4.5.6发送IGMP查询报文。
2)OVS收到IGMP查询报文后,OVS侦听该组播报文并将收到组播的物理网卡加入到组播路由端口表中。
3)OVS向除物理网卡外的所有端口广播组播组为235.4.5.6的IGMP查询报文。
4)VM-3和VM-4收到组播组IGMP查询报文后,应答IGMP report报文并申明加入到组播组235.4.5.6中。
5)OVS收到IGMP report报文后,然后将连接到VM-3和VM-4的端口加入到组播成员端口表中,如果已经存在,则更新multicast snooping表老化时间。
6)这样,当OVS接收到router中组播组235.4.5.6组的组播报文后,则会通过组播成员表转发到VM-3和VM-4中。
7)同样,当VM-3和VM-4离开组播组235.4.5.6时,VM-3和VM-4会发送IGMPleave报文,并更新OVS multicast snooping表,这样OVS就会不将router组播流量转发给VM-3和VM-4了。
需要说明的是,如果VM-3和VM-4主动发送IGMP join报文,OVS侦听到IGMP join报文后也会更新multicast snooping表,学习到组播组成员端口表中。
但OVS IGMP Snooping在组播成员虚拟机迁移后存在明显不足,即OVS运行IGMPSnooping功能时,虚拟机作为组播组成员,当虚拟机从源服务器迁移到目标服务器时,目标服务器OVS与该虚拟机相关的组播转发表项需要在虚拟机发出组播组join报文或者应答组播组report报文之后才能学到,这样会导致迁移后的虚拟机组播流量中断一段时间,无法保证虚拟机组播流量的连续性。如图3所示,当host1服务器vswitch1启用IGMP Snooping功能时,在vswitch1上学习到组播转发表项:组播成员端口表和路由器端口表,这样组播组中的虚拟机vm1就能够接收到组播源发出的组播流量;如图4所示,当host1上的虚拟机vm1从host1迁移到host2上时,由于host2上的vswitch2没有与vm1相关的组播转发表,导致虚拟机vm1无法接收到组播源发出的组播流量而断流,只有在虚拟机重新加入组播组后才能接收到组播流量。
发明内容
本发明的目的在于提供一种虚拟机迁移时组播流量不间断的实现方法,通过当虚拟机作为组播流量的接收者时,虚拟机从源主机迁移到目标主机时,能够保证虚拟机接收来自组播源组播流量的连续性,解决了现有的虚拟机发生迁移导致组播流量中断一段时间的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为一种虚拟机迁移时组播流量不间断的实现方法,包括如下步骤:
步骤S1:从源主机将虚拟机XML配置文件拷贝到目标主机,并在目标主机创建与源主机上相同的虚拟机,并在目标主机将虚拟机启动,设置为暂停状态;
步骤S2:源主机qemu进程同目标主机qemu进程建立连接,将虚拟机中的内存数据从源主机迁移到目标主机;
步骤S3:将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表;
步骤S4:虚拟化管理平台根据目标主机添加multicast snooping表项的返回成功通知源主机vswitch数据迁移完成;
步骤S5:源主机端停止虚拟机,通知目标主机虚拟机迁移完成;目标主机收到迁移完成消息后,将虚拟机状态由暂停状态变为运行状态。
作为一种优选的技术方案,所述步骤S2中,源主机qemu进程同目标主机qemu进程建立连接时,采用互联网组管理协议IGMP窥探Snooping识别网络中源主机的虚拟站点接口VSI组播组数据,对进出源主机qemu的进程数据进行监控,抽取源主机qemu迁移时所需信息并进行采集,将采集所得信息进行汇总并下发至目标主机。
作为一种优选的技术方案,所述互联网组管理协议监控进出源主机qemu的网络数据时,从进出源主机的网络数据中提取源主机迁移所需信息;该源主机迁移所需信息,包括报文的源IP、目的IP、源MAC、目的MAC、源TCP/UDP端口号、目的TCP/UDP端口号和时间戳,并将提取的源主机迁移所需信息进行汇总后下发至目标主机。
作为一种优选的技术方案,所述目标主机对提取的源主机迁移所需信息进行分析,提取分析结果中虚拟机迁移时所需信息;该分析结果中虚拟机迁移时所需信息,包括预设时间段内有预设量的数据流量从一台虚拟机发送到另一台虚拟机,或者,预设时刻相应虚拟机接受相应量的其它虚拟机的TCP连接,将提取的信息打包后,分批发送。
作为一种优选的技术方案,所述步骤S2中,当虚拟机进行迁移时,虚拟机集群的迁移请求进入任务池,发送器获取映射表信息并根据任务池任务,调用迁移API,完成虚拟机集群迁移。
作为一种优选的技术方案,所述映射表中存储源主机与目的宿主机的映射关系;所述映射表的更新方式为:调度器根据综合计算强度的虚拟机放置策略,为源主机确定目的宿主机,并通过控制器更新到映射表中。
作为一种优选的技术方案,所述步骤S3中,将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表,具体步骤如下:
步骤S31:虚拟化管理平台从源主机读取与该虚拟机相关的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称,返回参数包括vswitch名称、虚拟端口名称、组播组、虚拟端口VLAN Tag;
步骤S32:虚拟化管理平台向目标主机下发该虚拟机的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称、组播组(IPv4或者IPv6组播地址)、虚拟端口VLAN Tag;返回参数为成功或者失败;
步骤S33:目标主机收到消息后,根据vswitch名称和虚拟端口名称查询到虚拟端口号,并在vswitch multicast snooping表中添加组播成员端口表项,同时初始化虚拟机的组播成员端口表项老化时间,老化时间以目标主机vswitch组播转发表老化时间为准;同时,查询目标主机vswitch是否存在组播路由端口,如果不存在,则添加组播路由端口。
作为一种优选的技术方案,所述源主机在虚拟机迁移至目标主机的目的接口之前从网络管理侧获取该虚拟机的VSI组播组数据,将该目的接口加入该获取的VSI组播组数据对应的组播组,以使虚拟机迁移至目的接口之后继续接收VSI组播组的组播流量;所述目标主机在虚拟机迁移至目的接口前,向VSI管理设备请求该源主机的VSI组播组数据,接收VSI管理设备针对请求从VTDB中获取并返回的该源主机的VSI组播组数据,将目的接口加入VSI组播组数据对应的组播组,以使源主机迁移至目的接口之后继续接收VSI组播组的组播流量。
作为一种优选的技术方案,所述步骤S4中,虚拟化平台侦听其接入的虚拟机发送的IGMP成员关系报告IGMP reports报文,通过IGMP reports报文中的VLAN和源MAC地址确定出该IGMP reports报文来自虚拟机的哪个VSI,并解析出该IGMP reports报文中的组播组数据。
作为一种优选的技术方案,所述虚拟化平台侦听到虚拟机迁移至目的接口后,如果目的接口接收到第一个IGMP reports报文,或者接收到IGMP离开leave报文,或者设定时间到达,则停止针对该目的接口的IGMP Snooping模拟主机加入操作,将目的接口的组播组管理功能交由IGMP Snooping接管。
本发明具有以下有益效果:
本发明通过将虚拟机作为组播组的成员,当虚拟机发生迁移时,虚拟化管理平台选择恰当的时机,从虚拟机所在源主机vswitch读取组播表项,并在虚拟机迁移结束前下发给虚拟机迁移的目标主机,从而达到虚拟机作为组播流接收者在迁移后仍然保证组播流量的连续性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种虚拟机迁移时组播流量不间断的实现方法流程图;
图2为现有技术中组播流量转发至虚拟机的示意图;
图3为现有技术中虚拟机迁移前的组播转发过程示意图;
图4为现有技术中虚拟机迁移后的组播转发过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为一种虚拟机迁移时组播流量不间断的实现方法,包括如下步骤:
步骤S1:从源主机将虚拟机XML配置文件拷贝到目标主机,并在目标主机创建与源主机上相同的虚拟机,并在目标主机将虚拟机启动,设置为暂停状态;
步骤S2:源主机qemu进程同目标主机qemu进程建立连接,将虚拟机中的内存数据从源主机迁移到目标主机;
步骤S3:将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表;
步骤S4:虚拟化管理平台根据目标主机添加multicast snooping表项的返回成功通知源主机vswitch数据迁移完成;
步骤S5:源主机端停止虚拟机,通知目标主机虚拟机迁移完成;目标主机收到迁移完成消息后,将虚拟机状态由暂停状态变为运行状态。
步骤S2中,源主机qemu进程同目标主机qemu进程建立连接时,采用互联网组管理协议IGMP窥探Snooping识别网络中源主机的虚拟站点接口VSI组播组数据,对进出源主机qemu的进程数据进行监控,抽取源主机qemu迁移时所需信息并进行采集,将采集所得信息进行汇总并下发至目标主机。
互联网组管理协议监控进出源主机qemu的网络数据时,从进出源主机的网络数据中提取源主机迁移所需信息;该源主机迁移所需信息,包括报文的源IP、目的IP、源MAC、目的MAC、源TCP/UDP端口号、目的TCP/UDP端口号和时间戳,并将提取的源主机迁移所需信息进行汇总后下发至目标主机。
目的交换机接收到VSI管理设备发送的VSI组播组数据后,在VM迁移的目的接口使能IGMP Snooping模拟主机加入功能使所述目的接口加入VSI组播组数据对应的组播组。
通常情况下,运行IGMP的主机会对IGMP查询器发出的查询报文进行响应。但是,如果主机由于某种原因无法响应,就可能导致组播路由器认为该网段没有该组播组的成员,从而取消相应的转发路径。为避免这种情况的发生,将交换机的端口配置成为组播组成员(即配置模拟主机加入)。当收到IGMP查询报文时由模拟主机进行响应,从而保证该交换机能够继续收到组播报文。而模拟主机加入的实现原理如下:在交换机的某接口上使能模拟主机加入功能时,该交换机会通过该端口主动发送一个IGMP reports报文;在交换机的某端口上使能了模拟主机加入功能后,如果收到IGMP普遍组查询报文时,该交换机会通过该接口机加入功能时,交换机会通过该端口发送一个IGMP离开组报文。基于上面描述的模拟主机加入实现原理,通过在所述目的接口上使能IGMP Snooping模拟主机加入功能,使目的接口加入所述VSI组播组数据中的组播组,以使VM迁移至目的接口后继续接收所述组播组的组播流量。以VSI 1为例,假如接收到VSI1组播组数据,则本步骤306在VSI 1所在接口执行IGMP Snooping模拟主机加入操作使该接口加入VSI组播组数据中的组播组。
目标主机对提取的源主机迁移所需信息进行分析,提取分析结果中虚拟机迁移时所需信息;该分析结果中虚拟机迁移时所需信息,包括预设时间段内有预设量的数据流量从一台虚拟机发送到另一台虚拟机,或者,预设时刻相应虚拟机接受相应量的其它虚拟机的TCP连接,将提取的信息打包后,分批发送。
步骤S2中,当虚拟机进行迁移时,虚拟机集群的迁移请求进入任务池,发送器获取映射表信息并根据任务池任务,调用迁移API,完成虚拟机集群迁移。
映射表中存储源主机与目的宿主机的映射关系;映射表的更新方式为:调度器根据综合计算强度的虚拟机放置策略,为源主机确定目的宿主机,并通过控制器更新到映射表中。
步骤S3中,将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表,具体步骤如下:
步骤S31:虚拟化管理平台从源主机读取与该虚拟机相关的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称,返回参数包括vswitch名称、虚拟端口名称、组播组(IPv4或者IPv6组播地址)、虚拟端口VLAN Tag;
步骤S32:虚拟化管理平台向目标主机下发该虚拟机的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称、组播组(IPv4或者IPv6组播地址)、虚拟端口VLAN Tag;返回参数为成功或者失败;
步骤S33:目标主机收到消息后,根据vswitch名称和虚拟端口名称查询到虚拟端口号,并在vswitch multicast snooping表中添加组播成员端口表项,同时初始化虚拟机的组播成员端口表项老化时间,老化时间以目标主机vswitch组播转发表老化时间为准;同时,查询目标主机vswitch是否存在组播路由端口,如果不存在,则添加组播路由端口,结果如下表1和表2所示:
表1为vswitch组播组成员端口表
表2为vswitch组播组路由端口表
源主机在虚拟机迁移至目标主机的目的接口之前从网络管理侧获取该虚拟机的VSI组播组数据,将该目的接口加入该获取的VSI组播组数据对应的组播组,以使虚拟机迁移至目的接口之后继续接收VSI组播组的组播流量;所述目标主机在虚拟机迁移至目的接口前,向VSI管理设备请求该源主机的VSI组播组数据,接收VSI管理设备针对请求从VTDB中获取并返回的该源主机的VSI组播组数据,将目的接口加入VSI组播组数据对应的组播组,以使源主机迁移至目的接口之后继续接收VSI组播组的组播流量。
步骤S4中,虚拟化平台侦听其接入的虚拟机发送的IGMP成员关系报告IGMPreports报文,通过IGMP reports报文中的VLAN和源MAC地址确定出该IGMP reports报文来自虚拟机的哪个VSI,并解析出该IGMP reports报文中的组播组数据。
虚拟化平台侦听到虚拟机迁移至目的接口后,如果目的接口接收到第一个IGMPreports报文,或者接收到IGMP离开leave报文,或者设定时间到达,则停止针对该目的接口的IGMP Snooping模拟主机加入操作,将目的接口的组播组管理功能交由IGMP Snooping接管。
本实施例的一个具体应用为:
现有技术中如图2所示,在OVS启用IGMP Snooping功能,图中有两个组播组,绿色组播组235.1.2.3,包括虚拟机VM-1和VM-2;蓝色组播组235.4.5.6,包括虚拟机VM-3和VM-4,以蓝色组播组为例说明组播路由器(图中Local Multicast Router)和虚拟机之间的组播通信过程:
1、组播路由器定时向组播组235.4.5.6发送IGMP查询报文。
2、OVS收到IGMP查询报文后,OVS侦听该组播报文并将收到组播的物理网卡加入到组播路由端口表中。
3、OVS向除物理网卡外的所有端口广播组播组为235.4.5.6的IGMP查询报文。
4、VM-3和VM-4收到组播组IGMP查询报文后,应答IGMP report报文并申明加入到组播组235.4.5.6中。
5、OVS收到IGMP report报文后,然后将连接到VM-3和VM-4的端口加入到组播成员端口表中,如果已经存在,则更新multicast snooping表老化时间。
6、这样,当OVS接收到router中组播组235.4.5.6组的组播报文后,则会通过组播成员表转发到VM-3和VM-4中。
7、同样,当VM-3和VM-4离开组播组235.4.5.6时,VM-3和VM-4会发送IGMP leave报文,并更新OVS multicast snooping表,这样OVS就会不将router组播流量转发给VM-3和VM-4了。
如图3、图4所示,OVS运行IGMP Snooping功能时,虚拟机作为组播组成员,当虚拟机从源服务器迁移到目标服务器时,目标服务器OVS与该虚拟机相关的组播转发表项需要在虚拟机发出组播组join报文或者应答组播组report报文之后才能学到,这样会导致迁移后的虚拟机组播流量中断一段时间,无法保证虚拟机组播流量的连续性。
IGMP Snooping相关的端口概念:
成员端口(Member Port):又称组播组成员端口,表示虚拟交换机上朝向组播组成员一侧的端口,如vswitch1连接虚拟机的3端口,虚拟交换机将所有成员端口都记录在IGMPSnooping转发表中。
路由器端口(Router Port):vswitch上朝向TOR一侧的端口,如vswitch1和TOR相连的端口。虚拟交换机将所有路由器端口都记录在路由器端口列表中。
图3是虚拟机迁移前的组播转发过程,当host1服务器vswitch1启用IGMPSnooping功能时,在vswitch1上学习到组播转发表项:组播成员端口表和路由器端口表,这样组播组中的虚拟机vm1就能够接收到组播源发出的组播流量。
图4是虚拟机迁移后的组播转发过程,当host1上的虚拟机vm1从host1迁移到host2上时,由于host2上的vswitch2没有与vm1相关的组播转发表,导致虚拟机vm1无法接收到组播源发出的组播流量而断流,只有在虚拟机重新加入组播组后才能接收到组播流量。
相较于现有技术,当虚拟机作为组播流量的接收者时,虚拟机从源主机迁移到目标主机时,能够保证虚拟机接收来自组播源组播流量的连续性,不会因为虚拟机发生迁移导致组播流量中断一段时间;所以在本申请文件中,虚拟机作为组播组的成员,当虚拟机发生迁移时,虚拟化管理平台选择恰当的时机(见下述组播转发表迁移阶段),从虚拟机所在源主机vswitch读取组播表项,并在虚拟机迁移结束前下发给虚拟机迁移的目标主机,从而达到虚拟机作为组播流接收者在迁移后仍然保证组播流量的连续性。
方案详述如下:
1.准备阶段
从源主机将虚拟机XML配置文件拷贝到目标主机,并在目标主机创建与源主机上一模一样的虚拟机,并在目标主机将虚拟机启动,设置为暂停状态。
2.内存迁移阶段
源主机qemu进程同目标主机qemu进程建立连接,将虚拟机中的内存数据从源主机迁移到目标主机,若源主机虚拟机内存存在脏数据,继续迁移内存,直到源主机无内存脏数据,这样才能完成内存迁移。
3.组播转发表迁移阶段
本阶段用于将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表,详细描述如下:
1)虚拟化管理平台从源主机读取与该虚拟机相关的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称,返回参数包括vswitch名称、虚拟端口名称、组播组(IPv4或者IPv6组播地址)、虚拟端口VLAN Tag。
2)虚拟化管理平台向目标主机下发该虚拟机的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称、组播组(IPv4或者IPv6组播地址)、虚拟端口VLAN Tag;返回参数为成功或者失败。
3)目标主机收到消息后,根据vswitch名称和虚拟端口名称查询到虚拟端口号,并在vswitch multicast snooping表中添加组播成员端口表项,同时初始化虚拟机的组播成员端口表项老化时间,老化时间以目标主机vswitch组播转发表老化时间为准;同时,查询目标主机vswitch是否存在组播路由端口,如果不存在,则添加组播路由端口,结果如下:
vswitch组播组成员端口表
vswitch组播组路由端口表
4)虚拟化管理平台根据目标主机添加multicast snooping表项的返回成功通知源主机vswitch数据迁移完成。
4.虚拟机迁移结束
源主机端停止虚拟机,通知目标主机虚拟机迁移完成;目标主机收到迁移完成消息后,将虚拟机状态由暂停状态变为运行状态
需要说明的是,如果VM-3和VM-4主动发送IGMP join报文,OVS侦听到IGMP join报文后也会更新multicast snooping表,学习到组播组成员端口表中。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,包括如下步骤:
步骤S1:从源主机将虚拟机XML配置文件拷贝到目标主机,并在目标主机创建与源主机上相同的虚拟机,并在目标主机将虚拟机启动,设置为暂停状态;
步骤S2:源主机qemu进程同目标主机qemu进程建立连接,将虚拟机中的内存数据从源主机迁移到目标主机;
步骤S3:将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表;
步骤S4:虚拟化管理平台根据目标主机添加multicast snooping表项的返回成功通知源主机vswitch数据迁移完成;
步骤S5:源主机端停止虚拟机,通知目标主机虚拟机迁移完成;目标主机收到迁移完成消息后,将虚拟机状态由暂停状态变为运行状态。
2.根据权利要求1所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述步骤S2中,源主机qemu进程同目标主机qemu进程建立连接时,采用互联网组管理协议IGMP窥探Snooping识别网络中源主机的虚拟站点接口VSI组播组数据,对进出源主机qemu的进程数据进行监控,抽取源主机qemu迁移时所需信息并进行采集,将采集所得信息进行汇总并下发至目标主机。
3.根据权利要求2所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述互联网组管理协议监控进出源主机qemu的网络数据时,从进出源主机的网络数据中提取源主机迁移所需信息;该源主机迁移所需信息,包括报文的源IP、目的IP、源MAC、目的MAC、源TCP/UDP端口号、目的TCP/UDP端口号和时间戳,并将提取的源主机迁移所需信息进行汇总后下发至目标主机。
4.根据权利要求3所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述目标主机对提取的源主机迁移所需信息进行分析,提取分析结果中虚拟机迁移时所需信息;该分析结果中虚拟机迁移时所需信息,包括预设时间段内有预设量的数据流量从一台虚拟机发送到另一台虚拟机,或者,预设时刻相应虚拟机接受相应量的其它虚拟机的TCP连接,将提取的信息打包后,分批发送。
5.根据权利要求1所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述步骤S2中,当虚拟机进行迁移时,虚拟机集群的迁移请求进入任务池,发送器获取映射表信息并根据任务池任务,调用迁移API,完成虚拟机集群迁移。
6.根据权利要求5所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述映射表中存储源主机与目的宿主机的映射关系;所述映射表的更新方式为:调度器根据综合计算强度的虚拟机放置策略,为源主机确定目的宿主机,并通过控制器更新到映射表中。
7.根据权利要求1所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述步骤S3中,将源主机vswitch上与虚拟机相关的multicast snooping表项迁移到目标主机vswitch的multicast snooping表,具体步骤如下:
步骤S31:虚拟化管理平台从源主机读取与该虚拟机相关的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称,返回参数包括vswitch名称、虚拟端口名称、组播组、虚拟端口VLAN Tag;
步骤S32:虚拟化管理平台向目标主机下发该虚拟机的multicast snooping表项,输入参数为该虚拟机使用的vswitch名称、虚拟端口名称、组播组、虚拟端口VLAN Tag;返回参数为成功或者失败;
步骤S33:目标主机收到消息后,根据vswitch名称和虚拟端口名称查询到虚拟端口号,并在vswitch multicast snooping表中添加组播成员端口表项,同时初始化虚拟机的组播成员端口表项老化时间,老化时间以目标主机vswitch组播转发表老化时间为准;同时,查询目标主机vswitch是否存在组播路由端口,如果不存在,则添加组播路由端口。
8.根据权利要求7所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述源主机在虚拟机迁移至目标主机的目的接口之前从网络管理侧获取该虚拟机的VSI组播组数据,将该目的接口加入该获取的VSI组播组数据对应的组播组,以使虚拟机迁移至目的接口之后继续接收VSI组播组的组播流量,目标主机在虚拟机迁移至目的接口前,向VSI管理设备请求该源主机的VSI组播组数据,接收VSI管理设备针对请求从VTDB即VSI类型数据库VSI type database,中获取并返回的该源主机的VSI组播组数据,将目的接口加入VSI组播组数据对应的组播组,以使源主机迁移至目的接口之后继续接收VSI组播组的组播流量。
9.根据权利要求1所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述步骤S4中,虚拟化平台侦听其接入的虚拟机发送的IGMP成员关系报告IGMP reports报文,通过IGMP reports报文中的VLAN和源MAC地址确定出该IGMP reports报文来自虚拟机的哪个VSI,并解析出该IGMP reports报文中的组播组数据。
10.根据权利要求9所述的一种虚拟机迁移时组播流量不间断的实现方法,其特征在于,所述虚拟化平台侦听到虚拟机迁移至目的接口后,如果目的接口接收到第一个IGMPreports报文,或者接收到IGMP离开leave报文,或者设定时间到达,则停止针对该目的接口的IGMP Snooping模拟主机加入操作,将目的接口的组播组管理功能交由IGMP Snooping接管。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111430725.0A CN114143252B (zh) | 2021-11-29 | 2021-11-29 | 一种虚拟机迁移时组播流量不间断的实现方法 |
PCT/CN2021/140360 WO2023092778A1 (zh) | 2021-11-29 | 2021-12-22 | 一种虚拟机迁移时组播流量不间断的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111430725.0A CN114143252B (zh) | 2021-11-29 | 2021-11-29 | 一种虚拟机迁移时组播流量不间断的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114143252A CN114143252A (zh) | 2022-03-04 |
CN114143252B true CN114143252B (zh) | 2022-11-01 |
Family
ID=80388883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111430725.0A Active CN114143252B (zh) | 2021-11-29 | 2021-11-29 | 一种虚拟机迁移时组播流量不间断的实现方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114143252B (zh) |
WO (1) | WO2023092778A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679461B (zh) * | 2022-03-30 | 2023-02-14 | 浙江大学 | 面向虚拟机热迁移场景的云网络会话连通性保障方法及系统 |
CN115499385B (zh) * | 2022-09-21 | 2023-09-12 | 中电云数智科技有限公司 | 一种vDPA虚机热迁移不丢包的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102694672A (zh) * | 2011-03-24 | 2012-09-26 | 华为技术有限公司 | 虚拟机参数迁移的方法、设备和虚拟机服务器 |
CN103812823A (zh) * | 2012-11-07 | 2014-05-21 | 华为技术有限公司 | 虚拟机热迁移时配置信息迁移的方法、设备及系统 |
CN104579894A (zh) * | 2013-10-28 | 2015-04-29 | 杭州华三通信技术有限公司 | 分布式虚拟交换机系统的IGMP Snooping实现方法及装置 |
CN104965757A (zh) * | 2015-01-21 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
CN105376131A (zh) * | 2014-07-30 | 2016-03-02 | 杭州华三通信技术有限公司 | 一种组播迁移方法和网络设备 |
WO2016041521A1 (en) * | 2014-09-19 | 2016-03-24 | Hangzhou H3C Technologies Co., Ltd. | Migration of virtual machines |
CN109861930A (zh) * | 2018-12-07 | 2019-06-07 | 北京金山云网络技术有限公司 | 虚拟交换机与虚拟机的连接方法、装置及宿主机 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2458154B (en) * | 2008-03-07 | 2012-06-27 | Hewlett Packard Development Co | Routing across a virtual network |
JP5521620B2 (ja) * | 2010-02-19 | 2014-06-18 | 富士通株式会社 | 中継装置、仮想マシンシステム及び中継方法 |
CN102594652B (zh) * | 2011-01-13 | 2015-04-08 | 华为技术有限公司 | 一种虚拟机迁移方法、交换机、虚拟机系统 |
CN102394831A (zh) * | 2011-11-28 | 2012-03-28 | 杭州华三通信技术有限公司 | 基于虚拟机vm迁移的流量不中断方法和装置 |
EP2687982A1 (en) * | 2012-07-16 | 2014-01-22 | NTT DoCoMo, Inc. | Hierarchical system for managing a plurality of virtual machines, method and computer program |
CN104010018B (zh) * | 2013-02-27 | 2017-09-12 | 联想企业解决方案(新加坡)私人有限公司 | 同步组播组的方法和装置 |
US9282033B2 (en) * | 2013-08-06 | 2016-03-08 | Cisco Technology, Inc. | Intelligent handling of virtual machine mobility in large data center environments |
US11537422B2 (en) * | 2019-11-20 | 2022-12-27 | Red Hat, Inc. | Virtual machine migration downtime reduction using a multicast address |
CN111163007A (zh) * | 2019-12-20 | 2020-05-15 | 浪潮电子信息产业股份有限公司 | 一种组播接收通道的建立方法、装置、设备及存储介质 |
US11360799B2 (en) * | 2020-04-28 | 2022-06-14 | International Business Machines Corporation | Virtual machine live migration with seamless network connectivity |
-
2021
- 2021-11-29 CN CN202111430725.0A patent/CN114143252B/zh active Active
- 2021-12-22 WO PCT/CN2021/140360 patent/WO2023092778A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102694672A (zh) * | 2011-03-24 | 2012-09-26 | 华为技术有限公司 | 虚拟机参数迁移的方法、设备和虚拟机服务器 |
CN103812823A (zh) * | 2012-11-07 | 2014-05-21 | 华为技术有限公司 | 虚拟机热迁移时配置信息迁移的方法、设备及系统 |
CN104579894A (zh) * | 2013-10-28 | 2015-04-29 | 杭州华三通信技术有限公司 | 分布式虚拟交换机系统的IGMP Snooping实现方法及装置 |
CN105376131A (zh) * | 2014-07-30 | 2016-03-02 | 杭州华三通信技术有限公司 | 一种组播迁移方法和网络设备 |
WO2016041521A1 (en) * | 2014-09-19 | 2016-03-24 | Hangzhou H3C Technologies Co., Ltd. | Migration of virtual machines |
CN104965757A (zh) * | 2015-01-21 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
CN109861930A (zh) * | 2018-12-07 | 2019-06-07 | 北京金山云网络技术有限公司 | 虚拟交换机与虚拟机的连接方法、装置及宿主机 |
Non-Patent Citations (3)
Title |
---|
Performance Evolution of Higher Reliability Task in Cloud Computing;Mishra, DK等;《2014 CONFERENCE ON IT IN BUSINESS, INDUSTRY AND GOVERNMENT (CSIBIG)》;20140101;全文 * |
基于Serval的广域网下虚拟机在线迁移系统;周德江;《电子世界》;20160124(第01期);全文 * |
基于随机模型的云服务可用性分析研究;刘博;《中国博士学位论文全文数据库 (信息科技辑)》;20210315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114143252A (zh) | 2022-03-04 |
WO2023092778A1 (zh) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9798572B2 (en) | Virtual machine migration method, switch, and virtual machine system | |
US11237858B2 (en) | Software-defined data center, and deployment method for service cluster therein | |
US11343168B2 (en) | Interconnected region controller, interconnected region control method, and computer storage medium | |
CN114143252B (zh) | 一种虚拟机迁移时组播流量不间断的实现方法 | |
US9940153B2 (en) | Method for generating configuration information, and network control unit | |
EP2843906B1 (en) | Method, apparatus, and system for data transmission | |
US20170264496A1 (en) | Method and device for information processing | |
CN111736958B (zh) | 虚拟机迁移方法、系统、计算机设备及存储介质 | |
US20140250220A1 (en) | Optimizing Handling of Virtual Machine Mobility in Data Center Environments | |
AU2004306913A1 (en) | Redundant routing capabilities for a network node cluster | |
CN105247822A (zh) | 通过路由重新发起的方式链接服务区 | |
CN104980355A (zh) | 一种sdn环境下的源端可控组播数据传输方法及系统 | |
CN109587286A (zh) | 一种设备接入控制方法及装置 | |
CN111638957A (zh) | 一种集群共享式公有云负载均衡的实现方法 | |
CN111193773A (zh) | 负载均衡方法、装置、设备及存储介质 | |
CN111698164B (zh) | 虚拟机的网络路由方法、装置和管理服务器 | |
CN103631652A (zh) | 虚拟机迁移的实现方法及系统 | |
CN104580472A (zh) | 流表项处理方法以及装置 | |
CN110855488A (zh) | 一种虚拟机接入方法及装置 | |
CN112637105A (zh) | 切换防火墙的方法、系统、装置及计算机可读存储介质 | |
CN117041140A (zh) | 一种数据报文的传输方法、相关装置、设备以及存储介质 | |
CN103401954B (zh) | 虚拟dhcp的实现方法 | |
CN113839862A (zh) | Mclag邻居之间同步arp信息的方法、系统、终端及存储介质 | |
CN106059922A (zh) | 路由注入方法及装置 | |
CN107528788B (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 | ||
CB02 | Change of applicant information |
Address after: Room 1308, 13th floor, East Tower, 33 Fuxing Road, Haidian District, Beijing 100036 Applicant after: China Telecom Digital Intelligence Technology Co.,Ltd. Address before: Room 1308, 13th floor, East Tower, 33 Fuxing Road, Haidian District, Beijing 100036 Applicant before: CHINA TELECOM GROUP SYSTEM INTEGRATION Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |