一种云平台交换机端口聚合的配置方法
技术领域
本发明涉及云计算技术领域,尤其涉及一种云平台交换机端口聚合的配置方法。
背景技术
端口汇聚是将多个端口聚合在一起形成一个汇聚组,以实现出负荷在各成员端口中的分担,同时提供更高的连接可靠性。端口汇聚可以分为手工汇聚、动态lacp汇聚和静态lacp汇聚。同一个汇聚组中端口的基本配置应该保持一致,即如果某端口为trunk端口,则其他端口也配置为trunk端口;如该端口的链路类型改为access端口,则其他端口的链路类型也改为access端口。
在云平台中,经常会使用由多个计算节点所构建的服务器集群来实现复杂的网际间报文数据的转发,并通常依赖集群化管理方案。在集群化管理方案中,需要将两台物理交换机堆叠,以实现云平台中负载均衡、带宽扩展和容灾切换的目的。
堆叠是指将一台以上的交换机组合起来共同工作,以便在有限的空间内提供尽可能多的端口。多台交换机经过堆叠形成一个堆叠单元。堆叠可以大大提高交换机端口密度和性能。堆叠单元具有足以匹敌大型机架式交换机的端口密度和性能,而投资却比机架式交换机便宜得多,实现起来也灵活得多。
每台物理服务器上会提供两张网卡,各代表数据转发的南北方向,要实现负载均衡,需要配合普通的三层交换机的LACP协议。由于服务器中的应用程序只负责数据报文的转发,没有协议栈对网络数据报文进行处理,所以这个时候服务器中的应用程序只能对LACPDU报文进行转发,那么在服务器集群的南北方向上,都需要准备一个交换机堆叠,共需要两个交换机堆叠,占用4台物理交换机。这样北向堆叠交换机发送LACP请求,服务器集群北向端口收到LACPDU报文后,转发给南向端口,南向堆叠交换机收到LACPDU报文后,就会返回LACPDU报文到服务器集群的南向端口,服务器集群南向端口收到LACPDU报文后,转发给北向端口,北向堆叠设备收到LACP报文后,两组LACP链路聚合口协商成功。
但是,一般使用服务器实现复杂数据报文的转发的服务器集群不会太大,使用lacp的端口聚合会限制服务器集群的个数不能大于16台物理服务器,这样使用两组堆叠交换机,会造成较多的堆叠交换机端口浪费,尤其是目前万兆端口的交换机的价格昂贵,同时在数据中心交换机也是需要占用机柜的空间进行安放,从而造成数据中心的机柜空间造成浪费,从而导致数据中心的投资较高。
有鉴于此,有必要对现有技术中的云平台交换机的端口聚合的配置方法予以改进,以解决上述问题。
发明内容
本发明的目的在于公开一种云平台交换机的端口聚合的配置方法,用实现使用一组物理堆叠交换机模拟实现两组逻辑堆叠交换机的端口聚合,减低数据中心网络部署的复杂度,节约机柜空间,避免堆叠交换机端口的浪费现象;同时,实现一个堆叠交换机同时支持多个服务器集群,提高云平台的可扩展性。
为实现上述目的,本发明提供了云平台交换机端口聚合的配置方法,包括:将至少两个物理机交换机配置为形成至少一个堆叠链路的堆叠交换机;在堆叠交换机上划分出由若干虚拟端口组成且支持南北方向LACPDU报文单播的两组LACP链路聚合口,两组LACP链路聚合口与服务器集群中的每一个服务器均直连,并在每个服务器中安装支持LACPDU报文转发的应用程序;当LACPDU报文在物理机交换机与服务器之间进行单播及响应时,通过应用程序修改LACPDU报文及响应报文的SYSTEM_ID字段为本地MAC地址。
作为本发明的进一步改进,所述堆叠交换机中的若干服务器配置成链状。
作为本发明的进一步改进,所述堆叠交换机中的若干服务器配置成环状。
作为本发明的进一步改进,所述两组LACP链路聚合口通过成组的上行链路与下行链路与服务器相通讯,若干物理机交换机所直连的服务器数量呈对称布置。
作为本发明的进一步改进,所述两组LACP链路聚合口通过成组的上行链路与下行链路与服务器相通讯,若干物理机交换机所直连的服务器数量呈非对称布置。
作为本发明的进一步改进,根据物理机交换机的数量配置数量相等的服务器集群,多个服务器集群之间相互独立。
与现有技术相比,本发明的有益效果是:在本发明中,无需使用两组物理堆叠交换机来完成物理服务器集群的负载均衡与链路监控的LACP协议协商,降低了数据中心的网络部署复杂度,节约了数据中心的机柜空间,从而显著降低了数据中心的网络设备成本,实现了负载均衡与带宽扩展的效果,并提高了云平台的扩展性。
附图说明
图1为使用现有技术中的云平台交换机端口聚合的配置方法配置形成的LACP堆叠组网的结构示意图;
图2为发明一种云平台交换机端口聚合的配置方法的流程图;
图3为使用本发明一种云平台交换机端口聚合的配置方法所形成的LACP堆叠组网的结构示意图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
参图1所示,在目前的云平台中,单个物理交换机支持直连的SERVER数量最多为十六台。为简化标示,在图1中仅示出四台SERVER,即SERVER1、SRVER2、SERVER3及SERVER4。SERVER1、SERVER2与第一物理交换机SW1直连,SERVER3、SERVER4与第二物理交换机SW2直连。为了实现LACP组网效果,必须同时配置第三物理交换机SW3及第四物理交换机SW4。
第一物理交换机SW1配置北向端口S1及北向端口S3,第二物理交换机SW2配置北向端口S5及北向端口S7;第一物理交换机SW1与第二物理交换机SW2之间形成堆叠链路11。同时,第三物理交换机SW3配置南向端口S2及南向端口S4,第四物理交换机SW4配置南向端口S6及南向端口S8;第三物理交换机SW3与第四物理交换机SW4之间形成堆叠链路12。
在图1中,所有的北向端口(S1、S3、S5、S7)直连上游设备,所有的南向端口(S2、S4、S6、S8)直连下游设备。北向端口S1与SERVER1的端口A1直连,南向端口S2与SERVER1的端口A2直连,北向端口S3与SERVER2的端口B1直连,南向端口S4与SERVER2的端口B2直连。
由图1可知,当上游设备向下游设备发送报文数据时,需要配置四台物理交换机才能实现LACP端口聚合。此种结构/配置方法的云平台端口聚合系统就会导致数据中心的投资较大,物理交换机占用机柜内体积较多的缺陷。
为此,本说明书中公开了若干种云平台交换机端口聚合的配置方法及其基于该配置方法所形成的云平台LACP聚合端口的实施方式。
实施例一:
本实施例示出了在一种由两个物理交换机配置成链状结构时的一种云平台交换机端口的配制方法的一种具体实施方式。具体的,第一物理交换机SW1与第二物理交换机SW2呈链状,并可根据实际需要连接数量更多的物理交换机(未示出)。
第一物理交换机SW1配置北向端口S1、北向端口S3及南向端口S2、南向端口S4,以形成两对北向端口与两对南向端口,并均为物理端口。其中,所有的北向端口连接上游设备,所有的南向端口连接下游设备。第一物理机SW1中南向端口与北向端口的数量最多可达32个,以直连16台服务器。同理,第二物理交换机SW2配置北向端口S5、北向端口S7及南向端口S6、南向端口S8,以形成两对北向端口与两对南向端口,并均为物理端口。其中,所有的北向端口连接上游设备,所有的南向端口连接下游设备。第一物理机SW1中南向端口与北向端口的数量最多可达32个,以直连16台服务器。第一物理交换机SW1与第二物理交换机SW2之间配置形成一个堆叠链路13,从而将第一物理交换机SW1与第二物理交换机SW2配置为一个堆叠交换机10。所有服务器(即图2中的SERVER1~SERVER4组成了一个服务器集群30)。
在图1中,北向端口S1、S3、S5、S7与南向端口S2、S4、S6、S8划分为支持南北方向LACPDU报文单播的两组LACP链路聚口。接下来,我们一个LACPDU报文从上游设备单播至下游设备的整个过程进行详细阐述。
当LACPDU报文从上游设备单播至下游设备时,该LACPDU报文的传递发送路径为上游设备—北向端口S1—SERVER1端口A1(物理端口或者虚拟端口)—SERVER1端口A2(物理端口或者虚拟端口)—南向端口S2。当LACPDU报文从下游设备单播至上游设备时,则按照上述顺序逆序执行。
以下为上游设备转发LACPDU报文至下游设备的转发及响应的过程作详述。
单播流量所转发的LACPDU报文自上游设备从第一物理交换机SW1的北向端口S1发送LACPDU报文通过下行链路LACP1-1发送至SERVER1的端口A1。SERVER1的端口A1接收到上述LACPDU报文后,通过预先安装在SERVER1内并支持LACPDU报文转发的应用程序修改LACPDU报文的SYSTEM_ID为SERVER1本地的MAC地址,然后由端口A2通过上行链路LACP2-1发送至第一物理交换机SW1的南向端口S2,并通过该南向端口S2发送至下游设备。当南向端口S2接收到已经被SERVER1修改过SYSTEM_ID的LACPDU报文后,需要确认该LACPDU报文的SYSTEM_ID字段在SERVER1内置的转发表中具有唯一性。然后,南向端口S2向SERVER1的端口A2作响应。端口A2接收到南向端口S2发出的响应报文后,再使用SERVER1中的上述应用程序修改该响应报文的SYSTEM_ID字段为SERVER1本地的MAC地址,以确认该响应报文的SYSTEM_ID字段在SERVER1内置的转发表中具有唯一性。然后,由SERVER1的端口A1通过上行链路LACP1-1将修改过SYSTEM_ID的响应报文发送至第一物理交换机SW1的北向端口S1。北向端口S1接收到上述已经修改过SYSTEM_ID字段的响应报文后进行确认,以确保该SYSTEM_ID字段在第一物理交换机SW1内置的转发表中同样具有唯一性,并最后将上述已经修改过SYSTEM_ID字段的响应报文发送至上游设备,从而最终在上游设备与下游设备之间建立LACP协议的过程。
下文示出了本实施例中,在该云平台交换机端口聚合的配置方法实现过程中的主要C语言代码。
(1)从网络端口中接收到LACPDU报文:
nic_recv(row_packet)
注释:row_packet是完整的LACPDU报文,包含以太网头、LACP头。
nic_recv为从物理网卡收报文的函数。
(2)将数据报文赋值给LACPDU报文数据类型的指针变量:
注释:对收到的原始报文一定要做一个以太网头的偏移量的位移才能准确对应到 LACP报头的位置;eth_addr为LACPDU报文的以太网头类型。
(3)修改LACPDU报文中的SYSTEM_ID字段为本地MAC地址:
copy(&local_mac,&lacp->actor.port_params.system)
注释:将本地MAC地址拷贝到LACPDU报文的SYSTEM_ID字段,local_mac是本地的
MAC地址;
lacp->actor.port_params.system指的是LACPDU报文中的SYSTEM_ID字段。
(4)将修改SYSTEM_ID字段的LACPDU报文直接从网络端口(例如南向端口或者北向端口)中发送出去。
nic_send(row_packet);
注释:nic_send为通过物理网卡(配置在服务器中PCI-E接口或者PCI接口中)发送
LACPDU报文的函数。
在本实施例中,仅使用两台物理交换机直连4台服务器(最多可直连16台服务器)以形成LACP堆叠及LACP端口聚合,该配置方法相对于现有技术,节省了两台物理交换机,大大的降低了数据中心的投资成本与机柜空间。
同时,物理机交换机SW1与物理交换机SW2所直连的服务器数量呈对称布置,这是最优选的方案,并可最大限度的提高数据中心对LACP链路拥塞的容忍能力,并在出来拥塞时能通过旁路进行替换,具有高可用性。另一方面,可通过集群化管理方案中,需要将两台物理交换机进行堆叠以形成堆叠交换机10,以实现云平台中负载均衡、带宽扩展和容灾切换的目的。
使用两台或者多台物理交换机通过堆叠的方式进行连接,在逻辑上作为一台交换机来使用(即作为堆叠交换机10),在分配LACP聚合端口的物理端口的时候,应该尽可能平均分配在不同的物理交换机上,这样就可以最大可能的保证带宽的负载均衡和数据链路的高可用保证。
LACP聚合端口中的负载均衡在第一物理交换机SW1与第二物理交换机SW2中是可以进行灵活设置的,在配置LACP聚合口的时候会有多种选择,有根据源MAC和目的MAC进行hash,有根据源IP和目的IP进行hash,或者两种混合使用。具体的hash算法及实现功能是第一物理交换机SW1及第二物理交换机SW2自带的。
如果某一台物理交换机上的LACP聚合端口中的某个物理端口或者物理交换机本身发生了故障,LACP聚合负载均衡会快速的重新hash,将数据报文负载均衡到其他正常的LACP聚合端口中的物理端口,发生故障的物理端口或者物理交换机本身将不再承担数据报文的转发任务,充分保证了用户数据报文的安全性和流量的稳定性。
当然,若干物理机交换机所直连的服务器数量也可呈非对称布置。例如,第一物理机交换机SW1与第二物理交换机SW2所直连的服务器数量达到16台时,第一物理机交换机SW1可直连1~7台服务器,第二物理交换机SW2可直连9~15台服务器。
实施例二:
结合参照图3所示,本实施例与实施例一的主要区别如下。在本实施例中,该堆叠交换机10a包括呈链状的第一物理交换机SW1、第二物理交换机SW2及第三物理交换机SW3。第一物理交换机SW1与第二物理交换机SW2之间配置形成一个堆叠链路13;第二物理交换机SW2与第三物理交换机SW3之间配置形成一个堆叠链路14;第一物理交换机SW1与第三物理交换机SW3之间配置形成一个堆叠链路15。第一物理交换机SW1通过上行链路与下行链路分别连接两个服务器集群或者三个服务器集群。
优选的,可将第一物理交换机SW1、第二物理交换机SW2及第三物理交换机SW3分别直连三个独立的服务器集群(未示出)。每个服务器集群与第一物理交换机SW1、第二物理交换机SW2及第三物理交换机SW3分别独立的建立LACP协议的过程参上文所述,在此不再赘述;从而可支持上游设备通过该堆叠交换机10a与上游设备相互通讯,并三个呈环状的物理交换机分别与三个独立的服务器集群相互通讯,从而更适应复杂架构的数据中心,提高端口聚合的适应性。
同理,在实施例中,同样支持南北方向LACPDU报文单播的三组LACP链路聚口。同时,三个物理交换机与服务器集群之间支持LACPDU报文的单播与响应报文的单播机制。
本实施例与实施例一中的相同部分,请参实施例一所示,在此不再赘述。
需要说明的是,在本实施例中,三个物理交换机被配置为在逻辑上为一个整体的堆叠交换机10a,当然,如果这个呈链状由四台物理交换机组成时,也可将顺位1与顺位3的物理交换机在逻辑上配置为一个堆叠交换机,顺位2与顺位4的物理交换机在逻辑上配置为另一个堆叠交换机;或者将顺位1、顺位2及顺位3的物理交换机在逻辑上配置为一个堆叠交换机,将顺位4的物理交换机在逻辑上配置为另一个堆叠交换机。其在实现LACP端口聚合及LACPDU报文单播及响应报文的单播实现过程中具有相同的技术原理。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。