基于虚拟局域网的虚拟接口进行链路聚合方法和装置制造方法

文档序号:8000236阅读:283来源:国知局
基于虚拟局域网的虚拟接口进行链路聚合方法和装置制造方法
【专利摘要】本发明的各实施方式提供了基于虚拟局域网的虚拟接口进行链路聚合方法和装置。具体地,在本发明的一个实施方式中,提供了一种基于虚拟局域网来管理数据传输的方法,包括:分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属性;响应于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以及经由第一虚拟接口和第二虚拟接口,分别将第一物理接口和第二物理接口映射至相同的数据通道,其中第一物理接口和第二物理接口位于相同处理设备中。在本发明的一个实施方式中,提供了一种基于虚拟局域网来管理数据传输的装置。
【专利说明】基于虚拟局域网的虚拟接口进行链路聚合方法和装置

【技术领域】
[0001]本发明的各实施方式涉及链路聚合,更具体地,涉及基于虚拟局域网的虚拟接口 进行链路聚合的方法和装置。

【背景技术】
[0002] 虚拟局域网(Virtual Local Area Network,VLAN)是一种将物理局域网的不同用 户从逻辑上划分为不同广播域,从而实现根据虚拟工作组来进行数据传输的技术。
[0003] 为了提尚数据传输效率,目前已经开发出了链路聚合分组(Link Aggregation Group,LAG)技术,该技术可以将多个物理接口捆绑在一起,成为一个逻辑上的接口,以实现 在各物理接口中的合理地调度发送/接收流量。在此技术方案中,尽管LAG技术可以支持 在多个物理接口之间平衡网络传输流量,然而只有当该多个物理接口的虚拟局域网属性完 全相同(即,多个物理接口支持完全相同的一个或者多个VLAN)时,才可以将该多个物理接 口绑定至LAG。
[0004] 随着计算机硬件和软件技术的发展,虚拟机(Virtual Machine)的应用范围越来 越广泛。虚拟机指通过软件模拟而实现的具有完整硬件系统功能的、运行在一个完全隔离 环境中的完整计算机系统。通常,一个或者多个虚拟机可以运行在一个物理服务器上,并且 每个虚拟机在逻辑上可以对外展现出与常规计算机系统相同的处理能力、存储能力以及数 据通信能力等。
[0005] 在数据通信方面,物理机通常经由如网络接口卡(Network Interface Card,NIC) 的硬件装置来与外界进行通信。由于虚拟机是逻辑上的计算机系统,其所拥有的各种资源 都是被映射至真实物理资源的虚拟资源(例如,处理器、存储器等)。在数据通信资源方面 也是如此,虚拟机可以具有虚拟网络接口卡(Virtual Network Interface Card, vNIC),该 vNIC被映射至服务器中的物理NIC,从而虚拟机可以经由服务器中的、与自身的vNIC相关 联的物理NIC来传输数据。
[0006] 其上运行多个虚拟机的服务器的物理NIC可以被映射至多个vNIC,并且这些物理 NIC可能会具有不同的VLAN属性(例如,物理NIC1支持VLAN10和20,而物理NIC2支持 VLAN10和30),则不能将物理NIC1和2绑定至相同的链路聚合分组。
[0007] 在运行于服务器上的多个虚拟机中,可以分别运行各种应用程序,这些应用程序 可能要求不同的网络带宽或者根本不需要网络传输能力,这种情况可能会导致在服务器的 物理NIC上的传输负载的不平衡,进而可能会导致在某些NIC出现拥堵的同时,另一些NIC 处于空闲状态。面临这些问题,如何提高处理设备(例如,其上运行多个虚拟机的服务器、 以及交换机)之间的数据传输,成为一项研究重点。


【发明内容】

[0008] 因而,在支持虚拟局域网的处理设备中,期望开发出一种能够更为有效地利用通 信接口的技术方案,并且期望能够在这些通信接口之间实现负载均衡,进而实现更为高效 的数据传输。
[0009]根据本发明的一个方面,提供了一种基于虚拟局域网来管理数据传输的方法。该 方法包括:分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域 网属性;响应于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同, 分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以 及经由第一虚拟接口和第二虚拟接口,分别将第一物理接口和第二物理接口映射至相同的 数据通道,其中第一物理接口和第二物理接口位于相同处理设备中。
[0010] 根据本发明的一个方面,第一虚拟局域网属性和第二虚拟局域网属性至少分别描 述第一物理接口和第二物理接口所支持的至少一个虚拟局域网。
[0011]根据本发明的一个方面,第一物理接口可被映射至多个数据通道。
[0012] 根据本发明的一个方面,处理设备是至少一个服务器;或者处理设备是至少一个 交换机。
[0013] 根据本发明的一个方面,提供了一种基于虚拟局域网来管理数据传输的装置。该 装置包括:第一获取模块,配置用于分别获取第一物理接口的第一虚拟局域网属性和第二 物理接口的第二虚拟局域网属性;第二获取模块,配置用于确定第一虚拟局域网属性和第 二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口 和对应于第二物理接口的第二虚拟接口;以及映射模块,配置用于经由第一虚拟接口和第 二虚拟接口,分别将第一物理接口和第二物理接口映射至相同的数据通道,其中第一物理 接口和第二物理接口位于相同处理设备中。
[0014] 根据本发明的一个方面,第一虚拟局域网属性和第二虚拟局域网属性至少分别描 述第一物理接口和第二物理接口所支持的至少一个虚拟局域网。
[0015]根据本发明的一个方面,第一物理接口可被映射至多个数据通道。
[0016]根据本发明的一个方面,处理设备是至少一个服务器;或者处理设备是至少一个 交换机。
[0017] 采用根据本发明的各个实施方式所述的技术方案,可以将支持不同虚拟局域网的 接口聚合至相同的数据通道,继而经由该数据通道来传输数据。以此方式,一方面可以降低 现有lag技术中对于通信接口属性的苛刻要求,另一方面还可以更加有效地利用各个通信 接口的数据传输能力,例如实现在各个通信接口之间的负载均衡,进而实现更为高效的数 据传输。

【专利附图】

【附图说明】
[0018] 结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变 得更加明显。本发明附图中,相同的标号表示相同或相似的元素。在附图中:
[0019]图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
[0020]图2示意性示出了根据一个实施方式的处理设备中的接口的框图;
[0021]图3不意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输 的架构图;
[0022]图4示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输 的方法的流程图;
[0023]图5示意性示出了根据本发明一个实施方式的基于虚拟局域网链路聚合分组 (VLAN-LAG)来进行数据传输的架构图;
[0024]图6A和图6B分别示意性示出了根据本发明一个实施方式的协商报文的格式的示 意图;
[0025]图7不意性示出了根据本发明一个实施方式用于协商虚拟局域网链路聚合分组 标识符的方法的流程图;以及
[0026]图8示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输 的装置的框图。

【具体实施方式】
[0027]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。
[0028]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,g卩:可以是完全的硬件、也可以是完全的软件(包 括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0029]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限 于-电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器 (R〇M)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD- R0M)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0030]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括--但 不限于--电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0031] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限 于 无线、电线、光缆、RF等,或者上述的任意合适的组合。
[0032]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。
[0033]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各 方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、 专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序 指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框 中规定的功能/操作的装置。
[0034]也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture) 〇
[0035] 也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备 上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0036]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器I2仅仅是一个示例,不应对本发明实施例的功能和使 用范围带来任何限制。
[0037] 如图1所示,计算机系统/服务器I2以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0038] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(pci)总线。 [0039] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0040] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器I2可以进一步包括其 他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, 以及对可移动非易失性光盘(例如CD-R0M,DVD_R0M或者其他光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模 块被配置以执行本发明各实施例的功能。
[0041]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包if一但不限于--操作系统、一个或者多个应用程序、其他 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块4 2通常执行本发明所描述的实施例中的功能和/或方法。
[0042]计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设 备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信的 任何设备(例如网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口 22 进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例 如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器 20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,可 以结合计算机系统/服务器12使用其他硬件和/或软件模块,包括但不限于:微代码、设备 驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统 等。
[0043] 图2不意性不出了根据一个实施方式的处理设备中的接口的框图2〇〇。在本发明 的上下文中,处理设备例如可以是服务器210或者交换机250。服务器210上可以运行多个 虚拟机,如虚拟机1220、虚拟机 2230和虚拟机3240,等。服务器210可以具有多个物理接 口,如NIC1212、NIC 2214和NIC3216,等。同时,每个虚拟机可以具有一个或者多个vNIC,例 如,虚拟机1220可以具有vNICl· 1222、vNICl· 2224,等。服务器的物理NIC可以被映射至 一个或者多个虚拟机的一个或者多个vNIC。
[0044] 交换机250可以具有多个物理端口(port),例如,端口 1260、端口 2270和端口 3280,等。类似地,交换机还可以包括多个虚拟端口,例如,虚拟端口 262、264.....284,等。 类似于服务器中的NIC的映射关系,在交换机中,一个物理端口可以被映射至一个或者多 个虚拟端口。在本发明的上下文中,可以将服务器中的NIC和交换机中的端口统称为接口。 在数据传输中,NIC和端口的地位是相互对应的。
[0045] 物理接口和虚拟接口之间可能会存在复杂的映射关系,并且现有的LAG技术并不 能支持将VLAN属性不同的物理接口聚合至相同的分组。基于这一不足,目前已经提出了一 种称为"Teaming"的技术方案,Teaming仅限于在服务器侧使用,并且可以将多个vNIC绑 定至一个逻辑通道,在该逻辑通道中可以在该多个vNIC所对应的物理接口之间平衡传输 负载。
[0046] 尽管Teaming可以在一定程度上实现负载均衡、并且提高数据传输效率,然而该 技术的各种传输模式还存在诸多缺陷。例如,在主动备份(active-backup)模式中,备选 的NIC处于备用状态(standby)因而相当于只使用了一半的网络带宽;在发送负载均衡 (Transmit Load Balance)模式中,在接收方向不能实现有效的负载均衡;另外,在自适应 负载均衡(Adaptive Load Balance)模式中,从网关接收的数据流量也不能实现负载均衡。
[0047] 为此,本发明的各个实施方式提供了一种基于虚拟局域网来管理数据传输的方 法,包括:分别获取第一物理接口的第-虚拟局域网属性和第二物理接口的第二虚拟局域 网属性;响应于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同, 分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以 及经由第一虚拟接口和第二虚拟接口,将第一物理接口和第二物理接口映射至相同的数据 通道,其中第一物理接口和第二物理接口位于相同处理设备中。物理接口的虚拟局域网属 性至少指示该物理接口所支持的虚拟局域网。本领域技术人员还可以设计出虚拟局域网属 性的其他内容。
[0048] 现在将参见图3具体描述本发明的原理。图3示意性示出了根据本发明一个实施 方式的基于虚拟局域网来管理数据传输的架构图300。处理设备370可以包括多个物理接 口,例如,接口 1310、接口 2320、接口 3330等。每个物理接口可以被映射至多个虚拟接口, 例如,接口 1310可以被映射至虚拟接口 312、314,等。并且,每个物理接口可以支持不同的 VLAN,例如,接口 1310可以支持VLAN10和20,接口 2320可以支持VLAN10和30。具体地, 可以采用下文表1所示来描述各个接口的VLAN属性。
[0049] 表1接口的VLAN属性
[0050]

【权利要求】
1. -种基于虚拟局域网来管理数据传输的方法,包括: 分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属 性; 响应于确定所述第一虚拟局域网属性和所述第二虚拟局域网属性中的至少一部分为 相同,分别获取对应于所述第一物理接口的第一虚拟接口和对应于所述第二物理接口的第 二虚拟接口;以及 分别经由所述第一虚拟接口和所述第二虚拟接口,将所述第一物理接口和所述第二物 理接口映射至相同的数据通道, 其中所述第一物理接口和所述第二物理接口位于相同处理设备中。
2. 根据权利要求1所述的方法,其中所述第一虚拟局域网属性和所述第二虚拟局域网 属性至少分别指示所述第一物理接口和所述第二物理接口所支持的至少一个虚拟局域网。
3. 根据权利要求1或2所述的方法,其中分别获取对应于第一物理接口的第一虚拟局 域网属性和对应于第二物理接口的第二虚拟局域网属性包括: 从所述处理设备处的配置文件中,读取所述第一虚拟局域网属性和所述第二虚拟局域 网属性。
4. 根据权利要求1或2所述的方法,其中分别获取对应于第一物理接口的第一虚拟局 域网属性和对应于第二物理接口的第二虚拟局域网属性包括: 分别解析经过所述第一物理接口和所述第二物理接口的协商报文,以分别获取第一虚 拟局域网属性和第二虚拟局域网属性。
5. 根据权利要求1或2所述的方法,其中经由所述第一虚拟接口和所述第二虚拟接口, 将所述第一物理接口和所述第二物理接口映射至相同的数据通道包括: 根据映射表,经由所述数据通道在所述处理设备和另一处理设备之间传输数据,其中 所述映射表保存物理接口、物理接口的虚拟局域网属性以及数据通道之间的映射关系。
6. 根据权利要求5所述的方法,其中根据映射表,经由所述数据通道在所述处理设备 和另一处理设备之间传输数据包括: 响应于在所述第一物理接口和所述第二物理接口处的任一项处接收到来自所述另一 处理设备的数据分组,基于所述映射表查找与所述数据分组相对应的数据通道;以及 将所述数据分组引导至与所查找的数据通道相关联的虚拟接口。
7. 根据权利要求5所述的方法,其中根据映射表,经由所述数据通道在所述处理设备 和另一处理设备之间传输数据包括: 当经由所述数据通道发送数据时,基于所述映射表选择与所述数据通道相关联的至少 任一物理接口;以及 经由所述至少任一物理接口,从所述处理设备向所述另-处理设备发送数据。
8. 根据权利要求7所述的方法,进一步包括: 根据往来于所述处理设备的协商数据包,动态地更新所述映射表。
9. 根据权利要求1或2所述的方法,其中: 所述处理设备是至少一个服务器;或者 所述处理设备是至少一个交换机。
10. -种基于虚拟局域网来管理数据传输的装置,包括: 第一获取模块,配置用于分别获取第一物理接口的第一虚拟局域网属性和第二物理接 口的第二虚拟局域网属性; 第二获取模块,配置用于响应于判断所述第一虚拟局域网属性和所述第二虚拟局域网 属性中的至少一部分为相同,分别获取对应于所述第一物理接口的第一虚拟接口和对应于 所述第二物理接口的第二虚拟接口;以及 映射模块,配置用于分别经由所述第一虚拟接口和所述第二虚拟接口,将所述第一物 理接口和所述第二物理接口映射至相同的数据通道, 其中所述第一物理接口和所述第二物理接口位于相同处理设备中。
11. 根据权利要求10所述的装置,其中所述第一虚拟局域网属性和所述第二虚拟局域 网属性至少分别指示所述第一物理接口和所述第二物理接口所支持的至少一个虚拟局域 网。
12. 根据权利要求10或11所述的装置,其中所述第一获取模块包括: 读取模块,配置用于从所述处理设备处的配置文件中,读取所述第一虚拟局域网属性 和所述第二虚拟局域网属性。
13. 根据权利要求10或11所述的装置,其中所述第一获取模块包括: 解析模块,配置用于分别解析经过所述第一物理接口和所述第二物理接口的协商报 文,以分别获取第一虚拟局域网属性和第二虚拟局域网属性。
14. 根据权利要求10或11所述的装置,其中所述映射模块包括: 传输模块,配置用于根据映射表,经由所述数据通道在所述处理设备和另一处理设备 之间传输数据,其中所述映射表保存物理接口、物理接口的虚拟局域网属性以及数据通道 之间的映射关系。
15·根据权利要求14所述的装置,其中所述传输模块包括: 查找模块,配置用于响应于在所述第一物理接口和所述第二物理接口处的任一项处接 收到来自所述另一处理设备的数据分组,基于所述映射表查找与所述数据分组相对应的数 据通道;以及 引导模块,配置用于将所述数据分组引导至与所查找的数据通道相关联的虚拟接口。
16. 根据权利要求14所述的装置,其中所述传输模块进一步包括: 选择模块,配置用于当经由所述数据通道发送数据时,基于所述映射表选择与所述数 据通道相关联的至少任一物理接口;以及 发送模块,配置用于经由所述至少任一物理接口,从所述处理设备向所述另一处理设 备发送数据。
17. 根据权利要求η所述的装置,进一步包括: 更新模块,配置用于根据往来于所述处理设备的协商数据包,动态地更新所述映射表。
15. 根据权利要求10或11所述的装置,其中: 所述处理设备是至少一个服务器;或者 所述处理设备是至少一个交换机。
【文档编号】H04L12/46GK104219159SQ201310211201
【公开日】2014年12月17日 申请日期:2013年5月31日 优先权日:2013年5月31日
【发明者】孙赞, 朱正东, 董向辉, 过育红 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1