CN105763471A - 虚拟机环境下链路管理方法、装置和系统 - Google Patents
虚拟机环境下链路管理方法、装置和系统 Download PDFInfo
- Publication number
- CN105763471A CN105763471A CN201410785426.2A CN201410785426A CN105763471A CN 105763471 A CN105763471 A CN 105763471A CN 201410785426 A CN201410785426 A CN 201410785426A CN 105763471 A CN105763471 A CN 105763471A
- Authority
- CN
- China
- Prior art keywords
- microsoft loopback
- link
- loopback adapter
- virtual machine
- lacp
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种虚拟机环境下链路管理方法、装置和系统;所述方法,包括:与虚拟机建立心跳握手链路;在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
Description
技术领域
本发明涉及通信领域,尤其涉及一种虚拟机环境下链路管理方法、装置和系统。
背景技术
传统IT网络设备中,为了降低服务器网络接口管理复杂度,同时应用软件对网络接口带宽需求不断增加,对服务器的多个对外网络接口一般都采用了链路汇聚控制协议(LACP,LinkAggregationControlProtocol),将多个物理端口汇聚为一个聚合口由OS及上层业务使用。
在非虚拟化的主机操作系统(OperationSystem,OS)中,通过运行802.3ad链路汇聚控制协议,可以自动完成与交换机侧连接的多个端口的协商及管理。在虚拟机环境中,网卡设备通过单根I/O虚拟化(SingRootI/OVirtualization,SR-IOV)或虚拟机设备队列(VirtualMachineDeviceQueue,VMDq)等I/O虚拟化技术实现多个虚拟网卡(VF,VirtualFunction),每个虚拟机根据需求分配一定数量的VF,如果多个虚拟机均需要对各自挂接的VF网卡运行802.3ad链路汇聚控制协议,将导致交换侧LACP状态机混乱,可能导致无法完成链路汇聚协商过程。
举个典型组网例子,一台服务器有两块物理网卡A、B,连接支持LACP的以太网交换机端口PA、PB,服务器网卡A通过SRIOV配置两个VF端口,命名为VF1、VF2,服务器网卡B同样配置两个VF端口,命名为VF3、VF4,在服务器上启动两个虚拟机VM1、VM2,将VF1、VF3分配给VM1,VF2、VF4分配给VM2,这样两个虚拟机的网络流量最终通过两个物理端口连接到交换机。这种组网目前只能通过静态配置交换机的方式来实现VM中两个端口的负荷分担,否则VM1、VM2中同时运行LACP协议,两个虚拟机的LACP数据单元(LACPDataUnit)协议报文将同时与交换机的LACP进行协商,此时将可能导致协商不成功。
如果在虚拟机环境中采用静态配置交换机的方法,有如下缺点:
缺少VF到外部交换机的全路径检测机制,一旦发生链路故障,无法判别是虚拟机内部VF问题,还是外部物理链路到交换机之间的问题,增加故障处理难度。
除了静态配置交换机外,目前常用的方法还有:
宿主操作系统(HostOS)管理的PF运行LACP协议并构建物理聚合组,客户操作系统(GuestOS)管理的VF构建虚拟LACP聚合组,物理聚合组的状态信息同步到虚拟聚合组,虚拟聚合组根据物理聚合组的协议状态信息来管理VF端口,虚拟机上不需要实际的LACP协商过程,但也缺少VF到外部交换机的全路径检测机制。
由上可以看出,上述两种方法均存在无法实现虚拟机网络链路的全路径检测的问题,从而造成当VF内部端口异常时会导致虚拟机LACP聚合组丢包的情况的出现。
为了解决虚拟机环境下VF网口的链路聚合控制管理,需要有一种方法来实现GuestOS、VF端口、HostOS、PF端口这四者之间的协商管理。
发明内容
本发明提供一种虚拟机环境下链路管理方法、装置和系统,要解决的技术问题是如何实现对虚拟机网络链路的全路径检测。
为解决上述技术问题,本发明提供了如下技术方案:
一种虚拟机环境下链路管理方法,包括:
与虚拟机建立心跳握手链路;
在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;
通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
其中,所述方法还具有如下特点:所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的。
其中,所述方法还具有如下特点:同一虚拟机的多个虚拟网卡是由不同的网络接口卡提供的。
一种虚拟机环境下链路管理方法,包括:
与主机建立心跳握手链路;
在所述心跳握手链路构建成功后,检测是否接收到所述主机发送所述网络接口卡上物理接口的链路汇聚控制协议LACP状态信息;
根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制。
其中,所述方法还具有如下特点:所述与主机建立心跳握手链路之前,还包括:
利用两个网络接口卡上的虚拟网卡与外部进行通信。
其中,所述方法还具有如下特点:所述方法还包括:
在检测到主机进行LACP协商没有完成前,控制所述虚拟机对应的两个虚拟网卡以主备工作模式运行。
其中,所述方法还具有如下特点:所述根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制,包括:
如果接收的LACP状态信息为LACP协商完成状态,使能状态正常的物理端口对应的虚拟网卡,并将处于使能状态的虚拟网卡以负荷分担模式运行;如果所述虚拟网卡运行于主备模式,则选择状态正常的物理端口对应的虚拟网卡作为主用端口,其它作为备用端口。
其中,所述方法还具有如下特点:所述根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制,还包括:
在接收到LACP协商完成状态后,如果从虚拟网卡未接收到物理端口和/或虚拟网卡的聚合状态信息,则确定所述虚拟网卡故障;
如果所述虚拟网卡运行在负荷分担聚合模式,则将所述出现故障的虚拟网卡退出当前负荷分担聚合组,在所述虚拟网卡心跳恢复且LACP状态正常时,将对应虚拟网卡重新加入负荷分担聚合组;
如果所述虚拟网卡运行在主备模式聚合模式,则发起虚拟网卡端口主备倒换以选择下一可用虚拟网卡端口为主用。
一种虚拟机环境下链路管理装置,包括:
第一建立模块,用于与虚拟机建立心跳握手链路;
获取模块,用于在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;
发送模块,用于通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
其中,所述装置还具有如下特点:所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的。
其中,所述装置还具有如下特点:同一虚拟机的多个虚拟网卡是由不同的网络接口卡提供的。
一种虚拟机环境下链路管理装置,包括:
第二建立模块,用于与主机建立心跳握手链路;
检测模块,用于在所述心跳握手链路构建成功后,检测是否接收到所述主机发送所述网络接口卡上物理接口的链路汇聚控制协议LACP状态信息;
第一控制模块,用于根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制。
其中,所述装置还具有如下特点:所述装置还包括:
通信模块,用于利用两个网络接口卡上的虚拟网卡与外部进行通信。
其中,所述装置还具有如下特点:所述装置还包括:
第二控制模块,用于在检测到主机进行LACP协商没有完成前,控制所述虚拟机对应的两个虚拟网卡以主备工作模式运行。
其中,所述装置还具有如下特点:所述控制模块具体用于:
如果接收的LACP状态信息为LACP协商完成状态,使能状态正常的物理端口对应的虚拟网卡,并将处于使能状态的虚拟网卡以负荷分担模式运行;如果所述虚拟网卡运行于主备模式,则选择状态正常的物理端口对应的虚拟网卡作为主用端口,其它作为备用端口。
其中,所述装置还具有如下特点:所述控制模块还包括:
确定单元,用于在接收到LACP协商完成状态后,如果从虚拟网卡未接收到物理端口和/或虚拟网卡的聚合状态信息,则确定所述虚拟网卡故障;
控制单元,用于如果所述虚拟网卡运行在负荷分担聚合模式,则将所述出现故障的虚拟网卡退出当前负荷分担聚合组,在所述虚拟网卡心跳恢复且LACP状态正常时,将对应虚拟网卡重新加入负荷分担聚合组;如果所述虚拟网卡运行在主备模式聚合模式,则发起虚拟网卡端口主备倒换以选择下一可用虚拟网卡端口为主用。
一种虚拟机环境下链路管理系统,包括上文所述的两种装置。
本发明提供的实施例,在不修改对端交换机配置的情况下自动完成服务器网卡的LACP协商,降低了设备现场部署的难度,通过NIC内部共享通信机制实现了HOST主机与VF之间的心跳保护,实现了从VF到外部交换机的全链路的可靠性检测,提升了系统的可靠性与可用性。
另外,外部链路状态信息可以由VF发送到VM,使得VM可以根据外部链路状态对VF聚合组进行调整,进一步的,VM通过检测是否收到VF发送的链路状态信息,可以进一步获取VF与VM之间的链路状态,实现自动调整聚合组的目的,防止通信丢包情况的发生,保证数据传输的安全。
附图说明
图1为本发明实施例一提供的虚拟机环境下链路管理方法的流程示意图;
图2为本发明实施例二提供的虚拟机环境下链路管理方法的流程示意图;
图3为本发明提供的说明HOST主机与VM的网络连接的示意图;
图4为图3所示连接关系下LACP控制流与VM业务流的示意图;
图5为图3所示连接关系下HOST主机与VM通过NIC共享通信队列实现信息交互示意图;
图6为图3所示连接关系下HOST主机与VM之间的心跳握手链路建立流程示意图;
图7为图3所示连接关系下HOST主机与VM实现LACP及状态同步的协作流程;
图8为本发明实施例三提供的虚拟机环境下链路管理装置的结构示意图;
图9为本发明实施例四提供的虚拟机环境下链路管理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实施例一提供的虚拟机环境下链路管理方法的流程示意图,图1所示方法包括:
步骤101、与虚拟机建立心跳握手链路;
步骤102、在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;
步骤103、通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
与现有技术中VF与PF必须运行相同的LACP协议相比,本发明实施例一提供的方法中,通过心跳握手链路将PF端口的LACP状态信息共享给虚拟机,使得虚拟机上的VF无需运行LACP协议即可得到LACP状态信息,为虚拟机对全局链路的检测提供了数据依据。
图2为本发明实施例二提供的虚拟机环境下链路管理方法的流程示意图,图2所示方法包括:
步骤201、与主机建立心跳握手链路;
步骤202、在所述心跳握手链路构建成功后,检测是否接收到所述主机发送所述网络接口卡上物理接口的链路汇聚控制协议LACP状态信息;
步骤203、根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制。
与现有技术中VF与PF必须运行相同的LACP协议相比,本发明实施例二提供的方法中,通过心跳握手链路从主机获取PF端口的LACP状态信息,使得虚拟机上的VF无需运行LACP协议即可得到LACP状态信息,为虚拟机对全局链路的检测提供了数据依据。另外,通过检测是否VF发送的LACP信息可以获取之虚拟机和虚拟机网卡之间的链路状况,在虚拟机内VF网口单独故障时能够实现接口的切换,保证数据流的正常传输。
下面对本发明提供的方法实施例作进一步说明:
图3为本发明提供的说明HOST主机与VM的网络连接的示意图。
服务器主机安装有2个及以上的支持I/O虚拟化技术的网络接口卡(NIC,NetworkInterfaceCard),并通过虚拟化技术提供虚拟机,在虚拟机上运行GuestOS,同时提供一定数量的CPU核运行HostOS,各GuestOS之间及GuestOS与HostOS之间相互隔离。
NIC通过IO虚拟化技术(典型方法如SR-IOV)为VM提供虚拟网卡支持。NIC通过I/O虚拟化技术为VM提供所需的VF虚拟网卡,VM采用负荷分担或主备模式将多个VF汇聚为一个端口。如采用SR-IOV技术,NIC可同时构建一个物理端口(PF,PhysicalFunction),用于管理NIC及VF。外部物理端口的LACP协商由服务器HOST主机通过NIC的PF来完成。如果采用VMDq或其它虚拟化技术,则在全部VF中选择其中一个作为对外协商端口,此端口称为主VF端口。以SR-IOV为例,网卡可以提供一个或多个物理功能接口(PF),同时提供多个VF接口,其中PF由HostOS使用,主要用于HostOS自身外部通信需求、对外LACP协议管理及VF资源管理;VF由VM上的GuestOS使用。为提高通信链路的可靠性,同一GuestOS的多个VF分别来自多个不同的NIC,这些VF采用负荷分担或主备模式构建一个Bonding端口(多个网络接口以负荷分担或主备模式构建的一种聚合端口)。
服务器的多个NIC外部接口连接一台标准以太网交换机或多台通过堆叠技术互联的交换机集群。NIC网卡与交换机通过LACP协议构建为一个聚合端口。
在图3所示示意图中,服务器主机通过LACP方式利用两个NIC卡与外部交换机的PA、PB两个交换端口连接,该端口通过LACP协议进行管理,且两个NIC以聚合组方式运行。服务器提供两个虚拟机、一个物理机,服务器两块物理网卡通过SR-IOV的方式分别提供一个PF(分别命名为PF1、PF2)和2个VF(分别命名为VF1~VF4)。PF1、PF2构成一个LACP聚合组,此聚合组经由物理机与外部交换机完成LACP协商;VF1、VF3构成一个负荷分担或主备聚合组,由VM1使用;VF2、VF4构成另外一个负荷分担或主备聚合组,由VM2使用。
其中,同一虚拟机的多个虚拟网卡是由不同的网络接口卡提供的,即虚拟机利用两个网络接口卡上的虚拟网卡与外部进行通信,使得在网络接口卡故障时,可以利用工作正常的PF上该虚拟机的其他虚拟网卡继续工作,保证虚拟机的数据流量的正常传输。
图4为图3所示连接关系下LACP控制流与VM业务流的示意图。从图中可知,系统中只需要物理主机在PF1、PF2一个聚合组上运行LACP协议,所有VF聚合组所在的GuestOS不运行LACP协议。
由图4所示示意图可以看出,HOST主机仍然按照现有技术流程运行LACP协议,虚拟机借助NIC卡提供的VF进行数据传输,未进行硬件的改进,保持现有的硬件结构。
图5为图3所示连接关系下HOST主机与VM通过NIC共享通信队列实现信息交互示意图。图5所示示意图中HostOS与GuestOS之间通过共享通信队列构建心跳握手链路并通过此链路同步PF、VF聚合状。
具体来说,在HostOS侧配置NIC的VF功能时会同时为每个VF提供一个邮箱MAILBOX机制,PF与VF之间可以利用此机制实现信息交互。本发明中使用了VF的邮箱功能来建立HostOS与GuestOS之间的心跳握手链路,此链路可以完成HostOS与GuestOS的双向握手和聚合状态同步。
由图5可以看出,所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的,HOST主机可通过心跳握手链路将自身运行LACP协议得到LACP状态信息分享给虚拟机,方便虚拟机获知外部链路状态,实现全链路的检测。
图6为图3所示连接关系下HOST主机与VM之间的心跳握手链路建立流程示意图。
在服务器启动成功后,HostOS与GuestOS首先尝试通过NIC的共享通信队列机制构建心跳握手链路,该链路构建成功后,会同步物理端口和/或虚拟网卡聚合组状态信息;在PF聚合组LACP协商没有完成前,为避免造成传输环路,控制所述虚拟机对应的两个虚拟网卡以主备模式运行,仅保留基本对外通信能力。
心跳握手链路建立后,在HostOS侧,会持续运行PFLACP流程并定时将LACP状态同步到GuestOS;在GuestOS侧,持续检查各VF对应的心跳握手链路是否正常,如果不正常,则关闭对应VF端口,如果正常且已经获得对应PF的LACP状态信息,且本GuestOS将VF配置为负荷分担聚合模式,则首先将VF主备模式聚合组修改为负荷分担聚合组,并根据对应PF是否在LACP聚合组中将该PF对应的VF加入或退出GuestOS的VF负荷分担聚合组;如果PFLACP协商流程没有完成或没有同步到GuestOS,则继续等待。
图7为图3所示连接关系下HOST主机与VM实现LACP及状态同步的协作流程。在心跳握手链路建立后,HOST主机启动PF端口LACP协商流程,协商完成后通过心跳握手链路同步到VM的GuestOSVF端口,根据同步过来的PFLACP聚合组链路状态,将对应VF端口加入或退出VF负荷分担聚合组;当PFLACP协商失败时,重新修改VF聚合组为主备模式,避免环路。如果GuestOS将VF端口配置为主备模式,则在当前主用VF对应的PF端口异常时,发起主备VF链路切换,选择下一可用VF为主用端口。
本发明在网卡支持SR-IOV或VMDq等IO虚拟化技术的情况下,在网卡向虚拟机提供VF虚拟网卡时可以简化对外部交换机的配置,通过将LACP的协商流程迁移到PF端口,并基于网卡设备的邮箱通信机制建立双向心跳握手链路,可以实现VF聚合组不需要运行LACP协议,实现VF端口状态与HostOS中PFLACP聚合组的同步动态管理,同时也可以实现VF到GuestOS之间的内部链路检测。
图8为本发明实施例三提供的虚拟机环境下链路管理装置的结构示意图。图8所示示意图包括:
第一建立模块801,用于与虚拟机建立心跳握手链路;
获取模块802,用于在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;
发送模块803,用于通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
其中,所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的。
其中,同一虚拟机的多个虚拟网卡是由不同的网络接口卡提供的。
与现有技术中VF与PF必须运行相同的LACP协议相比,本发明实施例三提供的装置中,通过心跳握手链路将PF端口的LACP状态信息共享给虚拟机,使得虚拟机上的VF无需运行LACP协议即可得到LACP状态信息,为虚拟机对全局链路的检测提供了数据依据。
图9为本发明实施例三提供的虚拟机环境下链路管理装置的结构示意图。图9所示示意图包括:
第二建立模块901,用于与主机建立心跳握手链路;
检测模块902,用于在所述心跳握手链路构建成功后,检测是否接收到所述主机发送所述网络接口卡上物理接口的链路汇聚控制协议LACP状态信息;
第一控制模块903,用于根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制。
可选的,所述装置还包括:
通信模块,用于利用两个网络接口卡上的虚拟网卡与外部进行通信。
可选的,所述装置还包括:
第二控制模块,用于在检测到主机进行LACP协商没有完成前,控制所述虚拟机对应的两个虚拟网卡以主备工作模式运行。
其中,所述控制模块具体用于:
如果接收的LACP状态信息为LACP协商完成状态,使能状态正常的物理端口对应的虚拟网卡,并将处于使能状态的虚拟网卡以负荷分担模式运行;如果所述虚拟网卡运行于主备模式,则选择状态正常的物理端口对应的虚拟网卡作为主用端口,其它作为备用端口。
可选的,所述控制模块还包括:
确定单元,用于在接收到LACP协商完成状态后,如果从虚拟网卡未接收到物理端口和/或虚拟网卡的聚合状态信息,则确定所述虚拟网卡故障;
控制单元,用于如果所述虚拟网卡运行在负荷分担聚合模式,则将所述出现故障的虚拟网卡退出当前负荷分担聚合组,在所述虚拟网卡心跳恢复且LACP状态正常时,将对应虚拟网卡重新加入负荷分担聚合组;如果所述虚拟网卡运行在主备模式聚合模式,则发起虚拟网卡端口主备倒换以选择下一可用虚拟网卡端口为主用。
与现有技术中VF与PF必须运行相同的LACP协议相比,本发明实施例四提供的装置中,通过心跳握手链路从主机获取PF端口的LACP状态信息,使得虚拟机上的VF无需运行LACP协议即可得到LACP状态信息,为虚拟机对全局链路的检测提供了数据依据。另外,通过检测是否VF发送的LACP信息可以获取之虚拟机和虚拟机网卡之间的链路状况,在虚拟机内VF网口单独故障时能够实现接口的切换,保证数据流的正常传输。
另外,本发明还提供一种虚拟机环境下链路管理系统,包括如图8所示的装置和如图9所示的装置。
本发明提供的实施例,在不修改对端交换机配置的情况下自动完成服务器网卡的LACP协商,降低了设备现场部署的难度,通过NIC内部共享通信机制实现了HOST主机与VF之间的心跳保护,实现了从VF到外部交换机的全链路的可靠性检测,提升了系统的可靠性与可用性。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (17)
1.一种虚拟机环境下链路管理方法,其特征在于,包括:
与虚拟机建立心跳握手链路;
在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;
通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的。
3.根据权利要求2所述的方法,其特征在于,同一虚拟机的多个虚拟网卡是由不同的网络接口卡提供的。
4.一种虚拟机环境下链路管理方法,其特征在于,包括:
与主机建立心跳握手链路;
在所述心跳握手链路构建成功后,检测是否接收到所述主机发送所述网络接口卡上物理接口的链路汇聚控制协议LACP状态信息;
根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制。
5.根据权利要求4所述的方法,其特征在于,所述与主机建立心跳握手链路之前,还包括:
利用两个网络接口卡上的虚拟网卡与外部进行通信。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在检测到主机进行LACP协商没有完成前,控制所述虚拟机对应的两个虚拟网卡以主备工作模式运行。
7.根据权利要求4所述的方法,其特征在于,所述根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制,包括:
如果接收的LACP状态信息为LACP协商完成状态,使能状态正常的物理端口对应的虚拟网卡,并将处于使能状态的虚拟网卡以负荷分担模式运行;如果所述虚拟网卡运行于主备模式,则选择状态正常的物理端口对应的虚拟网卡作为主用端口,其它作为备用端口。
8.根据权利要求7所述的方法,其特征在于,所述根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制,还包括:
在接收到LACP协商完成状态后,如果从虚拟网卡未接收到物理端口和/或虚拟网卡的聚合状态信息,则确定所述虚拟网卡故障;
如果所述虚拟网卡运行在负荷分担聚合模式,则将所述出现故障的虚拟网卡退出当前负荷分担聚合组,在所述虚拟网卡心跳恢复且LACP状态正常时,将对应虚拟网卡重新加入负荷分担聚合组;
如果所述虚拟网卡运行在主备模式聚合模式,则发起虚拟网卡端口主备倒换以选择下一可用虚拟网卡端口为主用。
9.一种虚拟机环境下链路管理装置,其特征在于,包括:
第一建立模块,用于与虚拟机建立心跳握手链路;
获取模块,用于在所述心跳握手链路构建成功后,获取网络接口卡上物理端口的链路汇聚控制协议LACP状态信息;
发送模块,用于通过所述心跳握手链路将所述LACP状态信息发送给所述虚拟机。
10.根据权利要求9所述的装置,其特征在于,所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的。
11.根据权利要求9所述的装置,其特征在于,同一虚拟机的多个虚拟网卡是由不同的网络接口卡提供的。
12.一种虚拟机环境下链路管理装置,其特征在于,包括:
第二建立模块,用于与主机建立心跳握手链路;
检测模块,用于在所述心跳握手链路构建成功后,检测是否接收到所述主机发送所述网络接口卡上物理接口的链路汇聚控制协议LACP状态信息;
第一控制模块,用于根据检测结果,对虚拟机与虚拟网卡之间的链路进行控制。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
通信模块,用于利用两个网络接口卡上的虚拟网卡与外部进行通信。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二控制模块,用于在检测到主机进行LACP协商没有完成前,控制所述虚拟机对应的两个虚拟网卡以主备工作模式运行。
15.根据权利要求12所述的装置,其特征在于,所述控制模块具体用于:
如果接收的LACP状态信息为LACP协商完成状态,使能状态正常的物理端口对应的虚拟网卡,并将处于使能状态的虚拟网卡以负荷分担模式运行;如果所述虚拟网卡运行于主备模式,则选择状态正常的物理端口对应的虚拟网卡作为主用端口,其它作为备用端口。
16.根据权利要求15所述的装置,其特征在于,所述控制模块还包括:
确定单元,用于在接收到LACP协商完成状态后,如果从虚拟网卡未接收到物理端口和/或虚拟网卡的聚合状态信息,则确定所述虚拟网卡故障;
控制单元,用于如果所述虚拟网卡运行在负荷分担聚合模式,则将所述出现故障的虚拟网卡退出当前负荷分担聚合组,在所述虚拟网卡心跳恢复且LACP状态正常时,将对应虚拟网卡重新加入负荷分担聚合组;如果所述虚拟网卡运行在主备模式聚合模式,则发起虚拟网卡端口主备倒换以选择下一可用虚拟网卡端口为主用。
17.一种虚拟机环境下链路管理系统,其特征在于,包括如权利要求9至11任一所述的装置和如权利要求12至16任一所述的装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410785426.2A CN105763471B (zh) | 2014-12-16 | 2014-12-16 | 虚拟机环境下链路管理方法、装置和系统 |
EP15868858.0A EP3236623B1 (en) | 2014-12-16 | 2015-02-27 | Link management method, device and system in virtual machine environment |
US15/537,227 US10530636B2 (en) | 2014-12-16 | 2015-02-27 | Link management method, device and system in virtual machine environment |
PCT/CN2015/073368 WO2016095341A1 (zh) | 2014-12-16 | 2015-02-27 | 虚拟机环境下链路管理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410785426.2A CN105763471B (zh) | 2014-12-16 | 2014-12-16 | 虚拟机环境下链路管理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105763471A true CN105763471A (zh) | 2016-07-13 |
CN105763471B CN105763471B (zh) | 2019-12-17 |
Family
ID=56125723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410785426.2A Active CN105763471B (zh) | 2014-12-16 | 2014-12-16 | 虚拟机环境下链路管理方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10530636B2 (zh) |
EP (1) | EP3236623B1 (zh) |
CN (1) | CN105763471B (zh) |
WO (1) | WO2016095341A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992352A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 用于虚拟化场景的数据交互方法及设备 |
CN109032754A (zh) * | 2018-06-29 | 2018-12-18 | 华为技术有限公司 | 提高通信路径可靠性的方法和设备 |
CN110247821A (zh) * | 2019-06-04 | 2019-09-17 | 平安科技(深圳)有限公司 | 一种故障检测方法及相关设备 |
CN110933142A (zh) * | 2019-11-07 | 2020-03-27 | 浪潮电子信息产业股份有限公司 | 一种icfs集群网卡监控方法、装置和设备及介质 |
CN112491570A (zh) * | 2019-09-11 | 2021-03-12 | 中兴通讯股份有限公司 | 一种虚拟网卡链路状态设置方法、装置及存储介质 |
CN113067771A (zh) * | 2020-01-02 | 2021-07-02 | 上海诺基亚贝尔股份有限公司 | 管理虚拟链路聚合信道 |
CN114531405A (zh) * | 2020-10-31 | 2022-05-24 | 华为技术有限公司 | 一种流表处理方法及相关设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017210208A1 (en) * | 2016-05-31 | 2017-12-07 | Brocade Communications Systems, Inc. | Keepalive technique in a network device |
US10992515B1 (en) * | 2019-06-10 | 2021-04-27 | Cisco Technology, Inc. | Link state tracking for virtual interfaces |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022695A1 (en) * | 2009-07-27 | 2011-01-27 | Vmware, Inc. | Management and Implementation of Enclosed Local Networks in a Virtual Lab |
US8315156B2 (en) * | 2010-06-30 | 2012-11-20 | Oracle America, Inc. | Method and system for distributing network traffic among multiple direct hardware access datapaths |
CN103336708A (zh) * | 2013-05-31 | 2013-10-02 | 华为技术有限公司 | 聚合网卡资源的方法和相关设备及计算机系统 |
US20140108584A1 (en) * | 2012-10-12 | 2014-04-17 | Futurewei Technologies, Inc. | Method and Apparatus for Network Resource Virtual Partitioning |
US20140185627A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Link aggregation emulation for virtual nics in a cluster server |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8503468B2 (en) * | 2008-11-05 | 2013-08-06 | Fusion-Io, Inc. | PCI express load sharing network interface controller cluster |
US8726093B2 (en) * | 2010-06-30 | 2014-05-13 | Oracle America, Inc. | Method and system for maintaining direct hardware access in the event of network interface card failure |
US8819235B2 (en) * | 2010-10-20 | 2014-08-26 | International Business Machines Corporation | Multi-adapter link aggregation for adapters with hardware based virtual bridges |
WO2012151392A1 (en) * | 2011-05-04 | 2012-11-08 | Citrix Systems, Inc. | Systems and methods for sr-iov pass-thru via an intermediary device |
US9135101B2 (en) * | 2013-03-01 | 2015-09-15 | Avago Technologies General Ip (Singapore) Pte Ltd | Virtual function timeout for single root input/output virtualization controllers |
CN104518936B (zh) * | 2013-09-27 | 2019-02-19 | 新华三技术有限公司 | 链路动态聚合方法和装置 |
US9559940B2 (en) * | 2014-03-14 | 2017-01-31 | International Business Machines Corporation | Take-over of network frame handling in a computing environment |
-
2014
- 2014-12-16 CN CN201410785426.2A patent/CN105763471B/zh active Active
-
2015
- 2015-02-27 US US15/537,227 patent/US10530636B2/en active Active
- 2015-02-27 WO PCT/CN2015/073368 patent/WO2016095341A1/zh active Application Filing
- 2015-02-27 EP EP15868858.0A patent/EP3236623B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022695A1 (en) * | 2009-07-27 | 2011-01-27 | Vmware, Inc. | Management and Implementation of Enclosed Local Networks in a Virtual Lab |
US8315156B2 (en) * | 2010-06-30 | 2012-11-20 | Oracle America, Inc. | Method and system for distributing network traffic among multiple direct hardware access datapaths |
US20140108584A1 (en) * | 2012-10-12 | 2014-04-17 | Futurewei Technologies, Inc. | Method and Apparatus for Network Resource Virtual Partitioning |
US20140185627A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Link aggregation emulation for virtual nics in a cluster server |
CN103336708A (zh) * | 2013-05-31 | 2013-10-02 | 华为技术有限公司 | 聚合网卡资源的方法和相关设备及计算机系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992352A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 用于虚拟化场景的数据交互方法及设备 |
CN109032754A (zh) * | 2018-06-29 | 2018-12-18 | 华为技术有限公司 | 提高通信路径可靠性的方法和设备 |
CN109032754B (zh) * | 2018-06-29 | 2022-04-05 | 华为云计算技术有限公司 | 提高通信路径可靠性的方法和设备 |
CN110247821A (zh) * | 2019-06-04 | 2019-09-17 | 平安科技(深圳)有限公司 | 一种故障检测方法及相关设备 |
CN112491570A (zh) * | 2019-09-11 | 2021-03-12 | 中兴通讯股份有限公司 | 一种虚拟网卡链路状态设置方法、装置及存储介质 |
WO2021047619A1 (zh) * | 2019-09-11 | 2021-03-18 | 中兴通讯股份有限公司 | 虚拟网卡链路状态设置方法、装置及存储介质 |
CN110933142A (zh) * | 2019-11-07 | 2020-03-27 | 浪潮电子信息产业股份有限公司 | 一种icfs集群网卡监控方法、装置和设备及介质 |
CN113067771A (zh) * | 2020-01-02 | 2021-07-02 | 上海诺基亚贝尔股份有限公司 | 管理虚拟链路聚合信道 |
CN113067771B (zh) * | 2020-01-02 | 2022-11-01 | 上海诺基亚贝尔股份有限公司 | 管理虚拟链路聚合信道 |
CN114531405A (zh) * | 2020-10-31 | 2022-05-24 | 华为技术有限公司 | 一种流表处理方法及相关设备 |
CN114531405B (zh) * | 2020-10-31 | 2023-06-06 | 华为技术有限公司 | 一种流表处理方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
US10530636B2 (en) | 2020-01-07 |
EP3236623B1 (en) | 2019-06-12 |
EP3236623A4 (en) | 2017-12-06 |
WO2016095341A1 (zh) | 2016-06-23 |
US20170346680A1 (en) | 2017-11-30 |
EP3236623A1 (en) | 2017-10-25 |
CN105763471B (zh) | 2019-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105763471A (zh) | 虚拟机环境下链路管理方法、装置和系统 | |
US11323307B2 (en) | Method and system of a dynamic high-availability mode based on current wide area network connectivity | |
US9965368B2 (en) | High-availability cluster architecture and protocol | |
US10693813B1 (en) | Enabling and disabling links of a networking switch responsive to compute node fitness | |
WO2017114017A1 (zh) | 实现负载均衡的计算机设备、系统和方法 | |
US9300574B2 (en) | Link aggregation emulation for virtual NICs in a cluster server | |
US9660864B2 (en) | Staged port initiation of inter switch links | |
CN101917337B (zh) | 路由器集群中板间互联的装置及方法 | |
CN103117876B (zh) | 用户状态信息的同步方法及装置 | |
US20140189094A1 (en) | Resilient duplicate link aggregation emulation | |
WO2014032233A1 (zh) | 虚拟机热迁移的系统和方法 | |
US20080205402A1 (en) | Network resource teaming on a per virtual network basis | |
JP2014535228A (ja) | ポート設定方法、ルーティングデバイス、およびコンピュータプログラム製品 | |
EP3213441B1 (en) | Redundancy for port extender chains | |
CN101594383A (zh) | 一种双控制器存储系统的服务和控制器状态监控方法 | |
CN102104531A (zh) | 一种报文处理装置、方法及系统 | |
CN109245926A (zh) | 智能网卡、智能网卡系统及控制方法 | |
CN109565447A (zh) | 网络功能处理方法及相关设备 | |
US11095510B2 (en) | Aggregated networking device maintenance system | |
CN107948063B (zh) | 一种建立聚合链路的方法和接入设备 | |
WO2013189069A1 (zh) | 负荷分担方法及装置、单板 | |
CN105763442B (zh) | 主备倒换lacp聚合链路不中断的pon系统及方法 | |
CN109032754B (zh) | 提高通信路径可靠性的方法和设备 | |
CN103905498B (zh) | 服务信息管理方法及服务信息管理系统 | |
WO2015101100A1 (zh) | 网络设备及网络中的业务处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |