一种负载均衡的方法和装置制造方法

文档序号:7801652阅读:293来源:国知局
一种负载均衡的方法和装置制造方法
【专利摘要】本发明提出一种负载均衡的方法和装置,应用于NPV交换机上,所述方法包括:当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;降低确定出的映射表项的转发优先级,在光纤通道FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的负载均衡LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。通过本发明,能够在在业务不中断的情况下实现上行接口的负载均衡。
【专利说明】一种负载均衡的方法和装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种负载均衡的方法和装置。
【背景技术】
[0002]在FC (Fiber Channel,光纤通道)SAN (Storage Area Network,存储局域网络)中,通信的双方,通常一端为网络服务器,另一端为磁盘设备。服务器与磁盘设备之间可以通过光纤或者铜缆直接连接在一起,也可以通过交换机间接连接在一起。
[0003]在交换式架构中,服务器和磁盘设备都被称之为节点设备(Node),是数据发送和接收的实体;FC交换机作为中间传输设备提供数据转发和网络控制功能。交换式架构提供了很好的扩展能力,能够支持上万台甚至更多的节点设备互联。
[0004]请参见图1和图2,由FC交换机和节点设备组成的网络称为FC SAN,由FC交换机组成的中间传输网络称为Fabric (架构)网络。在FC SAN中,对于直接连接节点设备的边缘交换机的需求量很大,为了使边缘交换机可以突破一个FC SAN中239台最大交换机数目的限制,因此开发了 NPV (N_Port Virtualization,N模式端口虚拟化)交换机,简称NPV交换机。其中N模式是节点设备上的端口模式,节点设备上N模式的端口称作N端口 ;NPV交换机的作用就是将多个本地连接的节点设备上的N端口聚集到一个或多个外部NP端口上。
[0005]在光纤通道网络中,交换机的端口模式通常包括:E模式、F模式和NP模式;处于E模式的端口称为E端口,E端口用来连接其它交换机的E端口;处于F模式的接口称为F端口,F端口用来连接节点设备的N端口或者其它交换机的NP端口;处于NP模式的接口称为NP端口,NP端口用来连接其它交换机的F端口。
[0006]NPV交换机位于Fabric网络边缘,在节点设备与核心交换机之间。核心交换机工作在FCF (Fibre Channel Forwarder,光纤通道转发者)模式,NPV交换机通过F接口(F_Port)和节点设备的N接口( N_Port)相连,通过N接口和核心交换机的F接口相连。最终,节点设备通过NPV交换机接入到Fabric网络中,所有节点设备的业务流量都通过NPV交换机转发到核心交换机。其中节点设备是指发送和接收数据的实体,比如Fabric网络中的服务器和磁盘设备。
[0007]对于节点设备来说,NPV交换机相当于一台FCF模式的交换机,接口呈现为F模式;而对于核心交换机来说,NPV交换机相当于一台节点设备,接口呈现为N模式。
[0008]在NPV交换机上,和节点设备相连的接口称为下行口,也称之为serverinterface。和核心交换机相连的接口称为上行口,也称之为external interface。上行口和下行口可以是FC接口或者VFC接口,但必须配置为NP模式。每个下行口会唯一映射到一个生效(链路up)的上行口,所有和该下行口相连的节点设备的数据都会通过映射的上行口转发到核心交换机上。
[0009]对于NPV交换机,会自动的进行上下行口的映射,在下行口生效前,NPV交换机会从当前所有生效的上行口中选择一个负载最小的上行口,将下行口映射到选中的上行口。其中这里所说的负载是指上行口上映射的下行口的数目。[0010]当自动映射不能满足组网需求(比如需要下行口通过指定的上行口连接到Fabric网络)时,可以通过配置上下行口映射关系来将下行口映射到指定的上行口或上行口的集合。一旦配置了映射关系,则下行口就只能映射到用户配置的上行口,如果配置的上行口未生效,则对应的下行口也无法生效。
[0011]上下行口建立映射关系后,从下行口过来的流量均通过映射的上行口进行转发。当有新的上行口生效时,NPV交换机并不会自动对已有的上下行口映射进行重新映射,以达到负载均衡。因为重新映射时,NPV交换机将对所有下行口进行链路初始化,要求和下行口相连的所有节点设备重新进行注册,这样会导致流量中断。因此,当有新的上行口生效时,如果用户希望重新进行上下行口映射,以达到更好的负载均衡效果,可通过命令行触发重新映射,然而此时会对所有下行口进行链路初始化,造成业务中断。

【发明内容】

[0012]本发明提出一种负载均衡的方法,应用于NPV交换机上,所述方法包括:
[0013]当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
[0014]降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
[0015]优选地,所述根据负载分担策略确定出需要调整到新加入上行接口或当前负载最小的上行接口的映射表项包括:
[0016]对所述映射表按照上行接口进行分组;
[0017]在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
[0018]优选地,所述方法还包括:当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
[0019]优选地,所述方法还包括:当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口 ;
[0020]当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
[0021]优选地,所述方法还包括:当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
[0022]本发明还提出一种负载均衡的装置,应用于NPV交换机上,所述装置包括:
[0023]确定模块,用于当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
[0024]下发模块,用于降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
[0025]优选地,所述确定模块进一步用于:
[0026]对所述映射表按照上行接口进行分组;
[0027]在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
[0028]优选地,所述装置还包括:判断模块,用于当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
[0029]优选地,所述判断模块还用于:当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口 ;
[0030]当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
[0031]优选地,所述判断模块进一步用于:当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
[0032]通过本发明,能够实现NPV交换机在在业务不中断的情况下实现上行接口的负载均衡。
【专利附图】

【附图说明】
[0033]图1是Fabric网络的组网图;
[0034]图2是FC SAN网络的组网图;
[0035]图3是本发明实施例提出的一种负载均衡方法的流程图;
[0036]图4是本发明实施例提出的一种负载均衡装置的逻辑结构图。【具体实施方式】
[0037]本申请提出一种负载均衡的方法,应用于NPV交换机上,当有上行接口生效时,通过自动降低部分映射表项的优先级,并在FC路由表中下发均衡路由,使相应源MAC的流量匹配FC路由表转发,从而实现在业务不中断的情况下达到负载均衡的目的。
[0038]以下参照附图对本申请的各实施例作进一步地详细说明。
[0039]请参见图3,本发明的实施例提出一种负载均衡的方法,应用在NPV交换机上,所述方法执行如下步骤:
[0040]S301、当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
[0041]S302、降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
[0042]在本实施例中,NPV交换机在执行以上步骤前,首先需要在上下行接口映射表(以下简称“映射表”)中引入转发优先级字段。默认情况下,来自下行接口(以下简称“下行口”)的流量优先匹配映射表进行转发,因此引入转发优先级字段后,映射表的转发优先级高于FC路由表。
[0043]在初始状态下,NPV交换机根据自动映射建立上下行接口映射表,并为该映射表中所有映射表项设置一个高于FC路由表中各路由表项的默认转发优先级。其中,在实际应用中该默认转发优先级可设置为最高,比如I (值越小,转发优先级越高)。
[0044]当上下行接口映射表建立完成后,NPV交换机主动遍历已经建立完成的映射表,判断当前是否需要进行负载均衡操作。
[0045]如果当前已经达到负载均衡状态,比如上行口与下行口均为一一映射,或者上行口数量多于下行口数量时,表明设备当前处于负载均衡操作,则无需继续处理。如果当前处于非负载均衡状态,比如可能是因为有新加入上行接口(以下简称“上行口 ”)生效,或下行口退出打破了当前负载均衡的状态,则NPV交换机执行以上步骤进行负载均衡操作。
[0046]具体地,当有新加入上行口生效需要进行负载均衡操作时,NPV交换机遍历所述映射表,对所述映射表按照上行接口进行分组,在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口的映射表项。
[0047]当确定了需要调整到新加入上行接口的映射表项,则降低该映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行口的负载均衡路由表项(以下简称“LB路由表项”),并保存该LB路由表项与所述映射表项的对应关系;
[0048]其中,LB为FC路由表中新定义的路由协议类型,表示与其对应的路由条目为负载均衡路由;所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。当同一个源MAC地址的流量有多条,比如同一个源MAC访问不同的目的FC地址时,NPV交换机必须根据目的FC地址下发多条LB路由表项。[0049]在本实施例中,当有上行口失效时,NPV交换机首先判断FC路由表中是否已下发了出接口为该上行口的LB路由表项;
[0050]如果是,删除该LB路由表项,根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;同时,遍历所述映射表以及FC路由表,将与该失效上行口对应的下行口映射到当前所有生效的上行口中负载最小的上行口 ;其中,所述当前所有生效的上行口包括映射表中的生效上行口和未包括在映射表中的生效上行口(即只在FC路由表中下发了 LB路由表项的生效上行口)。
[0051 ] 如果否,遍历所述映射表以及FC路由表,直接将与该失效上行口对应的下行口映射到当前所有生效的上行口中负载最小的上行口。其中,所述当前所有生效的上行口包括映射表中的生效上行口和未包括在映射表中的生效上行口(即只在FC路由表中下发了 LB路由表项的生效上行口)。
[0052]进一步的,将与该失效上行口对应的下行口映射到当前所有生效的上行口中负载最小的上行口后,如果该上行口的负载高于其他上行接口,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项;
[0053]如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;当将与该LB路由表项对应的映射表项的优先级恢复为默认值后,该上行接口的负载仍然高于其他上行接口,则根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作;
[0054]如果否,则直接根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作。
[0055]在本实施例中,当有新加入下行口生效时,NPV交换机遍历所述映射表以及FC路由表,将该新加入下行口映射到所有生效的上行接口中负载最小的上行接口 ;
[0056]等同的,当将该新加入下行口映射到所有生效的上行接口中负载最小的上行接口后,如果该上行口的负载高于其他上行接口,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项;
[0057]如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;当将与该LB路由表项对应的映射表项的优先级恢复为默认值后,该上行接口的负载仍然高于其他上行接口,则根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作;
[0058]如果否,则直接根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作。
[0059]在本实施例中,当有下行口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行口对应的上行口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项;另外,当该LB路由表项对应多条映射表项,并且该多条映射表项中的下行口均不同时,其中一个下行口失效时并不立即删除该LB路由表项,只有当该多条映射表项中的下行口均失效时,才删除该LB路由表项。[0060]等同的,当有下行口退出需要进行负载均衡操作时,NPV交换机仍遍历所述映射表,对所述映射表按照上行接口进行分组,在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到当前负载最小的上行接口的映射表项。
[0061]当确定了需要调整到当前负载最小的上行接口的映射表项,则降低该映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述当前负载最小的上行接口的负载均衡路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中,所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。当同一个源MAC地址的流量多条,比如访问不同的目的FC地址时,NPV交换机必须根据目的FC地址下发多条LB路由表项。
[0062]以下通过一个具体例子对本发明的技术方案作进一步详细说明。
[0063]假设当前NPV交换机建立的映射表如下表所示:
[0064]
【权利要求】
1.一种负载均衡的方法,其特征在于,所述方法应用于N端口虚拟化NPV交换机上,包括: 当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项; 降低确定出的映射表项的转发优先级,在光纤通道FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的负载均衡LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
2.如权利要求1所述的方法,其特征在于,所述根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项包括: 对所述映射表按照上行接口进行分组; 在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
3.如权利要求1所述的方法,其特征在于,所述方法还包括: 当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
4.如权利要求1所述的方法,其特征在于,所述方法还包括: 当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口; 当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
5.如权利要求3或者4所述的方法,其特征在于,所述方法还包括: 当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
6.一种负载均衡的装置,应用于NPV交换机上,其特征在于,所述装置包括: 确定模块,用于当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项; 下发模块,用于降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
7.如权利要求6所述的装置,其特征在于,所述确定模块进一步用于: 对所述映射表按照上行接口进行分组; 在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
8.如权利要求6所述的装置,其特征在于,所述装置还包括: 判断模块,用于当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
9.如权利要求6所述的装置,其特征在于,所述判断模块还用于: 当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口; 当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
10.如权利要求8或者9所述的装置,其特征在于,所述判断模块进一步用于: 当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载 最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
【文档编号】H04L12/931GK103929367SQ201410156109
【公开日】2014年7月16日 申请日期:2014年4月17日 优先权日:2014年4月17日
【发明者】周天弋 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1