一种网络通道切换方法及装置转让专利

申请号 : CN201310386006.2

文献号 : CN103441879B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄凯明吴瑾杨华

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种网络通道切换方法及装置,以解决现有网络通道切换过程中已缓存的网络报文被丢弃,影响上层应用业务的数据完整性的问题。本发明中,控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,所述指定虚拟机为待进行在线迁移的虚拟机;确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将所述指定虚拟机使用的网络通道由硬通道切换为软通道。通过本发明能够确保SR‑IOV网卡中涉及的虚拟机使用的硬通道中接收队列和发送队列不再有已缓存的网络报文,不会造成报文的丢失,保证数据完整性。

权利要求 :

1.一种网络通道切换方法,其特征在于,包括:

控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,所述指定虚拟机为待进行在线迁移的虚拟机;

确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将所述指定虚拟机使用的网络通道由硬通道切换为软通道。

2.如权利要求1所述的方法,其特征在于,所述控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,具体包括:调用所述支持虚拟化技术的网卡的主动发送拥塞反压通告功能;

向所述支持虚拟化技术的网卡发送指令,通过所述指令指示所述支持虚拟化技术的网卡通过调用的所述主动发送拥塞反压通告功能,向所述报文源发送端发送拥塞反压通告。

3.如权利要求1或2所述的方法,其特征在于,所述控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,具体包括:控制所述支持虚拟化技术的网卡,向所述报文源发送端持续发送拥塞反压通告。

4.如权利要求1所述的方法,其特征在于,确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空,具体包括:调用所述支持虚拟化技术的网卡中的接收队列和发送队列状态查询功能;

通过调用的所述接收队列和发送队列状态查询功能向所述指定虚拟机使用的硬通道发送状态查询指令;

当接收到所述支持虚拟化技术的网卡反馈的、指示所述指定虚拟机使用的硬通道接收队列和发送队列为空的指令时,确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空。

5.如权利要求1所述的方法,其特征在于,执行网络通道的切换之后,还包括:控制所述支持虚拟化技术的网卡停止向所述报文源发送端发送拥塞反压通告。

6.一种网络通道切换装置,其特征在于,包括控制单元和切换单元,其中,所述控制单元,用于控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,所述指定虚拟机为待进行在线迁移的虚拟机,并将已指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文的信息发送给所述切换单元;

所述切换单元,用于接收所述控制单元发送的已指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文的信息,并确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将所述指定虚拟机使用的网络通道由硬通道切换为软通道。

7.如权利要求6所述的网络通道切换装置,其特征在于,所述控制单元,具体用于:调用所述支持虚拟化技术的网卡的主动发送拥塞反压通告功能;

向所述支持虚拟化技术的网卡发送指令,通过所述指令指示所述支持虚拟化技术的网卡通过调用的所述主动发送拥塞反压通告功能,向所述报文源发送端发送拥塞反压通告。

8.如权利要求6或7所述的网络通道切换装置,其特征在于,所述控制单元,具体用于:控制所述支持虚拟化技术的网卡,向所述报文源发送端持续发送拥塞反压通告。

9.如权利要求6所述的网络通道切换装置,其特征在于,所述切换单元,具体用于:调用所述支持虚拟化技术的网卡中的接收队列和发送队列状态查询功能;

通过调用的所述接收队列和发送队列状态查询功能向所述指定虚拟机使用的硬通道发送状态查询指令;

当接收到所述支持虚拟化技术的网卡反馈的、指示所述指定虚拟机使用的硬通道接收队列和发送队列为空的指令时,确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空。

10.如权利要求6所述的网络通道切换装置,其特征在于,所述切换单元,还用于:控制所述支持虚拟化技术的网卡停止向所述报文源发送端发送拥塞反压通告。

说明书 :

一种网络通道切换方法及装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种网络通道切换方法及装置。

背景技术

[0002] 随着科技的不断发展,虚拟化技术的应用也越来越广泛,而虚拟机(Virtual Machine,VM)在线迁移(online migration)技术是虚拟化技术当中的热点。
[0003] 虚拟机在线迁移技术是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移。为了保证虚拟机上服务的可用,迁移过程仅允许非常短暂的切换时间,虚拟机在不同物理主机之间进行迁移时,由于切换的时间非常短暂,虚拟机的服务由源主机迁移到目的主机后,能够平滑运行,使用户感觉不到服务的中断。
[0004] 支持虚拟化技术的网卡,例如SR-IOV(Single root I/O Virtualization,支持单输入输出虚拟化标准)网卡为一种支持虚拟化技术的网卡,可以按照预先配置方案分配VF(Virtual Function,虚拟功能)给虚拟机作为网络IO(Input Output,输入输出)通道,该网络IO通道称为硬通道,使得虚拟机可以直接通过SR-IOV网卡实现网络报文的接收与发送,无需虚拟机监控器(Hypervisor)的转发,减少系统资源的占用,然而SR-IOV网卡不直接支持虚拟机的在线迁移,因为,若被迁移的虚拟机使用SR-IOV网卡的硬通道作为网络IO通道,则源主机和目的主机的网卡的所有参数完全一致,例如源主机和目的主机具有相同的网卡并且是相同的插槽;源主机和目的主机的VF序号也必须相同。
[0005] 通常情况下,为使SR-IOV网卡支持虚拟机的在线迁移,则在虚拟机迁移之前,切换SR-IOV网卡的网络通道,即将虚拟机使用的硬通道切换到软通道,其中,由虚拟机监控器(Hypervisor)通过软件方式为虚拟机分配网络IO通道,该分配的网络IO通道称为软通道,并将硬通道切换到软通道,使得网络IO通道在虚拟机迁移前后保持一致,实现虚拟机的在线迁移,当迁移完成后,若存在可用的硬通道,并且根据需求,需要将软通道切换回硬通道,则再将软通道切换到硬通道。
[0006] 一般的,在SR-IOV网卡中进行网络通道切换,采用如下两种方式:
[0007] 第一种方式
[0008] 虚拟机监控器一方面将虚拟机VF的MAC和VLAN过滤器迁移到PF(Physical Function,物理功能)关联的L2Switch(报文源发送端)中的缺省端口,进行网络流量的传输,另一方面向PF发送指令以删除VF关联的端口,PF将与VF关联的软硬件资源进行释放,完成删除操作,并对VF清零,重置VF。
[0009] 第二种方式
[0010] 虚拟机监控器的仿真网卡被终止并执行重置操作,VF被静默以使其不再接收新的收发请求,而收发队列缓存的报文继续被执行发送与接收操作,直到收发队列为空,再对VF进行清盘,VF清盘之后,VF的网络接口完整状态被传递给仿真网络IO设备,进行VM的网络流量传输。
[0011] 然而上述进行网络通道的切换过程中,第一种方式中由于VF被重置,会使已缓存的报文被丢弃,第二种方式中VF被静默,会使得已接收到的网络报文被丢弃,即现有的网络通道进行切换时,SR-IOV网卡中已缓存的网络报文很容易被丢弃,影响上层应用业务的数据完整性。

发明内容

[0012] 本发明实施例提供一种网络通道切换方法及装置,以解决现有在进行网络通道切换过程中已缓存的网络报文被丢弃,影响上层应用业务的数据完整性的问题。
[0013] 第一方面,提供一种网络通道切换方法,包括:
[0014] 控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,所述指定虚拟机为待进行在线迁移的虚拟机;
[0015] 确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将所述指定虚拟机使用的网络通道由硬通道切换为软通道。
[0016] 结合第一方面,在第一种可能的实现方式中,所述控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,具体包括:
[0017] 调用所述支持虚拟化技术的网卡的主动发送拥塞反压通告功能;
[0018] 向所述支持虚拟化技术的网卡发送指令,通过所述指令指示所述支持虚拟化技术的网卡通过调用的所述主动发送拥塞反压通告功能,向所述报文源发送端发送拥塞反压通告。
[0019] 结合第一方面,或者结合第一方面的第一种可能实现方式,在第二种可能的实现方式中,所述控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,具体包括:
[0020] 控制所述支持虚拟化技术的网卡,向所述报文源发送端持续发送拥塞反压通告。
[0021] 结合第一方面,在第三种可能的实现方式中,确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空,具体包括:
[0022] 调用所述支持虚拟化技术的网卡中的接收队列和发送队列状态查询功能;
[0023] 通过调用的所述接收队列和发送队列状态查询功能向所述指定虚拟机使用的硬通道发送状态查询指令;
[0024] 当接收到所述支持虚拟化技术的网卡反馈的、指示所述指定虚拟机使用的硬通道接收队列和发送队列为空的指令时,确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空。
[0025] 结合第一方面,在第四种可能的实现方式中,执行网络通道的切换之后,还包括:
[0026] 控制所述支持虚拟化技术的网卡停止向所述报文源发送端发送拥塞反压通告。
[0027] 第二方面,提供一种网络通道切换装置,包括控制单元和切换单元,其中,[0028] 所述控制单元,用于控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,所述指定虚拟机为待进行在线迁移的虚拟机,并将已指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文的信息发送给所述切换单元;
[0029] 所述切换单元,用于接收所述控制单元发送的已指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文的信息,并确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将所述指定虚拟机使用的网络通道由硬通道切换为软通道。
[0030] 结合第二方面,在第一种可能的实现方式中,所述控制单元,具体用于:
[0031] 调用所述支持虚拟化技术的网卡的主动发送拥塞反压通告功能;
[0032] 向所述支持虚拟化技术的网卡发送指令,通过所述指令指示所述支持虚拟化技术的网卡通过调用的所述主动发送拥塞反压通告功能,向所述报文源发送端发送拥塞反压通告。
[0033] 结合第二方面,或者结合第二方面的第一种可能实现方式,在第二种可能的实现方式中,所述控制单元,具体用于:
[0034] 控制所述支持虚拟化技术的网卡,向所述报文源发送端持续发送拥塞反压通告。
[0035] 结合第二方面,在第三种可能的实现方式中,所述切换单元,具体用于:
[0036] 调用所述支持虚拟化技术的网卡中的接收队列和发送队列状态查询功能;
[0037] 通过调用的所述接收队列和发送队列状态查询功能向所述指定虚拟机使用的硬通道发送状态查询指令;
[0038] 当接收到所述支持虚拟化技术的网卡反馈的、指示所述指定虚拟机使用的硬通道接收队列和发送队列为空的指令时,确定所述指定虚拟机使用的硬通道中的接收队列和发送队列均为空。
[0039] 结合第二方面,在第四种可能的实现方式中,所述切换单元,还用于:
[0040] 控制所述支持虚拟化技术的网卡停止向所述报文源发送端发送拥塞反压通告。
[0041] 根据本发明第一方面提供的网络通道切换方法以及第二方面提供的网络通道切换装置,在进行网络通道切换前,控制支持虚拟化技术的网卡主动发送用于指示报文源发送端停止向虚拟机使用的硬通道发送报文的拥塞反压通告,使得上层报文源发送端不再发来新的报文,并且在确定了虚拟机使用的硬通道的接收队列和发送队列均为空时进行网络通道的切换,能够确保网卡中进行虚拟机在线迁移涉及的硬通道接收队列和发送队列不再有已缓存的网络报文,不会造成报文的丢失,保证数据完整性。

附图说明

[0042] 图1为本发明实施例提供的支持虚拟化技术的网卡网络通道切换方法流程图;
[0043] 图2为本发明实施例提供的SR-IOV网卡网络通道切换方法流程图;
[0044] 图3为本发明实施例提供的控制SR-IOV网卡发送拥塞反压通告过程示意图;
[0045] 图4为本发明实施例提供的确定SR-IOV网卡中指定虚拟机使用的硬通道的接收队列和发送队列均为空的过程示意图;
[0046] 图5为本发明实施例提供的网络通道切换装置构成示意图;
[0047] 图6为本发明实施例提供的网络控制器构成示意图。

具体实施方式

[0048] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049] 数据中心以太网(Date Center Ethernet,DCE),也称为融合增强型以太网(Converged Enhanced Ethernet,CEE),是一种通过一系列协议实现不丢包的以太网。例如802.1Qau(Quantized Congestion Notification,QCN)协议定义了一种拥塞反压通告机制,即:当发现网络中存在拥塞时,则向数据发送源发送拥塞反压通告,以告知数据发送源停止发送数据或者降低数据发送速率,进而解决网络拥塞。
[0050] 本发明实施例中,支持DCE(数据中心以太网)特性,并工作在DCE环境中下的支持虚拟化技术的网卡进行网络通道切换时,为避免丢包,可改变支持虚拟化技术的网卡发送拥塞反压通告的触发机制,控制支持虚拟化技术的网卡在需要进行网络通道切换时主动发送拥塞反压通告,使向支持虚拟化技术的网卡发送网络报文的报文源发送端停止向支持虚拟化技术的网卡中指定的硬通道发送网络报文,进而控制支持虚拟化技术的网卡进行网络通道切换时,支持虚拟化技术的网卡中涉及的虚拟机使用的硬通道中接收队列和发送队列不缓存待处理的网络报文,避免报文丢失。
[0051] 实施例一
[0052] 本发明实施例提供一种支持DCE(数据中心以太网)特性,并工作在DCE环境中下的支持虚拟化技术的网卡网络通道切换方法,如图1所示包括:
[0053] S101:控制支持虚拟化技术的网卡发送拥塞反压通告。
[0054] 具体的,支持虚拟化技术的网卡进行网络通道切换的过程由虚拟机监控器进行控制,本发明实施例中,虚拟机监控器控制支持虚拟化技术的网卡在需要进行网络通道切换时,主动向报文源发送端发送拥塞反压通告,而不是在发生网络拥塞时进行拥塞反压通告的发送,并且该拥塞反压通告用于指示报文源发送端停止向指定虚拟机使用的硬通道发送报文,该指定虚拟机指待进行在线迁移的虚拟机,而不是指示报文源发送端减缓发送报文的速率,以控制虚拟机使用的硬通道中不会缓存新的报文,避免网络通道切换过程中报文的丢失。
[0055] S102:确定支持虚拟化技术的网卡中指定虚拟机使用的硬通道的接收队列和发送队列均为空时,执行网络通道的切换。
[0056] 具体的,本发明实施例中确定支持虚拟化技术的网卡中指定虚拟机使用的硬通道的接收队列和发送队列的缓存状态,即确定涉及的待进行在线迁移的虚拟机对应的VF的接收队列和发送队列的缓存状态,当确定了该涉及的VF的接收队列和发送队列均为空时,说明需要进行网络通道切换对应的VF接收队列和发送队列中都不再缓存有待处理报文,并且此步骤是在执行了S101的基础上进行的,此时进行网络通道的切换能够避免报文的丢失。
[0057] 本发明实施例中控制支持虚拟化技术的网卡主动发送用于指示报文源发送端停止向指定虚拟机使用的硬通道发送报文的拥塞反压通告,使得上层报文源发送端不再发来新的报文,并且在确定了指定虚拟机使用的硬通道的接收队列和发送队列均为空时进行网络通道的切换,能够确保支持虚拟化技术的网卡中涉及的虚拟机使用的硬通道接收队列和发送队列不再有已缓存的网络报文,不会造成报文的丢失,保证数据完整性。
[0058] 实施例二
[0059] 本发明实施例二作为实施例一的一个较佳实施例,将结合实际应用对实施例一中涉及的支持虚拟化技术的网卡网络通道切换方法进行详细的说明。本发明实施例二与实施例一属于同一发明构思,提供一种支持虚拟化技术的网卡网络通道切换方法,本发明实施例以支持DCE(数据中心以太网)特性,并工作在DCE环境中下的SR-IOV网卡为例进行举例说明,实现过程如图2所示。
[0060] S201:控制SR-IOV网卡发送拥塞反压通告。
[0061] 具体的,原有SR-IOV网卡只有在发生网络拥塞时,才会发送拥塞反压通告,即原有SR-IOV网卡发送拥塞反压通告属于被动的,本发明实施例中要求SR-IOV网卡在需要进行网络通道切换时,主动发送拥塞反压通告,即本发明实施例中SR-IOV网卡需要新增主动发送拥塞反压通告功能,供虚拟机监控器调用,进而实现控制SR-IOV网卡发送拥塞反压通告。
[0062] 本发明实施例中虚拟机监控器控制SR-IOV网卡向报文源发送端发送拥塞反压通告的实现过程可参照图3,包括:
[0063] S2011:调用SR-IOV网卡中主动发送拥塞反压通告功能;
[0064] S2012:向SR-IOV网卡发送用于指示SR-IOV网卡发送拥塞反压通告的指令;
[0065] S2013:控制SR-IOV网卡发送拥塞反压通告。
[0066] 具体的,本发明实施例中虚拟机监控器控制SR-IOV网卡向报文源发送端发送拥塞反压通告时,向SR-IOV网卡发送指令,通过该指令指示SR-IOV网卡通过S2011中调用的主动发送拥塞反压通告功能,向报文源发送端发送拥塞反压通告。
[0067] S202:控制SR-IOV网卡持续发送拥塞反压通告。
[0068] 本发明实施例中虚拟机监控器在完成网络通道切换前,控制SR-IOV网卡持续发送拥塞反压通告,以使上层报文源发送端不仅在执行网络通道切换前不会发送新的网络报文,并且在执行网络通道切换过程中也不会发送新的报文,保证整个网络通道切换过程中都不会有新的报文发送,避免报文丢失。
[0069] S203:查询指定虚拟机使用的硬通道的接收队列和发送队列缓存状态,确定指定虚拟机使用的硬通道的接收队列和发送队列均为空。
[0070] 具体的,本发明实施例中SR-IOV网卡新增接收队列和发送队列状态查询功能,供虚拟机监控器调用,以使虚拟机监控器查询指定虚拟机使用的硬通道的接收队列和发送队列缓存状态,确定SR-IOV网卡中指定虚拟机使用的硬通道的接收队列和发送队列是否均为空。
[0071] 本发明实施例中,确定SR-IOV网卡中指定虚拟机使用的硬通道的接收队列和发送队列均为空的过程如图4所示,包括:
[0072] S2031:调用SR-IOV网卡中新增的接收队列和发送队列状态查询功能。
[0073] S2032:向指定虚拟机使用的硬通道发送状态查询指令。
[0074] 具体的,本发明实施例中虚拟机监控器向指定虚拟机使用的硬通道发送状态查询指令时,通过S2031中调用的接收队列和发送队列状态查询功能发送的。
[0075] S2033:当接收到SR-IOV网卡反馈的、指示指定虚拟机使用的硬通道接收队列和发送队列为空的指令时,确定指定虚拟机使用的硬通道接收队列和发送队列均为空。
[0076] S204:执行网络通道切换。
[0077] 具体的,当确定了指定虚拟机使用的硬通道接收队列和发送队列均为空时,说明指定虚拟机使用的硬通道接收队列和发送队列中不再缓存待处理的报文,此时可将指定虚拟机使用的网络通道由硬通道切换到软通道。
[0078] 本发明实施例中,在保证上层物理交换机不会发送新的报文基础上,保证指定虚拟机使用的硬通道接收队列和发送队列都不再缓存待处理报文时,执行网络通道切换,避免报文丢失。
[0079] 在完成网络通道切换的过程后,执行S205。
[0080] S205:控制SR-IOV网卡停止发送拥塞反压通告。
[0081] 本发明实施例中,在执行完成网络通道切换后,使SR-IOV网卡停止主动向报文源发送端发送拥塞反压通告,上层物理交换机不再接收拥塞反压通告,则继续进行网络报文的发送。
[0082] 本发明实施例中控制SR-IOV网卡主动发送用于指示报文源发送端停止向指定虚拟机使用的硬通道发送报文的拥塞反压通告,使得上层报文源发送端不再发来新的报文,并且在确定了指定虚拟机使用的硬通道的接收队列和发送队列均为空时进行网络通道的切换,能够确保SR-IOV网卡中涉及的虚拟机使用的硬通道接收队列和发送队列不再有已缓存的网络报文,不会造成报文的丢失,保证数据完整性。
[0083] 实施例三
[0084] 基于实施例一和实施例二提供的网络通道切换方法,本发明实施例三提供一种网络通道切换装置,如图5所示,本发明实施例提供的网络通道切换装置包括控制单元50和切换单元51,其中,
[0085] 控制单元50,用于控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,该指定虚拟机为待进行在线迁移的虚拟机,并将已指示所述报文源发送端停止向指定虚拟机使用的硬通道发送网络报文的信息发送给切换单元51。
[0086] 切换单元51,用于接收控制单元50发送的已指示报文源发送端停止向指定虚拟机使用的硬通道发送网络报文的信息,并确定指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将指定虚拟机使用的网络通道由硬通道切换为软通道。
[0087] 其中,控制单元50,具体用于:
[0088] 调用支持虚拟化技术的网卡的主动发送拥塞反压通告功能;
[0089] 向支持虚拟化技术的网卡发送指令,通过指令指示所述支持虚拟化技术的网卡通过调用的主动发送拥塞反压通告功能,向报文源发送端发送拥塞反压通告。
[0090] 进一步的,控制单元50,具体用于:
[0091] 控制支持虚拟化技术的网卡,向报文源发送端持续发送拥塞反压通告,以确保在执行网络通道切换过程中,不再有新的报文接收与发送。
[0092] 其中,切换单元51,具体用于:
[0093] 调用支持虚拟化技术的网卡中的接收队列和发送队列状态查询功能;
[0094] 通过调用的接收队列和发送队列状态查询功能向指定虚拟机使用的硬通道发送状态查询指令;
[0095] 当接收到支持虚拟化技术的网卡反馈的、指示指定虚拟机使用的硬通道接收队列和发送队列为空的指令时,确定指定虚拟机使用的硬通道中的接收队列和发送队列均为空。
[0096] 进一步的,切换单元51,还用于:
[0097] 控制支持虚拟化技术的网卡停止向报文源发送端发送拥塞反压通告,以使报文源发送端继续进行报文的发送。
[0098] 本发明实施例提供的网络通道切换装置,控制支持虚拟化技术的网卡主动发送用于指示报文源发送端停止向指定虚拟机使用的硬通道发送报文的拥塞反压通告,使得上层报文源发送端不再发来新的报文,并且在确定了指定虚拟机使用的硬通道的接收队列和发送队列均为空时进行网络通道的切换,能够确保支持虚拟化技术的网卡中涉及的虚拟机使用的硬通道接收队列和发送队列不再有已缓存的网络报文,不会造成报文的丢失,保证数据完整性。
[0099] 本发明实施例提供的上述网络通道切换装置,可以是独立的部件,也可以是集成于其他部件中,例如本发明实施例提供的上述信号处理装置可以是虚拟机监控器,也可以是集成于虚拟机监控器内的新的部件。
[0100] 需要说明的是,本发明实施例中的网络通道切换装置的各个模块/单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述。
[0101] 实施例四
[0102] 基于本发明实施例提供的网络通道切换方法和网络通道切换装置,本发明实施例提供了一种网络控制器,如图6所示,该网络控制器包括处理器60和I/O接口61,其中:
[0103] 处理器60,用于控制支持虚拟化技术的网卡向报文源发送端发送拥塞反压通告,指示报文源发送端停止向指定虚拟机使用的硬通道发送网络报文,并在确定了指定虚拟机使用的硬通道中的接收队列和发送队列均为空时,将指定虚拟机使用的网络通道由硬通道切换为软通道,并将该网络通道由硬通道切换为软通道的信息发送给I/O接口61;
[0104] I/O接口61,用于将网络通道由硬通道切换为软通道的信息发送给指定的虚拟机,该指定的虚拟机为待进行在线迁移的虚拟机。
[0105] 本发明实施例提供的网络控制器,控制支持虚拟化技术的网卡主动发送用于指示报文源发送端停止向指定虚拟机使用的硬通道发送报文的拥塞反压通告,使得上层报文源发送端不再发来新的报文,并且在确定了指定虚拟机使用的硬通道的接收队列和发送队列均为空时进行网络通道的切换,能够确保支持虚拟化技术的网卡中涉及的虚拟机使用的硬通道接收队列和发送队列不再有已缓存的网络报文,不会造成报文的丢失,保证数据完整性。
[0106] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0107] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0108] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0109] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0110] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。