首页> 中国专利> 基于虚拟局域网的虚拟接口进行链路聚合方法和装置

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

摘要

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

著录项

  • 公开/公告号CN104219159A

    专利类型发明专利

  • 公开/公告日2014-12-17

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201310211201.1

  • 发明设计人 孙赟;朱正东;董向辉;过育红;

    申请日2013-05-31

  • 分类号H04L12/803(20130101);H04L12/891(20130101);H04L12/46(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人酆迅;李峥宇

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 03:22:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-05

    授权

    授权

  • 2015-01-07

    实质审查的生效 IPC(主分类):H04L12/803 申请日:20130531

    实质审查的生效

  • 2014-12-17

    公开

    公开

说明书

技术领域

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

背景技术

虚拟局域网(Virtual Local Area Network,VLAN)是一种将物理局域网的不同用户从逻辑上划分为不同广播域,从而实现根据虚拟工作组来进行数据传输的技术。

为了提高数据传输效率,目前已经开发出了链路聚合分组(LinkAggregation Group,LAG)技术,该技术可以将多个物理接口捆绑在一起,成为一个逻辑上的接口,以实现在各物理接口中的合理地调度发送/接收流量。在此技术方案中,尽管LAG技术可以支持在多个物理接口之间平衡网络传输流量,然而只有当该多个物理接口的虚拟局域网属性完全相同(即,多个物理接口支持完全相同的一个或者多个VLAN)时,才可以将该多个物理接口绑定至LAG。

随着计算机硬件和软件技术的发展,虚拟机(Virtual Machine)的应用范围越来越广泛。虚拟机指通过软件模拟而实现的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通常,一个或者多个虚拟机可以运行在一个物理服务器上,并且每个虚拟机在逻辑上可以对外展现出与常规计算机系统相同的处理能力、存储能力以及数据通信能力等。

在数据通信方面,物理机通常经由如网络接口卡(NetworkInterface Card,NIC)的硬件装置来与外界进行通信。由于虚拟机是逻辑上的计算机系统,其所拥有的各种资源都是被映射至真实物理资源的虚拟资源(例如,处理器、存储器等)。在数据通信资源方面也是如此,虚拟机可以具有虚拟网络接口卡(Virtual NetworkInterface Card,vNIC),该vNIC被映射至服务器中的物理NIC,从而虚拟机可以经由服务器中的、与自身的vNIC相关联的物理NIC来传输数据。

其上运行多个虚拟机的服务器的物理NIC可以被映射至多个vNIC,并且这些物理NIC可能会具有不同的VLAN属性(例如,物理NIC1支持VLAN10和20,而物理NIC2支持VLAN10和30),则不能将物理NIC1和2绑定至相同的链路聚合分组。

在运行于服务器上的多个虚拟机中,可以分别运行各种应用程序,这些应用程序可能要求不同的网络带宽或者根本不需要网络传输能力,这种情况可能会导致在服务器的物理NIC上的传输负载的不平衡,进而可能会导致在某些NIC出现拥堵的同时,另一些NIC处于空闲状态。面临这些问题,如何提高处理设备(例如,其上运行多个虚拟机的服务器、以及交换机)之间的数据传输,成为一项研究重点。

发明内容

因而,在支持虚拟局域网的处理设备中,期望开发出一种能够更为有效地利用通信接口的技术方案,并且期望能够在这些通信接口之间实现负载均衡,进而实现更为高效的数据传输。

根据本发明的一个方面,提供了一种基于虚拟局域网来管理数据传输的方法。该方法包括:分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属性;响应于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以及经由第一虚拟接口和第二虚拟接口,分别将第一物理接口和第二物理接口映射至相同的数据通道,其中第一物理接口和第二物理接口位于相同处理设备中。

根据本发明的一个方面,第一虚拟局域网属性和第二虚拟局域网属性至少分别描述第一物理接口和第二物理接口所支持的至少一个虚拟局域网。

根据本发明的一个方面,第一物理接口可被映射至多个数据通道。

根据本发明的一个方面,处理设备是至少一个服务器;或者处理设备是至少一个交换机。

根据本发明的一个方面,提供了一种基于虚拟局域网来管理数据传输的装置。该装置包括:第一获取模块,配置用于分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属性;第二获取模块,配置用于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以及映射模块,配置用于经由第一虚拟接口和第二虚拟接口,分别将第一物理接口和第二物理接口映射至相同的数据通道,其中第一物理接口和第二物理接口位于相同处理设备中。

根据本发明的一个方面,第一虚拟局域网属性和第二虚拟局域网属性至少分别描述第一物理接口和第二物理接口所支持的至少一个虚拟局域网。

根据本发明的一个方面,第一物理接口可被映射至多个数据通道。

根据本发明的一个方面,处理设备是至少一个服务器;或者处理设备是至少一个交换机。

采用根据本发明的各个实施方式所述的技术方案,可以将支持不同虚拟局域网的接口聚合至相同的数据通道,继而经由该数据通道来传输数据。以此方式,一方面可以降低现有LAG技术中对于通信接口属性的苛刻要求,另一方面还可以更加有效地利用各个通信接口的数据传输能力,例如实现在各个通信接口之间的负载均衡,进而实现更为高效的数据传输。

附图说明

结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显。本发明附图中,相同的标号表示相同或相似的元素。在附图中:

图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;

图2示意性示出了根据一个实施方式的处理设备中的接口的框图;

图3示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输的架构图;

图4示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输的方法的流程图;

图5示意性示出了根据本发明一个实施方式的基于虚拟局域网链路聚合分组(VLAN-LAG)来进行数据传输的架构图;

图6A和图6B分别示意性示出了根据本发明一个实施方式的协商报文的格式的示意图;

图7示意性示出了根据本发明一个实施方式用于协商虚拟局域网链路聚合分组标识符的方法的流程图;以及

图8示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输的装置的框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。

也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

图2示意性示出了根据一个实施方式的处理设备中的接口的框图200。在本发明的上下文中,处理设备例如可以是服务器210或者交换机250。服务器210上可以运行多个虚拟机,如虚拟机1220、虚拟机2230和虚拟机3240,等。服务器210可以具有多个物理接口,如NIC1212、NIC2214和NIC3216,等。同时,每个虚拟机可以具有一个或者多个vNIC,例如,虚拟机1220可以具有vNIC1.1222、vNIC1.2224,等。服务器的物理NIC可以被映射至一个或者多个虚拟机的一个或者多个vNIC。

交换机250可以具有多个物理端口(port),例如,端口1260、端口2270和端口3280,等。类似地,交换机还可以包括多个虚拟端口,例如,虚拟端口262、264、...、284,等。类似于服务器中的NIC的映射关系,在交换机中,一个物理端口可以被映射至一个或者多个虚拟端口。在本发明的上下文中,可以将服务器中的NIC和交换机中的端口统称为接口。在数据传输中,NIC和端口的地位是相互对应的。

物理接口和虚拟接口之间可能会存在复杂的映射关系,并且现有的LAG技术并不能支持将VLAN属性不同的物理接口聚合至相同的分组。基于这一不足,目前已经提出了一种称为“Teaming”的技术方案,Teaming仅限于在服务器侧使用,并且可以将多个vNIC绑定至一个逻辑通道,在该逻辑通道中可以在该多个vNIC所对应的物理接口之间平衡传输负载。

尽管Teaming可以在一定程度上实现负载均衡、并且提高数据传输效率,然而该技术的各种传输模式还存在诸多缺陷。例如,在主动备份(active-backup)模式中,备选的NIC处于备用状态(standby)因而相当于只使用了一半的网络带宽;在发送负载均衡(TransmitLoad Balance)模式中,在接收方向不能实现有效的负载均衡;另外,在自适应负载均衡(Adaptive Load Balance)模式中,从网关接收的数据流量也不能实现负载均衡。

为此,本发明的各个实施方式提供了一种基于虚拟局域网来管理数据传输的方法,包括:分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属性;响应于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以及经由第一虚拟接口和第二虚拟接口,将第一物理接口和第二物理接口映射至相同的数据通道,其中第一物理接口和第二物理接口位于相同处理设备中。物理接口的虚拟局域网属性至少指示该物理接口所支持的虚拟局域网。本领域技术人员还可以设计出虚拟局域网属性的其他内容。

现在将参见图3具体描述本发明的原理。图3示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输的架构图300。处理设备370可以包括多个物理接口,例如,接口1310、接口2320、接口3330等。每个物理接口可以被映射至多个虚拟接口,例如,接口1310可以被映射至虚拟接口312、314,等。并且,每个物理接口可以支持不同的VLAN,例如,接口1310可以支持VLAN10和20,接口2320可以支持VLAN10和30。具体地,可以采用下文表1所示来描述各个接口的VLAN属性。

表1接口的VLAN属性

序号接口IDVLAN属性1接口1VLAN10,VLAN202接口2VLAN10,VLAN303接口3VLAN20,VLAN30

按照现有的链路聚合分组,由于接口1310和接口2320的VLAN属性并不完全相同,因而不能将这两个接口和聚合至相同的分组。根据本发明的原理,只要两个接口的VLAN属性中的一部分是相同的,就可以将这两个接口映射至相同的数据通道。在本发明的上下文中,可以将该数据通道称为虚拟局域网链路聚合分组(VLAN-LAG)。在本发明的一个实施方式中,可以采用唯一标识符来指示一个VLAN-LAG,并且针对特定VLAN-LAG,可以从整体上调度其中各个接口的带宽资源,进而达到负载均衡以及提高数据传输能力的目的。

具体而言,在图3中,尽管接口1310和接口2320的VLAN属性并不完全相同,然而两者都支持VLAN10。基于本发明的技术方案,可以将这两个接口映射至VLAN-LAG1340(如附图标记310-312-340,320-324-340之间的实线所示)。又例如,基于上文表1的内容,则由于接口2320和接口3330均支持VLAN30,因而可以将这两个接口映射至VLAN-LAG3360(如附图标记320-322-360,330-334-360之间的点划线所示)。进一步,由于接口1310和接口3330都支持VLAN20,因而可以将这两个接口映射至VLAN-LAG2350(如附图标记310-314-350,330-332-350之间的虚线所示)。

应当注意,在图3中并未特别指出处理设备370的类型。本领域技术人员可以理解,基于不同的实施方式,该处理设备370可以是服务器或者交换机。

在下文中,将参见图4详细描述根据本发明的方法的步骤。图4示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输的方法的流程图400。首先,在步骤S402中,分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属性,其中第一物理接口和第二物理接口位于相同处理设备中。在此实施方式中,当处理设备是服务器的情况下,第一物理接口和第二物理接口可以是NIC;当处理设备是交换机的情况下,第一物理接口和第二物理接口可以是端口。

应当注意,各个物理接口的虚拟局域网属性可以保持在处理设备处(例如,以上文表1所示格式保存),因而,通过读取表1则可以确定各个物理接口的虚拟局域网属性。具体地,从表1中可以确定第一物理接口(接口1)和第二物理接口(接口2)的VLAN属性分别为(VLAN10,VLAN20)和(VLAN10,VLAN30)。

在步骤S404中,响应于确定第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口和第二物理接口的第二虚拟接口。继续上文示例,在判断步骤中,当第一虚拟局域网属性和第二虚拟局域网属性分别为(VLAN10,VLAN20)和(VLAN10,VLAN30)时,易于判断两个虚拟局域网属性都包括VLAN10,因而两者的至少一部分是相同的,操作流程前进至步骤S406。

继而,响应于判断结果为“是”,可以分别获取对应于第一物理接口的第一虚拟接口和第二物理接口的第二虚拟接口。由于物理接口和虚拟接口之间的对应关系是已知的,因而可以获取与各个物理接口相对应的虚拟接口。继续上文示例并参见图3,可以获取第一物理接口的第一虚拟接口(虚拟接口312)和第二物理接口的第二虚拟接口(虚拟接口324)。

在步骤S406中,经由第一虚拟接口和第二虚拟接口,将第一物理接口和第二物理接口映射至相同的数据通道。对应于现有技术中的LAG技术,在此的“映射”步骤可以指将第一物理接口和第二物理接口绑定至一个数据通道(VLAN-LAG)。并且在此数据通道中,可以统一调度各个物理接口的网络带宽以提高数据传输效率。继续上文示例并参见图3,第一接口1310和第二接口2320可以经由虚拟接口312和324来被映射至VLAN-LAG1340(如附图标记310-312-340,320-324-340之间的实线所示)。

在本发明的一个实施方式中,第一虚拟局域网属性和第二虚拟局域网属性至少分别描述第一物理接口和第二物理接口所支持的至少一个虚拟局域网。本发明的各个实施方式并不具体限定第一虚拟局域网属性和第二虚拟局域网属性是否完全相同。例如,两者可以完全相同,两者之一可以是另一个的子集,等,只要两者具有交集即可。

应当注意,当第一虚拟局域网属性和第二虚拟局域网属性完全相同时,尽管可以基于现有的LAG技术来将第一物理接口和第二物理接口映射至相同的LAG分组,然而,现有的LAG技术只能将第一物理接口以及与其具有完全相同的虚拟局域网属性的其他物理接口映射至一个LAG分组,而不能将一个物理接口映射至多个不同的LAG分组。

在本发明的一个实施方式中,第一物理接口可被映射至多个数据通道。在本发明的上下文中,由于在形成数据通道时考虑了物理接口以及该物理接口所支持的VLAN两方面的因素,因而,可以将一个物理接口(例如,第一物理接口)映射至多个数据通道。如图3所示,在处理设备处,接口1310分别被映射至VLAN-LAG1340和VLAN-LAG2350两个数据通道。通过将一个物理接口映射至不同的数据通道,更加有助于在多个物理接口之间实现负载均衡,并且为数据传输提供更多的灵活性以及可靠性。

上文已经参见图3和图4示出了如何在一个处理设备处实现本发明的技术方案,现在将参见图5示出如何在服务器和交换机之间通过数据通道传输数据。具体而言,图5示意性示出了根据本发明一个实施方式的基于虚拟局域网链路聚合分组来进行数据传输的架构图500。

如图5所示,可以通过数据通道(VLAN-LAG1)来在服务器570A和交换机570B之间传输数据。如图5中实线所示,VLAN-LAG1中可以包括两条传输路径:514A-510A-510B-512B以及524A-520A-520B-524B。利用VLAN-LAG1,可以在服务器570A和交换机570B的各个物理接口之间进行负载均衡。类似地,图5中还示出了VLAN-LAG2(如虚线所示)以及VLAN-LAG3(如点划线所示)。

在本发明的一个实施方式中,分别获取对应于第一物理接口的第一虚拟局域网属性和对应于第二物理接口的第二虚拟局域网属性包括:从处理设备处的配置文件中,读取第一虚拟局域网属性和第二虚拟局域网属性。可以在处理设备中保持如上文表1所示的配置文件,从该配置文件中可以获取建立数据通道的信息。备选地,在配置文件中还可以包括其他信息,例如,可以包括预先为数据通道分配的唯一标识符,等等。

在本发明的上下文中,还可以在数据传输期间利用扩展的LACP协议报文动态地建立数据通道。例如,在本发明的一个实施方式中,分别获取对应于第一物理接口的第一虚拟局域网属性和对应于第二物理接口的第二虚拟局域网属性包括:解析经过第一物理接口和第二物理接口的协商报文,以分别获取第一虚拟局域网属性和第二虚拟局域网属性。

具体地,图6A和图6B分别示意性示出了根据本发明一个实施方式协商报文的示意图600A和600B。可以在报文中的不同位置处插入物理接口的虚拟局域网属性(即,该物理接口所支持的VLAN的标识符)。如图6A所示,可以在报文中如附图标记610A处所示的“VLAN ID”字段中插入所支持VLAN的标识符,或者还可以在报文中如标记610B处所示的“VLAN ID”字段中插入所支持VLAN的标识符。备选地,本领域技术人员还可以在报文中的其他位置处插入所支持VLAN的标识符,只要处理设备能够知晓插入标识符的具体位置,并且能够从中解析得出标识符即可。

在本发明的一个实施方式中,经由第一虚拟接口和第二虚拟接口,将第一物理接口和第二物理接口映射至相同的数据通道包括:根据映射表,经由数据通道在处理设备和另一处理设备之间传输数据,其中映射表保存物理接口、物理接口的虚拟局域网属性以及数据通道之间的映射关系。映射表可以采取多种形式,例如,可以采用如下文表2所示的形式。

表2映射表

接口IDVLAN IDVLAN-LAG ID1100010000110011000121000100003100110001.........

应当注意,在本发明的实施方式中,由于当所述第一虚拟局域网属性和所述第二虚拟局域网属性中的至少一部分为相同时,才能执行将所述第一物理接口和所述第二物理接口映射至相同的数据通道,因而在上文表2所示的具有相同VLAN-LAG ID的接口均支持相同的VLAN ID。

在表2所示的映射表中,接口ID一栏中记载硬件接口的标识符,VLAN ID一栏中记载某接口ID所支持的VLAN的标识符,以及在VLAN-LAG ID一栏中记载了与硬件接口ID、所支持VLAN ID相对应的VLAN-LAG的标识符。

图7示意性示出了根据本发明一个实施方式用于协商虚拟局域网链路聚合分组标识符的方法的流程图700。在本发明的上下文中,可以根据具体需求来将协商模式设置为主动模式或者被动模式。主动模式是指处理设备可以主动发出协商报文,而被动模式是指处理设备需要等待接收其他处理设备发出的协商报文,而自己不能主动发出协商报文。

如图7所示,在步骤S702中,如果处理设备处于主动模式,则操作流程前进至步骤S706,否则,操作流程前进至步骤S704。继而,在步骤S708中,交换机与服务器协商创建数据通道。在步骤S710处,当协商成功时,可以在步骤S712中按照协商内容配置数据通道,否则操作流程前进至步骤S714,并且在等待预定时间后返回步骤S702重新协商。

在本发明的一个实施方式中,进一步包括:根据往来于处理设备的协商数据包,动态地更新映射表。在处理设备中,例如可以存储有如表3所示的VLAN-LAG ID管理表,在该表中,在“使用状态”一栏中的“0”表示相应的VLAN-LAG ID尚未被使用,而“1”表示相应的VLAN-LAG ID已经被使用。表3示出了初始阶段的VLAN-LAG ID管理表,此时各个VLAN-LAG ID均未被使用。

表3VLAN-LAG ID管理表

使用状态VLAN-LAG ID0100000100010100020100030...

在下文中,将详细描述协商过程。假设处理设备配置为主动协商模式,接口1支持VLAN ID1000,则该处理设备可以首先发起协商。当另一处理设备接收到协商报文时,可以检查自己的配置并且发出一个带有VLAN ID1000的协商报文。双方确认后则协商成功,此时可以从VLAN-LAG ID管理表中查找是否存在适合的VLAN-LAG ID。例如,此时通过查找表3得知VLAN-LAG ID“10000”尚未被使用,则可以在接口1、VLAN1000和VLAN-LAG ID10000之间建立映射关系。

建立映射关系之后,VLAN-LAG ID10000已经被用于支持VLAN ID的接口1,则此时VLAN-LAG ID管理表和映射表被动态更新,并且更新后的内容分别如表4和表5所示。

表4VLAN-LAG ID管理表

使用状态VLAN-LAG ID1100000100010100020100030...

表5映射表

接口IDVLAN IDVLAN-LAG ID1100010000110010210000310010.........

假设接口1还支持VLAN1001,则基于上文所述的方法,在协商结束后,针对接口1、VLAN1001则可以被映射至VLAN-LAG ID10001。此时VLAN-LAG ID管理表和映射表被动态更新,并且更新后的内容分别如表6和表7所示。

表6VLAN-LAG ID管理表

使用状态VLAN-LAG ID1100001100010100020100030...

表7映射表

接口IDVLAN IDVLAN-LAG ID11000100001100110001210000310010.........

本领域技术人员还可以按照类似的方法操作,直到获得如表2所述的映射表。

在本发明的一个实施方式中,根据映射表,经由数据通道在处理设备和另一处理设备之间传输数据包括:响应于在第一物理接口和第二物理接口处的任一项处接收到来自另一处理设备的数据分组,基于映射表查找与数据分组相对应的数据通道;以及将所述数据分组引导至与所查找的数据通道相关联的虚拟接口。

可以基于物理接口的标识符与所支持VLAN的标识符,来在映射表中查找相对应的VLAN-LAG ID。例如,当采用上文表2所示的映射表时,当接口ID为“接口1”,所支持VLAN ID为1000时,可以确定VLAN-LAG10000。基于建立VLAN-LAG10000时的物理接口与虚拟接口的对应关系,可以将所述数据分组引导至与所查找的数据通道相关联的虚拟接口。

在本发明的一个实施方式中,当经由所述数据通道发送数据时,根据映射表经由数据通道在处理设备和另一处理设备之间传输数据包括:基于映射表,选择与数据通道相关联的至少任一物理接口;以及经由至少任一物理接口,从处理设备向另一处理设备发送数据。

当经由数据通道发送数据时,可以首先基于映射表获取该数据通道所对应的全部接口,继而例如通过哈希(hash)算法来从中选择适合的接口,并通过该接口发送数据。例如,继续与表2所示的映射表为示例,当经由VLAN-LAG ID10000发送数据时,可以采用特定算法从与VLAN-LAG ID10000相关联的接口1和接口2中选择一个接口(例如,接口1),继而经由该接口发送数据。此时,VLAN-LAGID是查找的关键字。

在本发明的一个实施方式中,处理设备是至少一个服务器;或者处理设备是至少一个交换机。应当注意,在本发明的上下文中并不具体限定第一物理接口和第二接口可以处于相同或者不同的服务器上,或者还可以处于相同或者不同的交换机上,只要该物理接口处于相同类型的处理设备上即可。

在本发明的上下文中,处理设备可以是服务器和交换机中的任一项。相应地,当处理设备是服务器时,上文的第一物理接口和第二物理接口可以是服务器中的NIC;而当处理设备是交换机时,第一物理接口和第二物理接口可以是交换机中的端口。尽管在上文中仅以处理设备和接口为示例描述了本发明的技术方案,本领域技术人员可以理解,在不同的应用环境下本发明的技术方案可以体现为具体的示例。

图8示意性示出了根据本发明一个实施方式的基于虚拟局域网来管理数据传输的装置的框图800。具体地,提供了一种基于虚拟局域网来管理数据传输的装置,包括:第一获取模块810,配置用于分别获取第一物理接口的第一虚拟局域网属性和第二物理接口的第二虚拟局域网属性;第二获取模块820,配置用于响应于判断第一虚拟局域网属性和第二虚拟局域网属性中的至少一部分为相同,分别获取对应于第一物理接口的第一虚拟接口和对应于第二物理接口的第二虚拟接口;以及映射模块830,配置用于经由第一虚拟接口和第二虚拟接口,将第一物理接口和第二物理接口映射至相同的数据通道,其中第一物理接口和第二物理接口位于相同处理设备中。

在本发明的一个实施方式中,第一虚拟局域网属性和第二虚拟局域网属性至少分别描述第一物理接口和第二物理接口所支持的至少一个虚拟局域网。

在本发明的一个实施方式中,第一物理接口可被映射至多个数据通道。

在本发明的一个实施方式中,第一获取模块810包括:读取模块,配置用于从处理设备处的配置文件中,读取第一虚拟局域网属性和第二虚拟局域网属性。

在本发明的一个实施方式中,第一获取模块810包括:解析模块,配置用于解析经过第一物理接口和第二物理接口的协商报文,以分别获取第一虚拟局域网属性和第二虚拟局域网属性。

在本发明的一个实施方式中,映射模块830包括:传输模块,配置用于根据映射表,经由数据通道在处理设备和另一处理设备之间传输数据,其中映射表保存物理接口、物理接口的虚拟局域网属性以及数据通道之间的映射关系。

在本发明的一个实施方式中,传输模块包括:查找模块,配置用于响应于在第一物理接口和第二物理接口处的任一项处接收到来自另一处理设备的数据分组,基于映射表查找与数据分组相对应的数据通道;以及引导模块,配置用于将所述数据分组引导至与所查找的数据通道相关联的虚拟接口。

在本发明的一个实施方式中,传输模块进一步包括:选择模块,配置用于当经由所述数据通道发送数据时,基于映射表选择与数据通道相关联的至少任一物理接口;以及发送模块,配置用于经由至少任一物理接口,从处理设备向另一处理设备发送数据。

在本发明的一个实施方式中,进一步包括:更新模块,配置用于根据往来于处理设备的协商数据包,动态地更新映射表。

在本发明的一个实施方式中,处理设备是至少一个服务器;或者处理设备是至少一个交换机。

附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号