CN103929367A - 一种负载均衡的方法和装置 - Google Patents
一种负载均衡的方法和装置 Download PDFInfo
- Publication number
- CN103929367A CN103929367A CN201410156109.4A CN201410156109A CN103929367A CN 103929367 A CN103929367 A CN 103929367A CN 201410156109 A CN201410156109 A CN 201410156109A CN 103929367 A CN103929367 A CN 103929367A
- Authority
- CN
- China
- Prior art keywords
- interface
- upstream
- mapping
- port
- upstream interface
- 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
Abstract
本发明提出一种负载均衡的方法和装置,应用于NPV交换机上,所述方法包括:当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;降低确定出的映射表项的转发优先级,在光纤通道FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的负载均衡LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。通过本发明,能够在在业务不中断的情况下实现上行接口的负载均衡。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种负载均衡的方法和装置。
背景技术
在FC(Fiber Channel,光纤通道)SAN(Storage Area Network,存储局域网络)中,通信的双方,通常一端为网络服务器,另一端为磁盘设备。服务器与磁盘设备之间可以通过光纤或者铜缆直接连接在一起,也可以通过交换机间接连接在一起。
在交换式架构中,服务器和磁盘设备都被称之为节点设备(Node),是数据发送和接收的实体;FC交换机作为中间传输设备提供数据转发和网络控制功能。交换式架构提供了很好的扩展能力,能够支持上万台甚至更多的节点设备互联。
请参见图1和图2,由FC交换机和节点设备组成的网络称为FC SAN,由FC交换机组成的中间传输网络称为Fabric(架构)网络。在FC SAN中,对于直接连接节点设备的边缘交换机的需求量很大,为了使边缘交换机可以突破一个FC SAN中239台最大交换机数目的限制,因此开发了NPV(N_PortVirtualization,N模式端口虚拟化)交换机,简称NPV交换机。其中N模式是节点设备上的端口模式,节点设备上N模式的端口称作N端口;NPV交换机的作用就是将多个本地连接的节点设备上的N端口聚集到一个或多个外部NP端口上。
在光纤通道网络中,交换机的端口模式通常包括:E模式、F模式和NP模式;处于E模式的端口称为E端口,E端口用来连接其它交换机的E端口;处于F模式的接口称为F端口,F端口用来连接节点设备的N端口或者其它交换机的NP端口;处于NP模式的接口称为NP端口,NP端口用来连接其它交换机的F端口。
NPV交换机位于Fabric网络边缘,在节点设备与核心交换机之间。核心交换机工作在FCF(Fibre Channel Forwarder,光纤通道转发者)模式,NPV交换机通过F接口(F_Port)和节点设备的N接口(N_Port)相连,通过N接口和核心交换机的F接口相连。最终,节点设备通过NPV交换机接入到Fabric网络中,所有节点设备的业务流量都通过NPV交换机转发到核心交换机。其中节点设备是指发送和接收数据的实体,比如Fabric网络中的服务器和磁盘设备。
对于节点设备来说,NPV交换机相当于一台FCF模式的交换机,接口呈现为F模式;而对于核心交换机来说,NPV交换机相当于一台节点设备,接口呈现为N模式。
在NPV交换机上,和节点设备相连的接口称为下行口,也称之为serverinterface。和核心交换机相连的接口称为上行口,也称之为external interface。上行口和下行口可以是FC接口或者VFC接口,但必须配置为NP模式。每个下行口会唯一映射到一个生效(链路up)的上行口,所有和该下行口相连的节点设备的数据都会通过映射的上行口转发到核心交换机上。
对于NPV交换机,会自动的进行上下行口的映射,在下行口生效前,NPV交换机会从当前所有生效的上行口中选择一个负载最小的上行口,将下行口映射到选中的上行口。其中这里所说的负载是指上行口上映射的下行口的数目。
当自动映射不能满足组网需求(比如需要下行口通过指定的上行口连接到Fabric网络)时,可以通过配置上下行口映射关系来将下行口映射到指定的上行口或上行口的集合。一旦配置了映射关系,则下行口就只能映射到用户配置的上行口,如果配置的上行口未生效,则对应的下行口也无法生效。
上下行口建立映射关系后,从下行口过来的流量均通过映射的上行口进行转发。当有新的上行口生效时,NPV交换机并不会自动对已有的上下行口映射进行重新映射,以达到负载均衡。因为重新映射时,NPV交换机将对所有下行口进行链路初始化,要求和下行口相连的所有节点设备重新进行注册,这样会导致流量中断。因此,当有新的上行口生效时,如果用户希望重新进行上下行口映射,以达到更好的负载均衡效果,可通过命令行触发重新映射,然而此时会对所有下行口进行链路初始化,造成业务中断。
发明内容
本发明提出一种负载均衡的方法,应用于NPV交换机上,所述方法包括:
当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
优选地,所述根据负载分担策略确定出需要调整到新加入上行接口或当前负载最小的上行接口的映射表项包括:
对所述映射表按照上行接口进行分组;
在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
优选地,所述方法还包括:当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
优选地,所述方法还包括:当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口;
当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
优选地,所述方法还包括:当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
本发明还提出一种负载均衡的装置,应用于NPV交换机上,所述装置包括:
确定模块,用于当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
下发模块,用于降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
优选地,所述确定模块进一步用于:
对所述映射表按照上行接口进行分组;
在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
优选地,所述装置还包括:判断模块,用于当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
优选地,所述判断模块还用于:当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口;
当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
优选地,所述判断模块进一步用于:当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
通过本发明,能够实现NPV交换机在在业务不中断的情况下实现上行接口的负载均衡。
附图说明
图1是Fabric网络的组网图;
图2是FC SAN网络的组网图;
图3是本发明实施例提出的一种负载均衡方法的流程图;
图4是本发明实施例提出的一种负载均衡装置的逻辑结构图。
具体实施方式
本申请提出一种负载均衡的方法,应用于NPV交换机上,当有上行接口生效时,通过自动降低部分映射表项的优先级,并在FC路由表中下发均衡路由,使相应源MAC的流量匹配FC路由表转发,从而实现在业务不中断的情况下达到负载均衡的目的。
以下参照附图对本申请的各实施例作进一步地详细说明。
请参见图3,本发明的实施例提出一种负载均衡的方法,应用在NPV交换机上,所述方法执行如下步骤:
S301、当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
S302、降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
在本实施例中,NPV交换机在执行以上步骤前,首先需要在上下行接口映射表(以下简称“映射表”)中引入转发优先级字段。默认情况下,来自下行接口(以下简称“下行口”)的流量优先匹配映射表进行转发,因此引入转发优先级字段后,映射表的转发优先级高于FC路由表。
在初始状态下,NPV交换机根据自动映射建立上下行接口映射表,并为该映射表中所有映射表项设置一个高于FC路由表中各路由表项的默认转发优先级。其中,在实际应用中该默认转发优先级可设置为最高,比如1(值越小,转发优先级越高)。
当上下行接口映射表建立完成后,NPV交换机主动遍历已经建立完成的映射表,判断当前是否需要进行负载均衡操作。
如果当前已经达到负载均衡状态,比如上行口与下行口均为一一映射,或者上行口数量多于下行口数量时,表明设备当前处于负载均衡操作,则无需继续处理。如果当前处于非负载均衡状态,比如可能是因为有新加入上行接口(以下简称“上行口”)生效,或下行口退出打破了当前负载均衡的状态,则NPV交换机执行以上步骤进行负载均衡操作。
具体地,当有新加入上行口生效需要进行负载均衡操作时,NPV交换机遍历所述映射表,对所述映射表按照上行接口进行分组,在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口的映射表项。
当确定了需要调整到新加入上行接口的映射表项,则降低该映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行口的负载均衡路由表项(以下简称“LB路由表项”),并保存该LB路由表项与所述映射表项的对应关系;
其中,LB为FC路由表中新定义的路由协议类型,表示与其对应的路由条目为负载均衡路由;所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。当同一个源MAC地址的流量有多条,比如同一个源MAC访问不同的目的FC地址时,NPV交换机必须根据目的FC地址下发多条LB路由表项。
在本实施例中,当有上行口失效时,NPV交换机首先判断FC路由表中是否已下发了出接口为该上行口的LB路由表项;
如果是,删除该LB路由表项,根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;同时,遍历所述映射表以及FC路由表,将与该失效上行口对应的下行口映射到当前所有生效的上行口中负载最小的上行口;其中,所述当前所有生效的上行口包括映射表中的生效上行口和未包括在映射表中的生效上行口(即只在FC路由表中下发了LB路由表项的生效上行口)。
如果否,遍历所述映射表以及FC路由表,直接将与该失效上行口对应的下行口映射到当前所有生效的上行口中负载最小的上行口。其中,所述当前所有生效的上行口包括映射表中的生效上行口和未包括在映射表中的生效上行口(即只在FC路由表中下发了LB路由表项的生效上行口)。
进一步的,将与该失效上行口对应的下行口映射到当前所有生效的上行口中负载最小的上行口后,如果该上行口的负载高于其他上行接口,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项;
如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;当将与该LB路由表项对应的映射表项的优先级恢复为默认值后,该上行接口的负载仍然高于其他上行接口,则根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作;
如果否,则直接根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作。
在本实施例中,当有新加入下行口生效时,NPV交换机遍历所述映射表以及FC路由表,将该新加入下行口映射到所有生效的上行接口中负载最小的上行接口;
等同的,当将该新加入下行口映射到所有生效的上行接口中负载最小的上行接口后,如果该上行口的负载高于其他上行接口,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项;
如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;当将与该LB路由表项对应的映射表项的优先级恢复为默认值后,该上行接口的负载仍然高于其他上行接口,则根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作;
如果否,则直接根据已有实现,与该上行口对应的所有下行口都需要重新登录,作为生效的新加入下行口重新进行上行口的映射操作。
在本实施例中,当有下行口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行口对应的上行口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项;另外,当该LB路由表项对应多条映射表项,并且该多条映射表项中的下行口均不同时,其中一个下行口失效时并不立即删除该LB路由表项,只有当该多条映射表项中的下行口均失效时,才删除该LB路由表项。
等同的,当有下行口退出需要进行负载均衡操作时,NPV交换机仍遍历所述映射表,对所述映射表按照上行接口进行分组,在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到当前负载最小的上行接口的映射表项。
当确定了需要调整到当前负载最小的上行接口的映射表项,则降低该映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述当前负载最小的上行接口的负载均衡路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中,所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。当同一个源MAC地址的流量多条,比如访问不同的目的FC地址时,NPV交换机必须根据目的FC地址下发多条LB路由表项。
以下通过一个具体例子对本发明的技术方案作进一步详细说明。
假设当前NPV交换机建立的映射表如下表所示:
编号 | 源MAC | 入VSAN | 下行口 | 目的FC_ID | 上行口 | 出VSAN | 优先级 |
1 | SMAC1 | VSAN1_1 | F_PORT_VFC1_1 | FC_ID_D1 | NP_PORT_VFC1 | VSAN1_2 | 1 |
2 | SMAC2 | VSAN2_1 | F_PORT_VFC2_1 | FC_ID_D2 | NP_PORT_VFC1 | VSAN2_2 | 1 |
3 | SMAC3 | VSAN3_1 | F_PORT_VFC3_1 | FC_ID_D3 | NP_PORT_VFC2 | VSAN2_3 | 1 |
4 | SMAC4 | VSAN4_1 | F_PORT_VFC4_1 | FC_ID_D4 | NP_PORT_VFC2 | VSAN2_4 | 1 |
在本实施例中,当新加入上行口NP_PORT_VFC3生效时,此时需要进行负载均衡操作,于是NPV交换机根据负载分担策略确定出表项2需要调整到上行口NP_PORT_VFC3上,于是降低表项2的转发优先级为255(最小),同时在FC路由表中下发如下的LB路由表项:
目的地址/掩码 | 协议类型 | 优先级 | 开销 | 接口 |
FC_ID_D2/8 | LB | 100 | 0 | NP_PORT_VFC3 |
此时下行口F_PORT_VFC2_1对应的上行口为NP_PORT_VFC3;
其中LB为新定义的路由协议类型,表示该条表项为LB路由表项。当LB路由表项下发完毕后,NPV交换机保存该LB路由表项和其对应的映射表项(表项2)的对应关系。
此时更新后的映射表如下所示:
编号 | 源MAC | 入VSAN | 下行口 | 目的FC_ID | 上行口 | 出VSAN | 优先级 |
1 | SMAC1 | VSAN1_1 | F_PORT_VFC1_1 | FC_ID_D1 | NP_PORT_VFC1 | VSAN1_2 | 1 |
2 | SMAC2 | VSAN2_1 | F_PORT_VFC2_1 | FC_ID_D2 | NP_PORT_VFC1 | VSAN2_2 | 255 |
3 | SMAC3 | VSAN3_1 | F_PORT_VFC3_1 | FC_ID_D3 | NP_PORT_VFC2 | VSAN2_3 | 1 |
4 | SMAC4 | VSAN4_1 | F_PORT_VFC4_1 | FC_ID_D4 | NP_PORT_VFC2 | VSAN2_4 | 1 |
值得说明的是,假定上表中上行口NP_PORT_VFC3失效,则直接删除已下发的出接口为NP_PORT_VFC3的LB路由表项,同时根据保存的所述对应关系将所述映射表中的映射表项2的优先级由255恢复为1;同样的道理,假定上表中上行口NP_PORT_VFC1失效,此时FC路由表中未下发出接口为NP_PORT_VFC1的LB路由表项,则只将与上行口NP_PORT_VFC1对应的下行接口F_PORT_VFC1_1和F_PORT_VFC2_1映射到当前所有生效的上行接口中负载最小的上行口上即可;
在本实施例中,当新加入下行口F_PORT_VFC5_1时,NPV交换机遍历映射表以及FC路由表,此时上行口NP_PORT_VFC1负载为1(优先级为255的映射表项对应的流量已被调整到上行口NP_PORT_VFC3)为最小,于是将该新加入下行接口F_PORT_VFC5_1映射到NP_PORT_VFC1上;
此时更新后的映射表如下所示:
编号 | 源MAC | 入VSAN | 下行口 | 目的FC_ID | 上行口 | 出VSAN | 优先级 |
1 | SMAC1 | VSAN1_1 | F_PORT_VFC1_1 | FC_ID_D1 | NP_PORT_VFC1 | VSAN1_2 | 1 |
2 | SMAC2 | VSAN2_1 | F_PORT_VFC2_1 | FC_ID_D2 | NP_PORT_VFC1 | VSAN2_2 | 255 |
3 | SMAC3 | VSAN3_1 | F_PORT_VFC3_1 | FC_ID_D3 | NP_PORT_VFC2 | VSAN2_3 | 1 |
4 | SMAC4 | VSAN4_1 | F_PORT_VFC4_1 | FC_ID_D4 | NP_PORT_VFC2 | VSAN2_4 | 1 |
5 | SMAC5 | VSAN5_1 | F_PORT_VFC5_1 | FC_ID_D5 | NP_PORT_VFC1 | VSAN2_5 | 1 |
在本实施例中,当下行口F_PORT_VFC2_1失效时,此时FC路由表中已下发了出接口为NP_PORT_VFC3的LB路由表项,由于该LB路由表项只唯一对应一条映射表项(映射表项2),并且该映射表项的下行口为失效的F_PORT_VFC2_1,于是删除该出接口为NP_PORT_VFC3的LB路由表项,同时将映射表中对应的失效表项也删除。此时上行口NP_PORT_VFC3仍为生效上行口,负载为0;
此时更新后的映射表如下所示:
编号 | 源MAC | 入VSAN | 下行口 | 目的FC_ID | 上行口 | 出VSAN | 优先级 |
1 | SMAC1 | VSAN1_1 | F_PORT_VFC1_1 | FC_ID_D1 | NP_PORT_VFC1 | VSAN1_2 | 1 |
2 | SMAC3 | VSAN3_1 | F_PORT_VFC3_1 | FC_ID_D3 | NP_PORT_VFC2 | VSAN2_3 | 1 |
3 | SMAC4 | VSAN4_1 | F_PORT_VFC4_1 | FC_ID_D4 | NP_PORT_VFC2 | VSAN2_4 | 1 |
4 | SMAC5 | VSAN5_1 | F_PORT_VFC5_1 | FC_ID_D5 | NP_PORT_VFC1 | VSAN2_5 | 1 |
在本实施例中,当下行口F_PORT_VFC1_1失效时,FC路由表中未下发出接口为NP_PORT_VFC1的LB路由表项,于是删除映射表中对应的失效表项,更新后的映射表项如下所示:
编号 | 源MAC | 入VSAN | 下行口 | 目的FC_ID | 上行口 | 出VSAN | 优先级 |
1 | SMAC3 | VSAN3_1 | F_PORT_VFC3_1 | FC_ID_D3 | NP_PORT_VFC2 | VSAN2_3 | 1 |
2 | SMAC4 | VSAN4_1 | F_PORT_VFC4_1 | FC_ID_D4 | NP_PORT_VFC2 | VSAN2_4 | 1 |
3 | SMAC5 | VSAN5_1 | F_PORT_VFC5_1 | FC_ID_D5 | NP_PORT_VFC1 | VSAN2_5 | 1 |
当前,由于下行口F_PORT_VFC1_1失效导致目前负载不均衡,于是重新进行负载均衡操作:
此时上行口NP_PORT_VFC2负载为2;
上行口NP_PORT_VFC1负载为1;
上行口NP_PORT_VFC3负载为0;
于是NPV交换机根据负载分担策略确定出当前表项1需要调整到负载最小的上行口NP_PORT_VFC3(当前上行口NP_PORT_VFC3仍为生效上行口)上,于是降低表项1的转发优先级为255,同时在FC路由表中下发如下的LB路由表项:
目的地址/掩码 | 协议类型 | 优先级 | 开销 | 接口 |
FC_ID_D3/8 | LB | 100 | 0 | NP_PORT_VFC3 |
此时下行口F_PORT_VFC3_1对应的上行口为NP_PORT_VFC3;
此时更新后的映射表如下:
编号 | 源MAC | 入VSAN | 下行口 | 目的FC_ID | 上行口 | 出VSAN | 优先级 |
1 | SMAC3 | VSAN3_1 | F_PORT_VFC3_1 | FC_ID_D3 | NP_PORT_VFC2 | VSAN2_3 | 255 |
2 | SMAC4 | VSAN4_1 | F_PORT_VFC4_1 | FC_ID_D4 | NP_PORT_VFC2 | VSAN2_4 | 1 |
3 | SMAC5 | VSAN5_1 | F_PORT_VFC5_1 | FC_ID_D5 | NP_PORT_VFC1 | VSAN2_5 | 1 |
此时各上行口的实际负载均为1,重新达到负载均衡状态。
通过以上的描述可知,本发明通过在上下行接口映射表中引入优先级字段,在需要进行负载均衡操作时,通过自动降低部分需要调整的映射表项的优先级,并在FC路由表中下发目的FC地址与该些需要调整的映射表项对应的均衡路由,使得该些需要调整的映射表项所对应的流量匹配FC路由表转发,从而使得在业务不中断的前提下达到负载均衡的目的。
请参见图4,在本申请一实施例中还提出一种以单播方式发送组播流的装置40,其中作为承载本发明装置100的装置涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、IO接口以及其他硬件。以软件实现为例,本发明装置40通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置;述装置40包括:
确定模块41,用于当需要进行负载均衡操作时,遍历预先建立的上下行接口映射表,根据负载分担策略确定出需要将对应流量调整到新加入上行接口或当前负载最小的上行接口的映射表项;
下发模块42,用于降低确定出的映射表项的转发优先级,在FC路由表中下发目的FC地址与该映射表项相同并且出接口为所述新加入上行接口或当前负载最小的上行接口的LB路由表项,并保存该LB路由表项与所述映射表项的对应关系;其中所述LB路由表项的转发优先级高于所述映射表项降低后的转发优先级。
在本实施例中,所述确定模块41进一步用于:
对所述映射表按照上行接口进行分组;
在包含映射表项数目最多的分组中,选择源MAC地址相同的一条或多条映射表项作为所述需要调整到所述新加入上行接口或当前负载最小的上行接口的映射表项。
在本实施例中,所述装置40还包括:
判断模块43,用于当有上行接口失效时,判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,删除该LB路由表项,同时根据保存的所述对应关系将所述映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值;如果否,遍历所述映射表以及FC路由表,将与该失效上行接口对应的下行接口映射到当前所有生效的上行接口中负载最小的上行接口。
在本实施例中,所述判断模块41还用于:当有新加入下行接口生效时,遍历所述映射表以及FC路由表,将该新加入下行接口映射到所有生效的上行接口中负载最小的上行接口;
当有下行接口失效时,删除所述映射表中与该失效下行口对应的失效表项,并判断所述FC路由表中是否已下发了出接口为该下行接口对应的上行接口的LB路由表项,如果是,并且与该LB路由表项对应的映射表项中的下行接口均为该失效的下行口时,则删除该LB路由表项。
在本实施例中,所述判断模块43进一步用于:当将失效上行接口对应的下行接口或者新加入下行接口映射到当前所有生效的上行接口中负载最小的上行接口后,该上行接口的负载高于其他上行接口时,则进一步判断所述FC路由表中是否已下发了出接口为该上行接口的LB路由表项,如果是,则删除该LB路由表项,同时根据保存的所述对应关系将映射表中与该LB路由表项对应的映射表项的优先级恢复为默认值。
通过以上实施例的描述,本领域技术人员可以理解实施例中装置中的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
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路由表项对应的映射表项的优先级恢复为默认值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410156109.4A CN103929367B (zh) | 2014-04-17 | 2014-04-17 | 一种负载均衡的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410156109.4A CN103929367B (zh) | 2014-04-17 | 2014-04-17 | 一种负载均衡的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103929367A true CN103929367A (zh) | 2014-07-16 |
CN103929367B CN103929367B (zh) | 2017-06-06 |
Family
ID=51147450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410156109.4A Active CN103929367B (zh) | 2014-04-17 | 2014-04-17 | 一种负载均衡的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103929367B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490957A (zh) * | 2014-10-11 | 2016-04-13 | 华为技术有限公司 | 一种负载分担方法及装置 |
CN105915465A (zh) * | 2016-06-30 | 2016-08-31 | 华为技术有限公司 | BGP flow-spec表优先级调整的方法、设备及系统 |
US20170012903A1 (en) * | 2015-07-10 | 2017-01-12 | International Business Machines Corporation | Management of a virtual machine in a virtualized computing environment based on a fabric limit |
US9973432B2 (en) | 2015-07-10 | 2018-05-15 | International Business Machines Corporation | Load balancing in a virtualized computing environment based on a fabric limit |
US10002015B2 (en) | 2015-07-10 | 2018-06-19 | International Business Machines Corporation | Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit |
CN109766185A (zh) * | 2019-01-02 | 2019-05-17 | 新华三技术有限公司 | 一种路由表项处理方法及装置 |
CN111884936A (zh) * | 2020-07-22 | 2020-11-03 | 深信服科技股份有限公司 | 一种路由方法、装置及电子设备和存储介质 |
CN114363261A (zh) * | 2021-12-09 | 2022-04-15 | 杭州云豆豆智能科技有限公司 | 一种网络流量调整方法、装置、电子装置和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100226281A1 (en) * | 2009-03-03 | 2010-09-09 | Cisco Technology | Trunking with port aggregation for fabric ports in a fibre channel fabric and attached devices |
US20110022693A1 (en) * | 2009-07-22 | 2011-01-27 | Madhava Rao Cheethirala | Hard zoning on npiv proxy/npv devices |
CN102835077A (zh) * | 2010-03-22 | 2012-12-19 | 思科技术公司 | N端口id虚拟化节点冗余 |
CN103607294A (zh) * | 2013-10-30 | 2014-02-26 | 杭州华三通信技术有限公司 | 一种网络分裂的恢复方法、设备及系统 |
-
2014
- 2014-04-17 CN CN201410156109.4A patent/CN103929367B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100226281A1 (en) * | 2009-03-03 | 2010-09-09 | Cisco Technology | Trunking with port aggregation for fabric ports in a fibre channel fabric and attached devices |
US20110022693A1 (en) * | 2009-07-22 | 2011-01-27 | Madhava Rao Cheethirala | Hard zoning on npiv proxy/npv devices |
CN102835077A (zh) * | 2010-03-22 | 2012-12-19 | 思科技术公司 | N端口id虚拟化节点冗余 |
CN103607294A (zh) * | 2013-10-30 | 2014-02-26 | 杭州华三通信技术有限公司 | 一种网络分裂的恢复方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
冯庆: "NPV交换机流量管理模块的设计和实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490957A (zh) * | 2014-10-11 | 2016-04-13 | 华为技术有限公司 | 一种负载分担方法及装置 |
CN105490957B (zh) * | 2014-10-11 | 2019-05-03 | 华为技术有限公司 | 一种负载分担方法及装置 |
US10002015B2 (en) | 2015-07-10 | 2018-06-19 | International Business Machines Corporation | Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit |
US10002017B2 (en) | 2015-07-10 | 2018-06-19 | International Business Machines Corporation | Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit |
WO2017009732A1 (en) * | 2015-07-10 | 2017-01-19 | International Business Machines Corporation | Manegement of virtual machine in virtualized computing environment based on fabric limit |
CN108028804A (zh) * | 2015-07-10 | 2018-05-11 | 国际商业机器公司 | 基于结构限制的虚拟计算环境中虚拟机的管理 |
US9973432B2 (en) | 2015-07-10 | 2018-05-15 | International Business Machines Corporation | Load balancing in a virtualized computing environment based on a fabric limit |
US9973433B2 (en) | 2015-07-10 | 2018-05-15 | International Business Machines Corporation | Load balancing in a virtualized computing environment based on a fabric limit |
US9990218B2 (en) * | 2015-07-10 | 2018-06-05 | International Business Machines Corporation | Management of a virtual machine in a virtualized computing environment based on a fabric limit |
US10002014B2 (en) * | 2015-07-10 | 2018-06-19 | International Business Machines Corporation | Management of a virtual machine in a virtualized computing environment based on a fabric limit |
US20170012903A1 (en) * | 2015-07-10 | 2017-01-12 | International Business Machines Corporation | Management of a virtual machine in a virtualized computing environment based on a fabric limit |
US20170010909A1 (en) * | 2015-07-10 | 2017-01-12 | International Business Machines Corporation | Management of a virtual machine in a virtualized computing environment based on a fabric limit |
GB2557478A (en) * | 2015-07-10 | 2018-06-20 | Ibm | Manegement of virtual machine in virtualized computing environment based on fabric limit |
CN108028804B (zh) * | 2015-07-10 | 2021-10-08 | 国际商业机器公司 | 基于结构限制的虚拟计算环境中管理虚拟机的方法 |
GB2557478B (en) * | 2015-07-10 | 2021-09-29 | Ibm | Manegement of virtual machine in virtualized computing environment based on fabric limit |
CN105915465A (zh) * | 2016-06-30 | 2016-08-31 | 华为技术有限公司 | BGP flow-spec表优先级调整的方法、设备及系统 |
CN109766185B (zh) * | 2019-01-02 | 2020-12-29 | 新华三技术有限公司 | 一种路由表项处理方法及装置 |
CN109766185A (zh) * | 2019-01-02 | 2019-05-17 | 新华三技术有限公司 | 一种路由表项处理方法及装置 |
CN111884936A (zh) * | 2020-07-22 | 2020-11-03 | 深信服科技股份有限公司 | 一种路由方法、装置及电子设备和存储介质 |
CN114363261A (zh) * | 2021-12-09 | 2022-04-15 | 杭州云豆豆智能科技有限公司 | 一种网络流量调整方法、装置、电子装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103929367B (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103929367A (zh) | 一种负载均衡的方法和装置 | |
EP3949293A1 (en) | Slice-based routing | |
JP2014135721A (ja) | データセンタネットワークのトラフィックを分配するための装置および方法 | |
US20140156906A1 (en) | Virtual Trunking Over Physical Links | |
CN105471740A (zh) | 基于软件定义网络的网关迁徙处理方法及装置 | |
CN102067533A (zh) | 与虚拟接口相关联的端口分组 | |
CN104780088A (zh) | 一种业务报文的传输方法和设备 | |
CN111263373B (zh) | 数据处理方法、控制器和转发设备 | |
CN112753198B (zh) | 在网络中的负载均衡和报文重排序方法及装置 | |
CN104168209A (zh) | 多接入sdn网络报文转发方法和控制器 | |
CN108337179B (zh) | 链路流量控制方法及装置 | |
CN105939267B (zh) | 带外管理方法及装置 | |
CN106411735B (zh) | 一种路由配置方法及装置 | |
CN106130920A (zh) | 一种报文转发方法及装置 | |
CN105681198A (zh) | 一种业务链处理方法、设备及系统 | |
CN104734930B (zh) | Vlan接入vf网络的实现方法及装置、fcf | |
US9590906B2 (en) | Network resource sharing for routing and forwarding information | |
KR20170102104A (ko) | 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템 및 그 방법 | |
CN103532851A (zh) | 分布式链路聚合网络中的数据流处理方法和装置 | |
CN103684965B (zh) | 基于虚拟设备配置的交换设备和报文转发方法 | |
CN103475560A (zh) | 一种用户报文处理方法及装置 | |
JP2014086884A (ja) | ネットワーク機器、方法、及びプログラム | |
CN104283803A (zh) | 一种控制报文转发的方法和装置 | |
KR102092091B1 (ko) | 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램 | |
CN115473765A (zh) | 报文传输方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |