CN105763471B - 虚拟机环境下链路管理方法、装置和系统 - Google Patents
虚拟机环境下链路管理方法、装置和系统 Download PDFInfo
- Publication number
- CN105763471B CN105763471B CN201410785426.2A CN201410785426A CN105763471B CN 105763471 B CN105763471 B CN 105763471B CN 201410785426 A CN201410785426 A CN 201410785426A CN 105763471 B CN105763471 B CN 105763471B
- Authority
- CN
- China
- Prior art keywords
- virtual network
- network card
- link
- lacp
- virtual
- 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
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,Link Aggregation Control Protocol),将多个物理端口汇聚为一个聚合口由OS及上层业务使用。
在非虚拟化的主机操作系统(Operation System,OS)中,通过运行802.3ad链路汇聚控制协议,可以自动完成与交换机侧连接的多个端口的协商及管理。在虚拟机环境中,网卡设备通过单根I/O虚拟化(Sing Root I/O Virtualization,SR-IOV)或虚拟机设备队列(Virtual Machine Device Queue,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数据单元(LACP Data Unit)协议报文将同时与交换机的LACP进行协商,此时将可能导致协商不成功。
如果在虚拟机环境中采用静态配置交换机的方法,有如下缺点:
缺少VF到外部交换机的全路径检测机制,一旦发生链路故障,无法判别是虚拟机内部VF问题,还是外部物理链路到交换机之间的问题,增加故障处理难度。
除了静态配置交换机外,目前常用的方法还有:
宿主操作系统(Host OS)管理的PF运行LACP协议并构建物理聚合组,客户操作系统(Guest OS)管理的VF构建虚拟LACP聚合组,物理聚合组的状态信息同步到虚拟聚合组,虚拟聚合组根据物理聚合组的协议状态信息来管理VF端口,虚拟机上不需要实际的LACP协商过程,但也缺少VF到外部交换机的全路径检测机制。
由上可以看出,上述两种方法均存在无法实现虚拟机网络链路的全路径检测的问题,从而造成当VF内部端口异常时会导致虚拟机LACP聚合组丢包的情况的出现。
为了解决虚拟机环境下VF网口的链路聚合控制管理,需要有一种方法来实现Guest OS、VF端口、Host OS、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,NetworkInterface Card),并通过虚拟化技术提供虚拟机,在虚拟机上运行Guest OS,同时提供一定数量的CPU核运行Host OS,各Guest OS之间及Guest OS与Host OS之间相互隔离。
NIC通过IO虚拟化技术(典型方法如SR-IOV)为VM提供虚拟网卡支持。NIC通过I/O虚拟化技术为VM提供所需的VF虚拟网卡,VM采用负荷分担或主备模式将多个VF汇聚为一个端口。如采用SR-IOV技术,NIC可同时构建一个物理端口(PF,Physical Function),用于管理NIC及VF。外部物理端口的LACP协商由服务器HOST主机通过NIC的PF来完成。如果采用VMDq或其它虚拟化技术,则在全部VF中选择其中一个作为对外协商端口,此端口称为主VF端口。以SR-IOV为例,网卡可以提供一个或多个物理功能接口(PF),同时提供多个VF接口,其中PF由Host OS使用,主要用于Host OS自身外部通信需求、对外LACP协议管理及VF资源管理;VF由VM上的Guest OS使用。为提高通信链路的可靠性,同一Guest OS的多个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聚合组所在的Guest OS不运行LACP协议。
由图4所示示意图可以看出,HOST主机仍然按照现有技术流程运行LACP协议,虚拟机借助NIC卡提供的VF进行数据传输,未进行硬件的改进,保持现有的硬件结构。
图5为图3所示连接关系下HOST主机与VM通过NIC共享通信队列实现信息交互示意图。图5所示示意图中Host OS与Guest OS之间通过共享通信队列构建心跳握手链路并通过此链路同步PF、VF聚合状。
具体来说,在Host OS侧配置NIC的VF功能时会同时为每个VF提供一个邮箱MAILBOX机制,PF与VF之间可以利用此机制实现信息交互。本发明中使用了VF的邮箱功能来建立Host OS与Guest OS之间的心跳握手链路,此链路可以完成Host OS与Guest OS的双向握手和聚合状态同步。
由图5可以看出,所述心跳握手链路是基于共享通信队列机制在网络接口卡上物理端口与虚拟网卡之间建立的,其中所述虚拟网卡是由所述网络接口卡为所述虚拟机提供的,HOST主机可通过心跳握手链路将自身运行LACP协议得到LACP状态信息分享给虚拟机,方便虚拟机获知外部链路状态,实现全链路的检测。
图6为图3所示连接关系下HOST主机与VM之间的心跳握手链路建立流程示意图。
在服务器启动成功后,Host OS与Guest OS首先尝试通过NIC的共享通信队列机制构建心跳握手链路,该链路构建成功后,会同步物理端口和/或虚拟网卡聚合组状态信息;在PF聚合组LACP协商没有完成前,为避免造成传输环路,控制所述虚拟机对应的两个虚拟网卡以主备模式运行,仅保留基本对外通信能力。
心跳握手链路建立后,在Host OS侧,会持续运行PF LACP流程并定时将LACP状态同步到Guest OS;在Guest OS侧,持续检查各VF对应的心跳握手链路是否正常,如果不正常,则关闭对应VF端口,如果正常且已经获得对应PF的LACP状态信息,且本Guest OS将VF配置为负荷分担聚合模式,则首先将VF主备模式聚合组修改为负荷分担聚合组,并根据对应PF是否在LACP聚合组中将该PF对应的VF加入或退出Guest OS的VF负荷分担聚合组;如果PFLACP协商流程没有完成或没有同步到Guest OS,则继续等待。
图7为图3所示连接关系下HOST主机与VM实现LACP及状态同步的协作流程。在心跳握手链路建立后,HOST主机启动PF端口LACP协商流程,协商完成后通过心跳握手链路同步到VM的Guest OS VF端口,根据同步过来的PF LACP聚合组链路状态,将对应VF端口加入或退出VF负荷分担聚合组;当PF LACP协商失败时,重新修改VF聚合组为主备模式,避免环路。如果Guest OS将VF端口配置为主备模式,则在当前主用VF对应的PF端口异常时,发起主备VF链路切换,选择下一可用VF为主用端口。
本发明在网卡支持SR-IOV或VMDq等IO虚拟化技术的情况下,在网卡向虚拟机提供VF虚拟网卡时可以简化对外部交换机的配置,通过将LACP的协商流程迁移到PF端口,并基于网卡设备的邮箱通信机制建立双向心跳握手链路,可以实现VF聚合组不需要运行LACP协议,实现VF端口状态与Host OS中PF LACP聚合组的同步动态管理,同时也可以实现VF到Guest OS之间的内部链路检测。
图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 | 虚拟机环境下链路管理方法、装置和系统 |
PCT/CN2015/073368 WO2016095341A1 (zh) | 2014-12-16 | 2015-02-27 | 虚拟机环境下链路管理方法、装置和系统 |
US15/537,227 US10530636B2 (en) | 2014-12-16 | 2015-02-27 | Link management method, device and system in virtual machine environment |
EP15868858.0A EP3236623B1 (en) | 2014-12-16 | 2015-02-27 | Link management method, device and system in virtual machine environment |
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 CN105763471A (zh) | 2016-07-13 |
CN105763471B true 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) |
Families Citing this family (9)
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 |
CN107992352A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 用于虚拟化场景的数据交互方法及设备 |
CN109032754B (zh) * | 2018-06-29 | 2022-04-05 | 华为云计算技术有限公司 | 提高通信路径可靠性的方法和设备 |
CN110247821B (zh) * | 2019-06-04 | 2022-10-18 | 平安科技(深圳)有限公司 | 一种故障检测方法及相关设备 |
US10992515B1 (en) * | 2019-06-10 | 2021-04-27 | Cisco Technology, Inc. | Link state tracking for virtual interfaces |
CN112491570A (zh) * | 2019-09-11 | 2021-03-12 | 中兴通讯股份有限公司 | 一种虚拟网卡链路状态设置方法、装置及存储介质 |
CN110933142A (zh) * | 2019-11-07 | 2020-03-27 | 浪潮电子信息产业股份有限公司 | 一种icfs集群网卡监控方法、装置和设备及介质 |
CN113067771B (zh) * | 2020-01-02 | 2022-11-01 | 上海诺基亚贝尔股份有限公司 | 管理虚拟链路聚合信道 |
CN116866283A (zh) * | 2020-10-31 | 2023-10-10 | 华为技术有限公司 | 一种流表处理方法及相关设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838756B2 (en) * | 2009-07-27 | 2014-09-16 | Vmware, Inc. | Management and implementation of enclosed local networks in a virtual lab |
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 |
US8315156B2 (en) * | 2010-06-30 | 2012-11-20 | Oracle America, Inc. | Method and system for distributing network traffic among multiple direct hardware access datapaths |
US8819235B2 (en) * | 2010-10-20 | 2014-08-26 | International Business Machines Corporation | Multi-adapter link aggregation for adapters with hardware based virtual bridges |
US9021475B2 (en) * | 2011-05-04 | 2015-04-28 | Citrix Systems, Inc. | Systems and methods for SR-IOV pass-thru via an intermediary device |
US9727386B2 (en) * | 2012-10-12 | 2017-08-08 | Futurewei Technologies, Inc. | Method and apparatus for network resource virtual partitioning |
US9300574B2 (en) * | 2012-12-31 | 2016-03-29 | Advanced Micro Devices, Inc. | Link aggregation emulation for virtual NICs in a cluster server |
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 |
CN103336708B (zh) * | 2013-05-31 | 2016-12-28 | 华为技术有限公司 | 聚合网卡资源的方法和相关设备及计算机系统 |
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 WO PCT/CN2015/073368 patent/WO2016095341A1/zh active Application Filing
- 2015-02-27 US US15/537,227 patent/US10530636B2/en active Active
- 2015-02-27 EP EP15868858.0A patent/EP3236623B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN105763471A (zh) | 2016-07-13 |
US20170346680A1 (en) | 2017-11-30 |
EP3236623A1 (en) | 2017-10-25 |
EP3236623B1 (en) | 2019-06-12 |
EP3236623A4 (en) | 2017-12-06 |
US10530636B2 (en) | 2020-01-07 |
WO2016095341A1 (zh) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105763471B (zh) | 虚拟机环境下链路管理方法、装置和系统 | |
US10715411B1 (en) | Altering networking switch priority responsive to compute node fitness | |
CN105453487B (zh) | 用于数据中心环境中的双归属部署的方法、装置及介质 | |
EP3242217B1 (en) | Systems and methods for flexible hdd/ssd storage support | |
US8027354B1 (en) | Network consolidation for virtualized servers | |
US10284499B2 (en) | Dedicated control path architecture for systems of devices | |
US10025740B2 (en) | Systems and methods for offloading link aggregation to a host bus adapter (HBA) in single root I/O virtualization (SRIOV) mode | |
CN104104570A (zh) | Irf系统中的聚合处理方法及装置 | |
CN109245926B (zh) | 智能网卡、智能网卡系统及控制方法 | |
CN103248700B (zh) | 云平台虚拟机内外网不同级别限速的方法 | |
CN105516292A (zh) | 一种智能变电站云平台的热备方法 | |
US9984028B2 (en) | Redundancy for port extender chains | |
EP3316555A1 (en) | Mac address synchronization method, device and system | |
CN107948063B (zh) | 一种建立聚合链路的方法和接入设备 | |
CN105656645A (zh) | 堆叠系统的故障处理的决策方法和装置 | |
WO2014201623A1 (zh) | 用于数据传输的方法、装置和系统以及物理网卡 | |
CN104518936A (zh) | 链路动态聚合方法和装置 | |
CN109032754B (zh) | 提高通信路径可靠性的方法和设备 | |
CN104753707A (zh) | 一种系统维护方法及网络交换设备 | |
US20200136912A1 (en) | Method, Device, and System for Implementing MUX Machine | |
WO2018076715A1 (zh) | 一种端口的自协商方法和设备 | |
CN104536853B (zh) | 一种保障双控制器存储设备资源连续可用性的装置 | |
CN102118327A (zh) | 一种多主机网关 | |
US20220094590A1 (en) | Self-healing network of infrastructure processing units | |
US7830880B2 (en) | Selective build fabric (BF) and reconfigure fabric (RCF) flooding |
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 |