CN109032754A - 提高通信路径可靠性的方法和设备 - Google Patents
提高通信路径可靠性的方法和设备 Download PDFInfo
- Publication number
- CN109032754A CN109032754A CN201810700350.7A CN201810700350A CN109032754A CN 109032754 A CN109032754 A CN 109032754A CN 201810700350 A CN201810700350 A CN 201810700350A CN 109032754 A CN109032754 A CN 109032754A
- Authority
- CN
- China
- Prior art keywords
- communication path
- virtual machine
- physical network
- network card
- physical
- 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
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
一种提高通信路径可靠性的方法和设备,以提高虚拟机通信的可靠性。所述方法包括:创建虚拟机的第二通信路径,所述第二通信路径能够用于传输所述虚拟机收发的报文;所述虚拟机运行在主机设备中,所述主机设备中包括第一物理网卡,所述虚拟机通过第一通信路径收发报文,所述第一通信路径包括所述虚拟机与所述第一物理网卡中的虚拟功能VF之间直接相连的通信路径;所述虚拟机监控所述第一通信路径和所述第二通信路径的状态;当所述第一通信路径故障时,通过所述第二通信路径收发报文。
Description
技术领域
本发明涉及信息技术(Information Technology,IT)技术领域,尤其涉及提高通信路径可靠性的方法和设备。
背景技术
虚拟化技术可将主机的物理资源抽象成共享资源池,供主机上运行的虚拟机(virtual machine,VM)使用。主机上运行的多个虚拟机可以共享主机的网卡以与外部网络通信。可以通过网卡虚拟化的方式将网卡分配给虚拟机使用。网卡虚拟化可以采用单根输入输出虚拟化(Single-Root I/O Virtualization,SR-IOV)或多根输入输出虚拟化(MultiRoot Input/Output Virtualization,MR-IOV)。
在主机上使用支持SR-IOV能力的网卡时,网卡的物理端口会虚拟出至少一个物理功能(Physical Function,PF)以及多个虚拟功能(Virtual Function,VF),主机上的虚拟机连接到至少一个VF。
以网卡支持SR-IOV为例,虚拟机可以直接连接到输入/输出(input/output,I/O)设备,例如PF或VF。这种VM的I/O直接连接到网卡的情况,无法通过已有的机制为VM提供通信路径的可靠性。一旦网卡故障,将导致VM通信的中断。
发明内容
本申请描述了一种提高通信路径可靠性的方法和设备,以解决虚拟机的通信路径故障时造成的业务中断的问题。
第一方面,本申请提供了一种提高通信路径可靠性的方法,包括:
创建虚拟机的第二通信路径,所述第二通信路径能够用于传输所述虚拟机收发的报文;所述虚拟机运行在主机设备中,所述主机设备中包括第一物理网卡,所述虚拟机通过第一通信路径收发报文,所述第一通信路径包括所述虚拟机与所述第一物理网卡中的虚拟功能VF之间直接相连的通信路径;
所述虚拟机监控所述第一通信路径和所述第二通信路径的状态;
当所述第一通信路径故障时,通过所述第二通信路径收发报文。
上述方法中,通过创建虚拟机的第二通信路径,并在所述第一通信路径故障或通信中断时,所述虚拟机能够通过所述第二通信路径实现报文的收发。由于所述第一通信路径包括所述虚拟机与所述第一物理网卡中的虚拟功能VF之间直接相连的通信路径,提高了所述虚拟机通信路径的可靠性。解决了虚拟机直接连接VF场景下,虚拟机的通信路径因物理网卡、光模块等故障导致通信路径中断的问题。
可选的,上述报文可以包括用于实现控制的报文或用于传输数据的报文。
在一些可能的实现方式中,所述虚拟机包括第一虚拟网卡和第二虚拟网卡,所述主机设备还包括第二物理网卡和虚拟交换机;
所述虚拟机通过所述第一虚拟网卡收发通过所述第一通信路径传输的报文;
所述虚拟机通过所述第二虚拟网卡收发通过所述第二通信路径传输的报文;
其中,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述虚拟交换机直接相连的通信路径;或,所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径。
在一种可能的实现方式中,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述主机设备中的虚拟交换机直接相连的通信路径;所述方法还包括:
将所述第一通信路径设为主用通信路径,将所述第二通信路径设备备用通信路径;
所述通过所述第二通信路径收发报文之前还包括:
将所述第二通信路径设为主用通信路径。
可选的,所述虚拟机通过所述第二虚拟网卡与所述物理网卡中的虚拟交换机直接相连的通信路径可以是基于传统虚拟化网络实现I/O的通信路径,其转发报文的速率低于所述第一通信路径。
可选的,可以在所述虚拟机中配置主备路径管理模块,通过所述主备路径管理模块将所述第一通信路径设为主用通信路径,并通过所述主备路径管理模块将所述第二通信路径设备备用通信路径;相应的,
所述虚拟机监控所述第一通信路径和所述第二通信路径的状态包括:
所述虚拟机通过所述主备路径管理模块监控所述第一通信路径和所述第二通信路径的状态;
所述通过所述第二通信路径收发报文之前还包括:
通过所述主备路径管理模块,将所述第二通信路径设为主用通信路径。
在一种可能的实现方式中,将所述第二通信路径设为主用通信路径包括:
将所述第二虚拟网卡设为激活状态,并将所述第一虚拟网卡设为去激活或备用状态。
可选的,所述方法还可以包括:
将所述第二虚拟网卡的媒体接入控制MAC地址通过地址解析协议ARP报文发送给所述虚拟交换机。这样,所述虚拟交换机就可以根据学习到的所述虚拟机的MAC地址向所述虚拟机发送报文。
在一种可能的实现方式中,所述第一通信路径是所述虚拟机到所述第一物理网卡中的VF,再到所述第二物理网卡中的VF,再到Vlan子接口并到达所述-虚拟交换机之间的通信路径。
在一种可能的实现方式中,当所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径时,所述第一物理网卡的PF和所述第二物理网卡的PF为端口聚合,与所述第一物理网卡连接的第一物理交换机与所述第二物理网卡连接的第二物理交换机配置为设备聚合;其中,所述第一物理交换机是通过所述第一物理网卡与所述主机设备连接的物理交换机,所述第二物理交换机是通过所述第二物理网卡与所述主机设备连接的物理交换机;
相应的,所述通过所述第二通信路径收发报文包括:
在所述第一通信路径和所述第二通信路径中选择无故障的通信路径用于传输所述虚拟机收发的报文。
可选的,所述方法还包括:在所述虚拟机中配置端口聚合管理模块;
所述虚拟机监控所述第一通信路径和所述第二通信路径的状态包括:
所述虚拟机通过所述端口聚合管理模块监控所述第一通信路径和所述第二通信路径的状态;
相应的,所述通过所述第二通信路径收发报文包括:
所述虚拟机通过所述端口聚合管理模块,在所述第一通信路径和所述第二通信路径中选择无故障的通信路径用于传输所述虚拟机收发的报文。
在一种可能的实现方式中,所述第一物理网卡与所述第二物理网卡为不同的物理网卡。
可选的,所述第一物理网卡与所述第二物理网卡为反亲和模式。
在一种可能的实现方式中,所述第一通信路径是所述虚拟机到所述第一物理网卡中的VF再到第一物理交换机之间的通信路径,所述第二通信路径是所述虚拟机到所述第二物理网卡中的VF再到第二物理交换机之间的通信路径。
在一种可能的实现方式中,所述方法还包括:
通过链路汇聚控制协议LACP将所述第一物理网卡的物理功能PF和所述第二物理网卡的物理功能配置为端口聚合。
在一种可能的实现方式中,所述方法还包括:
通过堆叠技术、集群技术或跨设备链路聚合组M-LAG的方式,将所述第一物理交换机与所述第二物理交换机配置为设备聚合。
第二方面,本申请提供了一种运行虚拟机的设备,包括第一物理网卡和通过所述第一物理网卡中的虚拟功能VF直接通信的虚拟机;
所述虚拟机包括路径管理单元,用于监控第一通信路径和第二通信路径,所述第一通信路径包括所述虚拟机与所述VF之间直接相连的通信路径,所述虚拟机通过所述第一通信路径收发报文,所述第二通信路径能够用于传输所述虚拟机收发的报文;
所述路径管理单元,还用于在所述第一通信路径故障时,控制所述虚拟机通过所述第二通信路径收发报文。
上述设备中虚拟机通过所述第一通信路径收发报文,所述第二通信路径能够用于传输所述虚拟机收发的报文,所述虚拟机通过路径管理单元监控第一通信路径和第二通信路径;并在所述第一通信路径故障时,所述虚拟机能够通过所述第二通信路径实现报文的收发,提高了直通虚拟机通信路径的可靠性。由于所述第一通信路径包括所述虚拟机与所述VF之间直接相连的通信路径,解决了虚拟机直接连接VF场景下,虚拟机的通信路径因物理网卡、光模块等故障导致通信路径中断的问题。
在一种可能的实现方式中,所述虚拟机包括第一虚拟网卡和第二虚拟网卡,所述设备还包括第二物理网卡和虚拟交换机;
所述虚拟机通过所述第一虚拟网卡收发通过所述第一通信路径传输的报文;
所述虚拟机通过所述第二虚拟网卡收发通过所述第二通信路径传输的报文;
其中,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述虚拟交换机直接相连的通信路径;或,所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径。
在一种可能的实现方式中,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述虚拟交换机直接相连的通信路径,所述路径管理单元还用于将所述第一通信路径设为主用通信路径,并在所述第一通信路径故障时,将所述第二通信路径设为主用通信路径。
在一种可能的实现方式中,所述路径管理单元包括状态设定单元,所述状态设定单元,用于将所述第二虚拟网卡设为激活状态,并将所述第一虚拟网卡设为去激活或备用状态。
可选的,所述路径管理单元还包括发送单元,用于将所述第二虚拟网卡的媒体接入控制MAC地址通过地址解析协议ARP报文发送给所述虚拟交换机。这样,所述虚拟交换机就可以根据学习到的所述虚拟机的MAC地址向所述虚拟机发送报文。
在一种可能的实现方式中,所述第一通信路径是所述虚拟机到所述第一物理网卡中的VF到所述第二物理网卡中的VF再到Vlan子接口再到虚拟交换机之间的通信路径。
在一种可能的实现方式中,所述第一通信路径是所述虚拟机导所述第一物理网卡中的VF再到第一物理交换机之间的通信路径,所述第二通信路径是所述虚拟机到所述第二物理网卡中的VF再到第二物理交换机之间的通信路径;
其中,所述第一物理交换机是通过所述第一物理网卡与所述设备连接的物理交换机,所述第二物理交换机是通过所述第二物理网卡与所述设备连接的物理交换机。
在一种可能的实现方式中,所述第一物理网卡的物理功能PF和所述第二物理网卡的PF为端口聚合关系;所述第一物理交换机与所述第二物理交换机配置为设备聚合关系。
在一种可能的实现方式中,所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径,所述路径管理单元,用于在所述第一通信路径和所述第二通信路径中选择无故障的通信路径用于传输所述虚拟机收发的报文。
在一种可能的实现方式中,所述第一物理网卡与所述第二物理网卡为不同的物理网卡。可选的,第一物理网卡与所述第二物理网卡为反亲和模式。
第三方面,本申请还提供了一种计算机设备,其特征在于,包括:存储器和处理器,其中,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的所述指令,以在执行所述指令时执行上述第一方面所述的方法。
第四方面,本申请提供了一种计算机存储介质,用于储存为上述主机所用的计算机软件指令,其包含用于执行上述第一方面方面所设计的程序。
第五方面,本申请提供了一种计算机程序,当物理服务器运行该计算机程序时,该物理服务器执行上述第二方面中所述设备的功能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面附图中反映的仅仅是本发明的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得本发明的其他实施方式。而所有这些实施例或实施方式都在本发明的保护范围之内。
图1为本申请实施例提供的主机上的虚拟化结构示意图;
图2为本申请实施例提供的一种虚拟机直接连接到VF场景下主机上的虚拟化结构示意图;
图3为本申请实施例提供的一种虚拟机直接连接到VF情况下提高通信路径可靠性方法的流程示意图;
图4为本申请实施例提供的一种虚拟机直接连接到VF情况下提高通信路径可靠性方法的应用场景示意图;
图5为本申请实施例中以图4所述场景进行描述的一种方法的流程示意图;
图6为本申请实施例提供的另一种虚拟机直接连接到VF情况下提高通信路径可靠性方法的应用场景示意图;
图7为本申请实施例中以图6所述场景进行描述的一种方法的流程示意图;
图8为本申请实施例提供的一种虚拟机直接连接到VF情况下提高通信路径可靠性方法的具体应用场景示意图;
图9为本申请实施例中以图8所述场景进行描述的一种具体方法的流程示意图;
图10为本申请实施例提供的另一种虚拟机直接连接到VF情况下提高通信路径可靠性方法的具体应用场景示意图;
图11为本申请实施例中以图10所述场景进行描述的一种具体方法的流程示意图;
图12为本申请实施例一种运行虚拟机的设备400的结构示意图;
图13为本申请实施例一种运行虚拟机的设备400的另一种结构示意图;
图14为本申请实施例提供的设备500的结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
如图1所示,为本申请实施例提供的主机上的虚拟化结构示意图。主机为一台物理服务器,该物理服务器的底层为硬件层,硬件层主要包括中央处理器(central processingunit,CPU)、主存储器(例如随机存取存储器(RAM)等)、辅助存储器(例如硬盘等)以及网卡等硬件资源(图1中以只显示网卡)。服务器虚拟化是在物理服务器上借助虚拟化软件(如VMWare ESX、Citrix XEN)实现多个虚拟机的虚拟化运行环境。安装在服务器上实现虚拟化环境的软件层被称为虚拟机监视器(virtual machine monitor,VMM)。运行在硬件层之上的VMM承担对硬件层中的硬件资源进行调度、分配和管理工作。VMM之上运行多个虚拟机VM,VMM为每个虚拟机提供虚拟化的CPU、主存储器、辅助存储器、IO设备(如网卡)等硬件环境,并保证多个虚拟机相互隔离运行。
在虚拟化运行环境中,VMM为每个虚拟机创建虚拟网络接口卡(virtual networkinterface card,vNIC)。本申请实施例中,虚拟网络接口卡也简称为虚拟网卡。虚拟交换机(VSwitch)提供了虚拟机之间,以及虚拟机与外部网络之间的通讯能力。每个虚拟机的虚拟网卡连接到VSwitch的一个逻辑端口上,VSwitch通过物理网卡与外部物理交换机相连。
物理网卡的物理端口支持虚拟化能力可以通过单根输入输出虚拟化SR-IOV或MR-IOV来实现。下面以SR-IOV技术为例,对物理网卡的物理端口支持虚拟化能力的方式进行说明。
SR-IOV技术是一种基于硬件的虚拟化解决方案,可以在虚拟机之间高效共享快速外设组件互连(Peripheral Component Interconnect Express,PCIe)设备,并且由于SR-IOV技术是在硬件中实现的,因此能够获得高效的输入输出性能。外围设备互连专业组(Peripheral Component Interconnect Special Interest Group,PCI-SIG)定义了SR-IOV规范,SR-IOV规范可参阅http://www.pcisig.com。
通过使用SR-IOV技术,单个I/O资源可由主机上的多个虚拟机共享,这样,每个虚拟机都可访问同一个硬件资源。因此,启用了SR-IOV的PCIe设备(例如物理网卡)可以显示为多个单独的设备,显示出的每个单独的设备都具有独立的PCIe配置空间。以支持SR-IOV的物理网卡为例,该物理网卡上包含若干个物理端口,可以分别针对各个物理端口启用/禁用SR-IOV能力,启用了SR-IOV能力的物理端口对应于至少一个物理功能(PF)以及多个虚拟功能(VF)。
PF包含SR-IOV功能结构,用于管理SR-IOV功能。PF具有PCIe的功能,可以像其他任何PCIe设备一样被发现和管理。PF拥有完全配置资源,可以用于配置或控制PCIe设备。VF是与PF关联的一种功能,可以与PF以及与同一PF关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配置资源。每个SR-IOV设备都可有一个PF,并且每个PF最多可有64,000个与其关联的VF。PF可以通过寄存器创建VF,这些寄存器设计有专用于此目的的属性。一旦在PF中启用了SR-IOV,就可以通过PF的总线、设备和功能编号(例如路由标识)访问各个VF的PCIe配置空间。每个VF都具有一个PCIe内存空间,用于映射其寄存器集。VF设备驱动程序对寄存器集进行操作以启用其功能,并且显示为实际存在的PCIe设备。创建VF后,可以直接将其指定给各个应用程序。此功能使得虚拟功能可以共享物理设备,并在没有CPU和虚拟机管理程序软件开销的情况下执行I/O。
如图2所示,为本申请实施例提供的一种网卡直接连接VF场景下主机上的虚拟化结构示意图。图2中,主机100包括虚拟机VM1、物理网卡101、物理网卡102、物理网卡103、虚拟交换机104。其中,物理网卡101包括PF1、VF1、内嵌的虚拟交换机1011和光模块1012;物理网卡102包括PF2、VF2、内嵌的虚拟交换机1021和光模块1022;物理网卡103包括PF3、PF4、内嵌的虚拟交换机1031、内嵌的虚拟交换机1032、光模块1033和光模块1034。物理网卡101、物理网卡102和物理网卡103中可以包括多个VF,图2以包括一个VF为例进行说明。
本申请实施例中,光模块可以是一个物理上的连接器,用于将光纤与物理网卡连接起来,并能够实现光电信号的转换。
VM1与物理网卡101中的VF1可以建立直接连接,即建立直通通信路径。本申请实施例中,将虚拟机与物理网卡中的VF之间连接建立的通信路径称为直通通信路径,将通过直通通信路径实现通信的虚拟机称为直通虚拟机。
当VM1与VF1建立了直通通信路径后,VM1收发的报文等,可以直接通过VF1以实现转发。并且,VM1收发的报文可以通过路径:VF1→内嵌的虚拟交换机1011→光模块1012→光模块1022→内嵌的虚拟交换机1021→VF2→Vlan子接口105→虚拟交换机104实现VMM中的虚拟网络功能模块提供的丰富的网络功能。
在具体实现时,可能会存在物理网卡(例如物理网卡101、物理网卡102等)、光模块(例如光模块1012、光模块1022等)以及光模块1012与光模块1022之间的链路存在故障等原因,导致VM1的通信中断,VM1需要收发的报文等无法被转发,业务将无法正常运行。
为提高直通虚拟机通信路径的可靠性,本申请实施例提供了一种虚拟机直接连接VF情况下提高通信路径可靠性的方法。
参考图3,图3为本申请实施例提供的一种虚拟机直接连接VF情况下提高通信路径可靠性方法的流程示意图。如图3所示,所述方法包括:
步骤100:创建虚拟机的第二通信路径,所述第二通信路径能够用于传输所述虚拟机收发的报文;所述虚拟机运行在主机设备中,所述主机设备中包括第一物理网卡和第二物理网卡,所述虚拟机通过第一通信路径收发报文,所述第一通信路径包括所述虚拟机与所述第一物理网卡中的虚拟功能VF之间直接相连的通信路径;
具体的,可以由所述主机设备中实现网络拓扑创建或管理的模块,为所述虚拟机创建第二通信路径。例如,所述主机设备中的主机代理端为所述虚拟机创建网络拓扑,建立所述第二通信路径。具体的,可以由所述主机设备中的处理器运行所述主机代理端所对应的模块以实现所述主机代理端的功能。
本申请实施例中,所述主机设备可以是实现虚拟化的服务器,或其它实现虚拟功能的设备。例如,可以是图1所示的主机。
步骤102:所述虚拟机监控所述第一通信路径和所述第二通信路径的状态;
具体的,所述虚拟机运行在所述主机设备中,所述虚拟机可以通过上述图1所述的虚拟化的实现方式来实现。
步骤104:当所述第一通信路径故障时,通过所述第二通信路径收发报文。
具体的,可以通过切换通信路径,将所述虚拟机的通信路径改为所述第二通信路径,以通过所述第二通信路径传输所述虚拟机收发的报文。也可以在虚拟机需要收发报文时,选择未出现故障的第二通信路径,用于传输所述虚拟机需要收发的报文。
可以理解,所述第一通信路径故障,可以是因为所述第一通信路径中的传输节点故障,例如物理网卡故障导致无法传输报文;也可以是所述第一通信路径中某两个传输节点之间的通信链路或通信路径故障,导致无法传输报文。还可以是其它可能造成第一传输路径无法传输报文的情况,本申请实施例不做具体的限定。
上述方法中,通过创建虚拟机的第二通信路径,并在虚拟机的直通通信路径故障导致通信中断时,所述虚拟机能够通过所述第二通信路径实现报文的收发,提高了直通虚拟机通信路径的可靠性。解决了虚拟机直接连接VF场景下,虚拟机的通信路径因物理网卡、光模块等故障导致通信路径中断的问题。
下面通过具体的例子,对本申请实施例提供的虚拟机直接连接VF场景下,提供通信可靠性的方法进行详细描述。
以图4为例,图4中的主机200为一台计算机设备或服务器,主机200包括通常会包括CPU、主存储器、辅助存储器和网卡等硬件组成部分。例如,主机200可以是图1所述的服务器,可以参照图1中服务器的实现方式来实现。图4中以主机200包括虚拟机VM1、物理网卡201、物理网卡202、物理网卡203、虚拟交换机204和Vlan子接口205为例进行说明。物理网卡201包括PF1、VF1、内嵌的虚拟交换机2011和光模块2012;物理网卡202包括PF2、VF2、内嵌的虚拟交换机2021和光模块2022;物理网卡203包括PF3、PF4、内嵌的虚拟交换机2031、内嵌的虚拟交换机2032、光模块2033和光模块2034。可以理解,物理网卡201和物理网卡202中可以包括多个VF,图4以一个VF为例进行说明。
图5为本申请实施例提供的、以图4所述的场景为例进行描述的一种提高直通虚拟机通信路径可靠性方法的流程示意图。如图5所示,所述方法包括:
步骤200:为虚拟机VM1建立直通通信路径;
建立直通通信路径的方式,可以是在创建虚拟机时,为创建的虚拟机配置直通通信路径,以建立创建的虚拟机与物理网卡中VF之间的直接连接。具体可以通过云管理平台为物理网卡中的VF设置VLAN,并对所述VF做流量隔离,即对于通过所述VF的不同网络之间做流量隔离。同时,在对等物理网卡上分配VF,在该VF上创建对应VLan子接口,并将该VLan子接口加入虚拟交换机。通过上述方式能够减少传统虚拟网络中I/O的内核到用户态的多次切换,以及内存的多次拷贝,能够为虚拟机提供高速的转发路径。例如,在主机200中创建虚拟机VM1时,为VM1配置虚拟网卡(以虚拟网卡1为例进行说明),并建立虚拟网卡1与物理网卡201中VF1(以分配给VM1的VF为VF1为例进行说明)之间的连接。通过云管理平台为VF1设置VLAN,并对通过所述VF的不同网络之间做流量隔离;在物理网卡202上创建VF2,并在VF2上创建VLAN205子接口,将该子接口加入虚拟交换机204(为清楚体现连接关系,图4中以VLAN205子接口位于虚拟交换机204和VF2之间为例进行说明)。这样,VM1可以通过VF1建立直通通信路径,VM1收发的报文可以直接通过与VF1建立的直通通信路径实现转发。
可选的,可以通过云管理平台实现VM1的创建,以及VM1的直通通信路径的创建与配置。其中,VM1的直通通信路径即图4所示的VM1-VF1-VF2-VLAN子接口205之间的高速直通通信路径,即VM1通过虚拟网卡1到VF1,并经过VF2和VLan子接口205到达虚拟交换机204之间的通信路径。VM1的直通通信路径,可以为VM1的第一通信路径。
步骤202:创建虚拟机VM1的备用通信路径;
即在VM1的直通通信路径之外,再为VM1创建一条备用通信路径,该备用通信路径可以为VM1的第二通信路径。所述备用通信路径,用于在VM1的直通通信路径故障而无法实现报文的转发时,能够作为VM1的通信路径,实现VM1收发的报文的传输。
可选的,所述备用通信路径可以是基于传统虚拟化网络实现I/O的通信路径。所述备用通信路径通常是低速的通信路径,其转发报文的速率低于直通通信路径。
例如,可以在创建虚拟机VM1的同时或在创建虚拟机VM1之后,为VM1创建另一个虚拟网卡(以虚拟网卡2为例进行说明)。建立虚拟网卡2与虚拟交换机204的连接。当VM1的虚拟网卡2与虚拟交换机204之间建立连接后,VM1通过虚拟网卡2与虚拟交换机204之间的路径可以作为VM1的备用通信路径。
可选的,上述创建备用通信路径,可以通过云管理平台实现配置。
步骤204:在虚拟机VM1内配置主备路径管理模块,通过所述主备路径管理模块将VM1的直通通信路径设为主用路径;
具体可以通过在VM1中加载或安装具有主备路径管理管理功能的模块或软件程序,以实现对VM1的主备路径的管理。当VM1安装或加载了主备路径管理模块后,VM1通过运行主备路径管理模块,将VM1通过虚拟网卡1的直通通信路径设为主用路径,并将VM1通过虚拟网卡2与虚拟交换机204之间的路径设为备用通信路径。通常情况下,VM1通过主用路径发送或接收报文,当主用路径故障导致发送或接收报文失败时,VM1中的主备路径管理模块可以通过主备路径的切换,将备用通信路径切换为主用通信路径,是的VM1通过切换后的主用路径进行报文的收发。
以主机200运行Linux操作系统为例,Linux内核中,bonding模块能够提供端口聚合能力,实现主备路径管理的功能。在通过云管理平台创建VM1的时候,可以为VM1加载bonding模块。当然,也可以在创建VM1后为其加载bonding模块。VM1加载bonding模块后,可以通过执行“touch ifcfg-bond0”命令以创建名称为bond0的bond口,然后编辑bond0的配置文件ifcfg-bond0,BONDING_MODULE_OPTS=‘mode=active-backup mi imon=100primary=eth0’。其中,eth0代表具体的物理网卡(例如物理网卡201)。通过上述方式,即可设置VM1的主用通信路径。例如,可以将VM1的直通通信路径为主用通信路径。
对于其它操作系统下的实现方式,例如Windows操作系统中的实现方式,可以参照上述Linux操作系统的方式。基于在这些操作系统中实现主备路径管理的模块的配置实现方式,在VM1中配置主备路径管理模块,并设置相关的主用路径,不在赘述。
步骤206:当VM1的直通通信路径故障时,通过所述主备路径管理模块将VM1的备用路径设为主用通信路径。
VM1中的主备路径管理模块具有路径状态检测功能,可以周期性地检测VM1的主用通信路径的状态。当主备路径管理模块检测到VM1的主用通信路径出现故障时,启动路径的切换,将之前作为备用通信路径的VM1通过虚拟网卡2与虚拟交换机204之间的通信路径设为主用通信路径,以使VM1可以通过虚拟网卡2与虚拟交换机204之间的通信路径实现报文的收发。
以主备路径管理模块为Linux操作系统中的bonding模块为例,bonding模块可以周期性地进行路径状态的检测。例如,bonding模块可以将参数mi imon设置为100,即bonding模块将每100毫秒检测一次路径状态。当检测到主用路径故障时,bonding模块触发路径切换,将备用通信路径设为主用路径。
具体的,bonding模块可以将VM1的虚拟网卡2设置为激活(active)状态,将VM1的虚拟网卡1设置为去激活状态。通过虚拟网卡2的驱动发送地址解析协议(AddressResolution Protocol,ARP)报文,以将虚拟网卡2的媒体接入控制(Media AccessControl,MAC)地址发送给虚拟交换机204。虚拟交换机204接收到VM1发送的ARP报文后,更新记录的VM1的MAC地址为虚拟网卡2的MAC地址。后续VM1发送的报文,将通过虚拟网卡2发送到虚拟交换机204。虚拟交换机204接收到的发送给VM1的报文,将根据学习到的虚拟网卡2的MAC地址,通过虚拟交换机204与VM1的虚拟网卡2之间的通信路径发送给VM1。
通过上述方法,当VM1的直通通信路径故障时,即VM1通过虚拟网卡1到VF1,并经过VF2和VLan子接口205到达虚拟交换机204之间的通信路径故障时,VM1可以切换到备用通信路径进行报文的收发,即VM1可以通过虚拟网卡2与虚拟交换机之间的通信路径实现报文的转发,提高了虚拟机直接连接VF场景下通信路径的可靠性。
可以理解,上述步骤中,步骤200、步骤202和步骤204之间没有固定的先后顺序。在具体实现时,也可以先执行步骤202,再执行步骤200;也可以先执行步骤204中的配置主备路径管理模块,再建立直通通信路径和备用路径,然后再通过创建的主备路径管理模块实现路径的管理。
可选的,上述方法还可以进一步包括,当主备路径管理模块检测到VM1的直通通信路径故障恢复后,即VM1通过虚拟网卡1到VF1,并经过VF2和VLan子接口205到达虚拟交换机204之间的通信路径可以正常转发报文时,主备路径管理模块可以将VM1的主用路径切换为直通通信路径,以继续使用高速的直通通信路径传输数据或报文。
本申请实施例还提供了另一种虚拟机直接连接VF情况下提高通信路径可靠性的方法。下面以图6所示的场景为例对本申请实施例中另一种虚拟机直接连接VF情况下提高通信路径可靠性的实现方式进行描述。
图6中主机300可以是一台计算机设备或服务器,主机300通常会包括CPU、主存储器、辅助存储器和网卡等硬件组成部分。例如,主机300可以是图1所述的服务器,可以参照图1中服务器的实现方式来实现。图6中以主机300包括虚拟机VM1、物理网卡301和物理网卡302为例进行说明。其中,物理网卡301包括PF11、VF11、VF12、内嵌的虚拟交换机3011和光模块3012;物理网卡302包括PF21、VF21、VF22、内嵌的虚拟交换机3021和光模块3022。可以理解,物理网卡301和物理网卡302中可以包括多个VF,图6中以物理网卡包括1个VF为例进行说明。
图6中,物理网卡301通过光模块3012与物理交换机304连接,物理网卡302通过光模块3022与物理交换机303连接。物理交换机303和物理交换机304是主机300外部的物理交换机,可以实现主机300中不同虚拟机之间,以及主机300中虚拟机与外部网络的通信,实现报文的转发。
当VM1通过物理网卡301中的VF11、内嵌的虚拟交换机3011、光模块3012和物理交换机304之间的通信路径作为直通通信路径进行报文的收发时,可能因物理网卡301、光模块3012以及光模块与物理交换机304之间的通信故障等原因,导致通信路径的中断。为提升VM1通过直通通信路径收发报文的可靠性,本申请实施例提供了另一种提高直通虚拟机通信路径可靠性方法。
如图7所示,图7是以图6所述场景为例进行描述的一种提高直通虚拟机通信路径可靠性方法的流程示意图,所述方法包括:
步骤300:为VM1创建直通通信路径,包括VM1与VF11之间的直通通信路径以及VM1与VF21之间的直通通信路径;
创建VM1与VF11之间的直通通信路径,可以通过为VM1配置虚拟网卡(例如虚拟网卡1),并建立虚拟网卡1与VF11之间的连接。同样的,VM1与VF21之间的直通通信路径,可以通过为VM1配置虚拟网卡(例如虚拟网卡2),并建立虚拟网卡2与VF21之间的连接。
可选的,可以通过云管理平台实现VM1与VF11之间的直通通信路径,以及VM1与VF21之间的直通通信路径的创建与配置。
步骤302:将PF11和PF21配置为端口聚合;
具体的,可以通过链路聚合控制协议(Link Aggregation Control Protocol,LACP)将PF11和PF21配置为端口聚合。LACP是一种实现链路动态汇聚的协议。在需要对链路配置为互为备份的情况下,可以通过配置链路聚合实现同一聚合组内各个链路端口之间彼此动态备份。当通过LACP将PF11和PF21配置为端口聚合后,PF11和PF21在逻辑上被看作是一个端口,物理上的PF11和PF21互为备份。当VM1发送的报文需要通过物理网卡转发时,可以通过PF11对应的端口或PF21对应的端口实现转发;当PF11对应的端口所在的链路故障时,VM1可以通过PF21对应的端口所在的链路实现报文的转发。
可以理解,通过LACP还可以扩展链路的带宽。在带宽比较紧张的情况下,可以通过链路的逻辑聚合,将带宽扩展到原链路的N倍。例如将6个链路实现聚合,带宽可以扩展到原链路的6倍。
步骤304:配置物理交换机303与物理交换机304之间为设备聚合;
物理交换机303与物理交换机304之间被配置为聚合模式后,物理交换机303与物理交换机304逻辑上被看作是一个交换机,物理交换机303与物理交换机304之间可以互为备份。例如,当物理交换机303出现故障时,物理交换机304可以作为备份交换机,实现对需要通过物理交换机303转发的报文的转发。
可以理解,物理交换机303与物理交换机304之间被配置为聚合模式后,在物理交换机303与物理交换机304也可以实现负载均衡。
在具体实现时,可以通过堆叠技术或集群技术将物理交换机303与物理交换机304配置为设备聚合,也可以通过多框链路聚合组(Multichassis Link Aggregation Group,M-LAG)的方式将物理交换机303与物理交换机304配置为设备聚合。
以通过堆叠技术配置为设备聚合为例,当物理交换机303与物理交换机304通过堆叠技术被配置为设备聚合后,物理交换机303与物理交换机304可以被看成是一个逻辑交换机系统,该逻辑交换机系统通过一个IP地址进行管理,物理交换机303与物理交换机304之间可以实现负载均衡和容错。这样,在物理交换机303或物理交换机304中的一个存在故障时,业务不会因某一个物理交换机的故障而受到影响。
关于通过堆叠技术、集群技术或M-LAG的方式实现配置聚合模式的具体实现方式,可以参考现有技术中关于堆叠、集群或M-LAG配置的实现方式来实现,本申请实施例不再赘述。
步骤306:在虚拟机VM1内配置端口聚合管理模块,通过所述端口聚合管理模块实现VM1的两条直通通信路径的管理。
VM1中配置的端口聚合管理模块可以检测VM1的两条直通通信路径的状态,在两条直通通信路径都能够正常转发报文时,可以通过任意一条通信路径转发报文,也可以通过负荷分担的方式实现报文的转发。当其中一条通信路径因物理网卡、光模块或物理交换机故障而无法转发时,可以通过另外一条直通通信路径实现报文的转发。这样,VM1不仅能够通过直通通信路径实现高速的转发,还可以通过两条直通通信路径互为备份以提高报文转发的可靠性。
上述步骤302和步骤304中,VM1的两条直通通信路径中,物理网卡301中的PF11与物理网卡302中的PF21之间为端口聚合,由于VF11与PF11存在关联关系,VF21与PF21存在关联关系,经过VF11的通信路径与经过VF21的通信路径可以因PF11与PF21的端口聚合而实现备份。物理交换机303与物理交换机304之间为设备聚合,也使得经过物理交换机303与物理交换机304的通信路径因设备聚合而实现备份。最终,使得VM1通过物理网卡上的VF到物理交换机的两条直通通信路径具备了互为备份的条件。步骤306通过端口聚合管理模块对具备互为备份的两条直通通信路径实现管理,使得VM1的直通通信路径的可靠性得以提升。
图7所示的方法中,VF11和VF21是分别位于不同物理网卡上的VF,即物理网卡301和物理网卡302是独立的两个物理网卡,使得VM1与VF之间的直通通信路径不会因某一物理网卡故障而业务中断。即配置端口聚合的PF所在的两个物理网卡是反亲和的物理网卡。这样,当物理网卡301故障或光模块3012故障时,VM1可以通过与VF21之间的直通通信路径实现报文的转发。并且,物理交换机303与物理交换机304之间被配置为聚合模式,任一物理交换机故障不会影响正常业务的转发。例如物理交换机304故障或物理交换机304与光模块3012之间的路径故障,VM1可以通过VF21、内嵌的虚拟交换机3021、光模块3022和物理交换机303实现报文的转发。从而提高了直通虚拟机通信路径的可靠性。
可以理解,上述步骤中,步骤300、步骤302和步骤304之间没有固定的先后顺序。在具体实现时,也可以先执行步骤302,再执行步骤300;也可以先执行步骤304,再执行302或300。本申请实施例不限定具体的实现方式。
下面结合虚拟机创建的过程,描述本申请实施例提供的方法的具体实现过程。如图8所示,图8所示的场景是在图4所示的场景中增加组件:云平台控制端206、主机代理端207和部署控制端208进行详细的说明。其中:
云平台控制端206,可以是云管理平台,用于处理来自用户(例如管理员)的业务请求,并将业务数据发送给主机代理端207。
主机代理端207:用于接收云平台控制端206发送的业务数据,根据所述业务数据进行设置。例如,主机代理端207根据云平台控制端206发送的业务数据,设置网络端口等于网络转发相关的设置。
部署控制端208:用于对主机200的资源进行管理和配置,将主机200的物理资源信息发送给主机代理端207,并对相关的资源进行配置。例如,部署控制端208获取主机200物理网卡的设备信息,生成与物理网卡相关的配置文件并发送给主机代理端207;同时,对物理网卡还可以进行配置,例如配置网络网卡为负荷分担模式等。
图9为本申请实施例提供的、以图8所述场景为例进行描述的一种提高直通虚拟机通信路径可靠性具体实现方法的流程示意图。
如图9所示,所述方法包括:
步骤401:连接物理网卡;
即将物理网卡201和物理网卡202物理连接起来。实现物理网卡201与物理网卡202之间的连接,具体可以由管理员实现。
步骤402:配置物理网卡;
即管理员通过部署控制端为物理网卡201和物理网卡202配置SRIOV功能,并将物理网卡201和物理网卡202配置为负荷分担模式。例如,可以将物理网卡201和物理网卡202配置为主主bond模式,即负荷分担模式。
步骤403:发送主机SRIOV资源配置;
部署控制端208将配置的物理网卡的信息,包括但不限于SRIOV资源信息,例如PF1、VF1、PF2、VF2、PF3和PF4等信息,发送给主机代理端207。
步骤404:主机代理端将SRIOV资源上报给云平台控制端;
即主机代理端207向云平台控制端206上报获取到的SRIOV资源信息。
步骤405:创建SRIOV逻辑端口;
可以由业务员,例如创建虚拟机的用户,根据获取到的SRIOV资源信息,通过云平台控制端206创建SRIOV逻辑端口。所述SRIOV逻辑端口可以是虚拟网络的端口,虚拟机通过虚拟网络实现报文的转发。在创建SRIOV逻辑端口后,还需要建立创建的逻辑端口与物理网卡的端口之间的关联关系。
步骤406:创建虚拟机,指定端口和数据;
业务员通过云平台控制端206创建虚拟机,即VM1,并将上述创建的逻辑端口指定给新创建的虚拟机VM1,并为新创建的虚拟机指定用户数据。可选的,所述用户数据包括但不限于主机名或开机密码等信息。
步骤407:主机调度;
本步骤为可选步骤,当云平台控制端206控制和管理的主机为多个时,云平台控制端206选择具备高可靠性资源的主机进行调度,即调度高可靠性的主机以创建虚拟机。本实施例以调度主机200为例进行说明。
步骤408:创建虚拟机网络拓扑;
主机代理端207为虚拟机VM1创建网络连接,即建立VM1的通信路径。例如,VM1通过虚拟网卡1与VF1之间建立连接,以建立VM1-VF1-VF2-Vlan子接口205-虚拟交换机204之间的直通通信路径。同时,主机代理端207还为VM1创建备用路径,即VM1与虚拟交换机204之间的通信路径。
步骤409:启动虚拟机;
即主机代理端207启动虚拟机VM1。
步骤410:虚拟机获取用户数据;
即VM1通过云平台控制端206获取虚拟机运行所需的用户数据。虚拟机VM1获取到的用户数据,包括但不限于:VM1配置主备管理模块以及主备策略。
步骤411:配置主备策略。
VM1通过获取到的用户数据中的主备管理模块,将虚拟网卡1与VF1连接后建立的直通通信路径配置为主用路径,将VM1通过虚拟网卡2与虚拟交换机之间的路径设为备用路径。
这样,当VM1的直通通信路径因物理网卡201、物理网卡202、或物理网卡201与物理网卡202之间的通信链路出现故障,导致报文无法正常转发时,VM1通过可以通过主备管理模块将虚拟网卡2与虚拟交换机204之间的通信路径设置为主用路径。VM1就可以通过虚拟网卡2与虚拟交换机204之间的通信路径实现报文的转发,提高了虚拟机直接连接到VF场景下通信路径的可靠性。
下面以图10所示的场景为例,对本申请实施例提供的另一种提高直通虚拟机通信路径可靠性的方法进行详细说明。图10是在图6所示的场景中增加组件:云平台控制端305、主机代理端306和部署代理端307。其中:
云平台控制端305,可以是云管理平台,用于处理来自用户(例如管理员)的业务请求,并将业务数据发送给主机代理端306。
主机代理端306:用于接收云平台控制端305发送的业务数据,根据所述业务数据进行设置。例如,主机代理端306根据云平台控制端305发送的业务数据,设置网络端口等于网络转发相关的设置。
部署控制端307:用于对主机300的资源进行管理和配置,将主机300的物理资源信息发送给主机代理端306,并对相关的资源进行配置。例如,部署控制端307获取主机300物理网卡的设备信息,生成与物理网卡相关的配置文件并发送给主机代理端306;同时,对物理网卡还可以进行配置,例如配置网络网卡为负荷分担模式等。
图11为本申请实施例提供的、以图10所述场景为例进行描述的另一种提高直通虚拟机通信路径可靠性具体实现方法的流程示意图。
如图11所示,所述方法包括:
步骤501:配置物理交换机为聚合模式;
即实现物理交换机303与物理交换机304之间的物理连接,并将物理交换机303与物理交换机304配置为聚合模式。
具体的,可以由管理员将物理交换机303与物理交换机304连接起来,并通过堆叠技术或集群技术,将物理交换机303与物理交换机304配置为聚合模式,也可以通过M-LAG的方式将物理交换机303与物理交换机304配置为聚合模式。
步骤502:配置物理网卡;
即管理员通过部署控制端为物理网卡301和物理网卡302配置SRIOV功能,并将物理网卡301中的PF11与物理网卡302中的PF21配置为端口聚合。
步骤503:发送主机SRIOV资源配置;
即部署控制端307将配置的物理网卡的信息,包括但不限于SRIOV资源信息,例如PF11、VF11、VF12、PF21、VF21和VF22等信息,以及PF11与PF21被配置为端口聚合的信息,发送给主机代理端306。
步骤504:上报主机SRIOV资源;
即主机代理端306向云平台控制端305上报获取到的SRIOV资源信息。
步骤505:创建第一SRIOV逻辑端口;
可以由业务员,例如创建虚拟机的用户,根据获取到的SRIOV资源信息,通过云平台控制端206创建第一SRIOV逻辑端口。所述第一SRIOV逻辑端口可以是虚拟网络的端口,虚拟机通过虚拟网络实现报文的转发。在创建第一SRIOV逻辑端口后,还需要建立创建的第一SRIOV逻辑端口与物理网卡的端口之间的关联关系。
步骤506:创建第二个SRIOV逻辑端口;
业务员按照与步骤505类似的方式,创建第二SRIOV逻辑端口,并为所创建的第二SRIOV逻辑端口与第一SRIOV逻辑端口分配相同的MAC地址。
步骤507:创建虚拟机,指定两个虚拟端口同属一个反亲和组,并指定用户数据;
业务员通过云平台控制端305创建虚拟机,即VM1;并指定创建的两个逻辑端口同属一个反亲和组。两个逻辑端口同属一个反亲和组,即两个逻辑端口在与具体的物理网卡关联时,分别关联在不同的物理网卡上。同时,还将上述创建的逻辑端口指定给新创建的虚拟机VM1,并为新创建的虚拟机指定用户数据。可选的,所述用户数据包括但不限于主机名或开机密码等信息。
步骤508:主机调度;
本步骤为可选步骤,当云平台控制端305控制和管理的主机为多个时,云平台控制端305选择具备高可靠性资源的主机进行调度,即调度高可靠性的主机以创建虚拟机。本实施例以调度主机300为例进行说明。
步骤509:通过反亲和处理,在不同的PF上分别申请VF,并与虚拟机直接连接;
主机代理端306分别在不同的物理网卡的PF上申请VF。例如在物理网卡301中申请VF11,在物理网卡302中申请VF21,并分别建立VM1与VF11和VF21的直通通信路径。
步骤510:启动虚拟机;
即主机代理端306启动VM1。
步骤511:获取用户数据;
即VM1通过云平台控制端305获取虚拟机运行所需的用户数据。
步骤512:运行用户数据,配置端口聚合管理模块。
VM1运行获取到的用户数据,包括运行用户数据中的端口聚合管理模块。通过所述端口聚合管理模块,VM1可以实现与VF11之间的直通通信路径以及与VF21之间的直通通信路径的互为备份。
由于VF11和VF21是分别位于不同物理网卡上的VF,即物理网卡301和物理网卡302是独立的两个物理网卡,使得VM1与VF之间的直通通信路径不会因某一物理网卡故障而业务中断。并且,物理交换机303与物理交换机304之间被配置为聚合模式,任一物理交换机故障不会影响正常业务的转发,提高了直通虚拟机通信路径的可靠性。
本申请实施例还提供了一种运行虚拟机的设备400。如图12所示,设备400包括物理网卡402、物理网卡403和通过物理网卡402中的虚拟功能VF4021直接通信的虚拟机VM401;
所述虚拟机401包括路径管理单元4011,用于监控第一通信路径和第二通信路径,所述第一通信路径包括所述虚拟机401与所述VF4021之间直接相连的通信路径,所述第二通信路径是所述虚拟机401用于收发报文的通信路径,所述虚拟机401通过所述第一通信路径收发报文;
所述路径管理单元4011,还用于在所述第一通信路径故障时,控制所述虚拟机401通过所述第二通信路径收发报文。
上述设备400可以在VM401的直通通信路径故障时,即VM1通过VF4021的直通通信路径故障时,VM401可以通过第二通信路径进行报文的收发,提高了虚拟机401直接连接到VF场景下通信路径的可靠性。
可选的,如图13所示,所述VM401包括虚拟网卡4012和虚拟网卡4013,所述设备400还包括虚拟交换机404;
所述虚拟机401通过所述虚拟网卡4012收发通过所述第一通信路径传输的报文;
所述虚拟机401通过所述虚拟网卡4013收发通过所述第二通信路径传输的报文;
其中,所述第二通信路径是所述虚拟机401通过所述虚拟网卡4013与所述虚拟交换机404直接相连的通信路径;或,
所述第二通信路径包括所述虚拟机401通过所述虚拟网卡4013与所述物理网卡403中的VF4031直接相连的通信路径。
可选的,所述路径管理单元4011还用于将所述第一通信路径设为主用通信路径,并在所述第一通信路径故障时,将所述第二通信路径设为主用通信路径,所述第二通信路径是所述虚拟机401通过所述虚拟网卡4013与所述虚拟交换机404直接相连的通信路径。
可选的,所述路径管理单元4011包括状态设定单元40111和发送单元40112,
所述状态设定单元40111,用于将所述虚拟网卡4013设为激活状态,并将所述虚拟网卡设4012为备用状态;
所述发送单元40112,用于将所述虚拟网卡4013的MAC地址通过ARP报文发送给所述虚拟交换机404。
可选的,所述设备400还包括VLAN子接口405,上述第一通信路径是所述虚拟机401---所述物理网卡402中的VF4021---所述物理网卡403中的VF4031---Vlan子接口405---虚拟交换机404之间的通信路径。
可选的,上述第一通信路径是所述虚拟机401---所述物理网卡中402的VF4021---第一物理交换机之间的通信路径,所述第二通信路径是所述虚拟机401---所述物理网卡403中的VF4031---第二物理交换机之间的通信路径;其中,所述第一物理交换机是通过所述物理网卡402与所述设备400连接的物理交换机,所述第二物理交换机是通过所述物理网卡403与所述设备400连接的物理交换机。所述物理网卡402的物理功能PF(图中未示出)和所述物理网卡403的PF(图中未示出)为端口聚合关系;所述第一物理交换机与所述第二物理交换机配置为设备聚合关系。相应的,所述路径管理单元4011,用于在所述第一通信路径和所述第二通信路径中选择无故障的通信路径用于传输所述虚拟机401收发的报文。
可选的,所述物理网卡402与所述物理网卡403为反亲和模式,即物理网卡402与所述物理网卡403为不同的物理网卡。这样,VM1的通信路径不会因物理网卡的故障而中断。当一个物理网卡,例如物理网卡403故障时,VM1还可以通过与物理网卡403之间的直通通信路径进行报文的收发。
上述图12或图13所示的设备,可以用于实现上述图3、图5、图7、图9和图11中主机所实现的方法,具体可以参照上述方法中主机设备相应的实现方式来实现,不再赘述。
参阅图14,图14为本申请实施例提供的设备500的结构示意图。如图14所示,设备500可以包括一个或一个以上CPU501(例如,一个或一个以上处理器)和存储器502,存储一个或一个以上存储应用程序5031或数据5032的存储介质503(例如一个或一个以上海量存储设备)。其中,存储器702和存储介质503可以是短暂存储或持久存储。存储在存储介质503的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对处理系统中的一系列指令操作。更进一步地,CPU500可以设置为与存储介质503通信,在设备500上执行存储介质503中的一系列指令操作。
设备500还可以包括一个或一个以上电源506,一个或一个以上有线或无线网络接口505,一个或一个以上输入输出接口504,和/或,一个或一个以上操作系统5033,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
设备500中,存储器502或存储介质503中可以存储指令,CPU501用于执行所述存储器存储的所述指令,以在执行所述指令时执行上述图3、图5、图7、图9和图11中主机所实现的方法。
本申请实施例涉及到的计算机程序指令可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,通过执行计算机程序指令可以实现前述各实施例中各部件的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域普通技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案的全部或部分可以以软件产品的形式体现出来。该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。前述的存储介质包括:移动硬盘、只读存储器(ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种提高通信路径可靠性的方法,其特征在于:
创建虚拟机的第二通信路径,所述第二通信路径能够用于传输所述虚拟机收发的报文;所述虚拟机运行在主机设备中,所述主机设备中包括第一物理网卡,所述虚拟机通过第一通信路径收发报文,所述第一通信路径包括所述虚拟机与所述第一物理网卡中的虚拟功能VF之间直接相连的通信路径;
所述虚拟机监控所述第一通信路径和所述第二通信路径的状态;
当所述第一通信路径故障时,通过所述第二通信路径收发报文。
2.根据权利要求1所述的方法,其特征在于,所述虚拟机包括第一虚拟网卡和第二虚拟网卡,所述主机设备还包括第二物理网卡和虚拟交换机;
所述虚拟机通过所述第一虚拟网卡收发通过所述第一通信路径传输的报文;
当所述第一通信路径故障时,所述虚拟机通过所述第二虚拟网卡收发通过所述第二通信路径传输的报文;
其中,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述虚拟交换机直接相连的通信路径;或,所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径。
3.根据权利要求1所述的方法,其特征在于,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述主机设备中的虚拟交换机直接相连的通信路径;所述方法还包括:
将所述第一通信路径设为主用通信路径,将所述第二通信路径设备备用通信路径;
所述通过所述第二通信路径收发报文之前还包括:
将所述第二通信路径设为主用通信路径。
4.根据权利要求3所述的方法,其特征在于,将所述第二通信路径设为主用通信路径包括:
将所述第二虚拟网卡设为激活状态,并将所述第一虚拟网卡设为去激活状态。
5.一种运行虚拟机的设备,其特征在于,包括第一物理网卡和通过所述第一物理网卡中的虚拟功能VF直接通信的虚拟机;
所述虚拟机包括路径管理单元,用于监控第一通信路径和第二通信路径,所述第一通信路径包括所述虚拟机与所述VF之间直接相连的通信路径,所述虚拟机通过所述第一通信路径收发报文,所述第二通信路径能够用于传输所述虚拟机收发的报文;
所述路径管理单元,还用于在所述第一通信路径故障时,控制所述虚拟机通过所述第二通信路径收发报文。
6.根据权利要求5所述的设备,其特征在于,所述虚拟机包括第一虚拟网卡和第二虚拟网卡,所述设备还包括第二物理网卡和虚拟交换机;
所述虚拟机通过所述第一虚拟网卡收发通过所述第一通信路径传输的报文;
所述虚拟机通过所述第二虚拟网卡收发通过所述第二通信路径传输的报文;
其中,所述第二通信路径是所述虚拟机通过所述第二虚拟网卡与所述虚拟交换机直接相连的通信路径;或,所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径。
7.根据权利要求5或6所述的设备,其特征在于,
所述第一通信路径是所述虚拟机到所述第一物理网卡中的VF再到第一物理交换机之间的通信路径,所述第二通信路径是所述虚拟机到所述第二物理网卡中的VF再到第二物理交换机之间的通信路径;
其中,所述第一物理交换机是通过所述第一物理网卡与所述设备连接的物理交换机,所述第二物理交换机是通过所述第二物理网卡与所述设备连接的物理交换机。
8.根据权利要求7所述的设备,其特征在于,
所述第一物理网卡的物理功能PF和所述第二物理网卡的PF为端口聚合关系;
所述第一物理交换机与所述第二物理交换机配置为设备聚合关系。
9.根据权利要求8所述的设备,其特征在于,当所述第二通信路径包括所述虚拟机通过所述第二虚拟网卡与所述第二物理网卡中的VF直接相连的通信路径时,所述路径管理单元,用于在所述第一通信路径和所述第二通信路径中选择无故障的通信路径用于传输所述虚拟机收发的报文。
10.一种计算机设备,其特征在于,包括:存储器和处理器,其中,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的所述指令,以在执行所述指令时执行如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810700350.7A CN109032754B (zh) | 2018-06-29 | 2018-06-29 | 提高通信路径可靠性的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810700350.7A CN109032754B (zh) | 2018-06-29 | 2018-06-29 | 提高通信路径可靠性的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032754A true CN109032754A (zh) | 2018-12-18 |
CN109032754B CN109032754B (zh) | 2022-04-05 |
Family
ID=65521002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810700350.7A Active CN109032754B (zh) | 2018-06-29 | 2018-06-29 | 提高通信路径可靠性的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032754B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351149A (zh) * | 2019-07-26 | 2019-10-18 | 北京神州绿盟信息安全科技股份有限公司 | 一种维护网络数据转发平面的方法及装置 |
CN110601972A (zh) * | 2019-09-18 | 2019-12-20 | 新华三信息安全技术有限公司 | 一种报文传输方法、装置及智能弹性架构系统 |
CN112491570A (zh) * | 2019-09-11 | 2021-03-12 | 中兴通讯股份有限公司 | 一种虚拟网卡链路状态设置方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008131654A1 (fr) * | 2007-04-28 | 2008-11-06 | Huawei Technologies Co., Ltd. | Système de réseau et procédé pour établir le trajet le plus court et transmettre le paquet de diffusion |
CN103236988A (zh) * | 2013-05-15 | 2013-08-07 | 华为技术有限公司 | Sr-iov网卡缓冲资源的分配方法及装置 |
CN103441879A (zh) * | 2013-08-29 | 2013-12-11 | 华为技术有限公司 | 一种网络通道切换方法及装置 |
US20150160963A1 (en) * | 2013-12-10 | 2015-06-11 | International Business Machines Corporation | Scheduling of processes using a virtual file system |
CN105763471A (zh) * | 2014-12-16 | 2016-07-13 | 中兴通讯股份有限公司 | 虚拟机环境下链路管理方法、装置和系统 |
CN107544841A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 虚拟机热迁移方法和系统 |
US20180136867A1 (en) * | 2016-11-15 | 2018-05-17 | Red Hat Israel, Ltd. | Address based host page table selection |
-
2018
- 2018-06-29 CN CN201810700350.7A patent/CN109032754B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008131654A1 (fr) * | 2007-04-28 | 2008-11-06 | Huawei Technologies Co., Ltd. | Système de réseau et procédé pour établir le trajet le plus court et transmettre le paquet de diffusion |
CN103236988A (zh) * | 2013-05-15 | 2013-08-07 | 华为技术有限公司 | Sr-iov网卡缓冲资源的分配方法及装置 |
CN103441879A (zh) * | 2013-08-29 | 2013-12-11 | 华为技术有限公司 | 一种网络通道切换方法及装置 |
US20150160963A1 (en) * | 2013-12-10 | 2015-06-11 | International Business Machines Corporation | Scheduling of processes using a virtual file system |
CN105763471A (zh) * | 2014-12-16 | 2016-07-13 | 中兴通讯股份有限公司 | 虚拟机环境下链路管理方法、装置和系统 |
CN107544841A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 虚拟机热迁移方法和系统 |
US20180136867A1 (en) * | 2016-11-15 | 2018-05-17 | Red Hat Israel, Ltd. | Address based host page table selection |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351149A (zh) * | 2019-07-26 | 2019-10-18 | 北京神州绿盟信息安全科技股份有限公司 | 一种维护网络数据转发平面的方法及装置 |
CN112491570A (zh) * | 2019-09-11 | 2021-03-12 | 中兴通讯股份有限公司 | 一种虚拟网卡链路状态设置方法、装置及存储介质 |
CN110601972A (zh) * | 2019-09-18 | 2019-12-20 | 新华三信息安全技术有限公司 | 一种报文传输方法、装置及智能弹性架构系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109032754B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107278362B (zh) | 云计算系统中报文处理的方法、主机和系统 | |
US8027354B1 (en) | Network consolidation for virtualized servers | |
CN102845035B (zh) | 在虚拟环境中识别目的地的方法 | |
CN103618621B (zh) | 一种软件定义网络sdn的自动配置方法、设备及系统 | |
CN104301391B (zh) | 多域光网络数据中心资源虚拟化映射方法 | |
CN107278359A (zh) | 云计算系统中报文处理的方法、主机和系统 | |
US20100287262A1 (en) | Method and system for guaranteed end-to-end data flows in a local networking domain | |
CN105763471B (zh) | 虚拟机环境下链路管理方法、装置和系统 | |
CN104104572A (zh) | 一种sdn网络中的交换机自动部署方法及装置 | |
CN104320350A (zh) | 用于提供基于信用的流控制的方法及系统 | |
CN103609077B (zh) | 用于数据传输的方法、装置和系统以及物理网卡 | |
KR102036731B1 (ko) | 가상화 네트워크 기능 클러스터링 구성 시스템 및 방법 | |
CN109032754A (zh) | 提高通信路径可靠性的方法和设备 | |
CN108234158A (zh) | Vnf的建立方法、nfvo以及网络系统 | |
CN102576309B (zh) | 当在运行于相同数据处理系统上的应用程序之间通信时,通过旁路网络栈而在逻辑分区系统中的分区之间的通信 | |
WO2016101587A1 (zh) | 虚拟化服务器的链路聚合方法、系统及其智能网络适配器 | |
CN113190378A (zh) | 一种基于分布式云平台的边缘云灾备方法 | |
US20190199582A1 (en) | Alarm information reporting method and apparatus | |
CN104123183B (zh) | 集群作业调度方法和装置 | |
CN107948063B (zh) | 一种建立聚合链路的方法和接入设备 | |
CN108632155A (zh) | 云平台流量调度方法和系统、计算机可读的存储介质 | |
CN108028806A (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
CN106254095B (zh) | 隧道业务的备份处理方法和设备 | |
CN105159784B (zh) | 一种虚拟服务器的部署方法及系统 | |
KR101644678B1 (ko) | 네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220223 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |