一种存储系统中业务的链路切换方法和存储设备的制造方法

文档序号:10690843阅读:558来源:国知局
一种存储系统中业务的链路切换方法和存储设备的制造方法
【专利摘要】本发明公开了一种存储系统中业务的链路切换方法和存储设备,涉及存储领域,在链路故障时将该链路所承载的业务进行切换,以使该业务不被中断,提高了业务的可靠性。所述存储系统包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分别与至少一个接口卡相连,每个所述接口卡包含至少一个端口;在所述存储系统中预先配置绑定端口组,所述绑定端口组包括来自第一控制器和第二控制器的端口,所述方法包括:若所述第一控制器检测到所述绑定端口组中第一端口的链路发生故障,则在所述绑定端口组中将所述第一端口的状态标记为不可用;从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
【专利说明】
一种存储系统中业务的链路切换方法和存储设备
技术领域
[0001]本发明涉及存储领域,尤其涉及一种存储系统中业务的链路切换方法和存储设备。
【背景技术】
[0002]随着网络应用的快速发展,越来越多的用户面临网络链路稳定性的问题,最直接的手段就是在系统中通过链路聚合技术提供链路冗余功能。
[0003]链路聚合技术主要使用链路汇聚控制协议(Link Aggregat1n ControlProtocol,LACP),LACP是基于电器和电子工程师协会(Institute of Electrical andElectronics Engineer,IEEE)802.3ad标准提出的一种实现链路动态汇聚的协议,通信的双方分别通过链路汇聚控制协议数据单元(Link Aggregat1n Control Protocol DataUnit,LACPDU)与对端设备交互信息进行链路的动态汇聚和解汇聚,实现动态的冗余备份。
[0004]现有技术中,存储设备通过LACP方式在控制器内实现链路聚合,即将同一控制器内的一组端口捆绑在一起作为一个逻辑端口,在该控制器和交换机间形成聚合链路,即将所述一组端口中的每个端口与交换机之间的通信链路聚合成一条逻辑链路,数据传输过程中根据每条物理链路的状态实现冗余路径切换。当所述一组端口中的某个端口故障时,控制器可以快速感知,并使用其他端口的物理链路来承载业务。但是,若该控制器发送故障,则该控制器与所述交换机间的所有物理链路全部断开,就不再存在冗余路径。因此,现有技术中,当存储设备的控制器单点故障时,该控制器的端口对应的业务链路发生故障,业务被迫中断。

【发明内容】

[0005]本发明实施例提供了一种存储系统中业务的链路切换方法和存储设备,可以在链路故障时将该所述链路所承载的业务进行切换,以使所述业务不被中断。
[0006]为了达到上述目的,本发明采用如下技术方案:
[0007]第一方面,提供一种存储系统中业务的链路切换方法,该存储系统包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分别与至少一个接口卡相连,每个接口卡包含至少一个端口 ;在该存储系统中预先配置绑定端口组,该绑定端口组包括来自第一控制器和第二控制器的端口;所述方法包括:
[0008]若所述第一控制器检测到所述绑定端口组中第一端口的链路发生故障,将所述第一端口的状态标记为不可用;
[0009]所述第一控制器从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的所述业务切换到所述第二端口的链路。
[0010]具体地,在所述存储系统中会保存所述绑定端口组的绑定端口组信息。所述绑定端口组信息可以包括:
[0011 ] 绑定端口组标识:用于区分和识别该绑定端口组;
[0012]绑定端口组的附属端口:即该绑定端口组所包含的来自至少2个控制器的多个端P;
[0013]附属端口工作状态:用于表示每个附属端口自身的状态,如可用或不可用;
[0014]附属端口对应链路的状态:于表示每个附属端口所对应链路的状态,如正常或故障;
[0015]绑定端口组MAC地址;
[0016]绑定端口组IP地址。
[0017]这里,所述将第一端口的状态标记为不可用即是在所述的绑定端口组信息中将所述第一端口的工作状态改为不可用;进一步地,将所述第一端口所对应的链路的状态变为故障。
[0018]所述绑定端口组信息在所述存储系统中可以是作为全局信息保存,这样在后续业务开展过程中,所述存储系统中的各个控制器都可以查看、变更所述绑定端口组信息,如当所述绑定端口组中的某附属端口的工作状态发生变化、或附属端口的对应链路的状态发生变化。
[0019]优选地,为了降低所述存储系统中各个控制器间的耦合性,提升各个控制器的处理效率,降低控制器间通信时延,也可以将所述绑定端口组信息分别在所述绑定端口组中各个附属端口所归属的不同控制器本地保存。这样,在后续业务开展过程中,所述各个附属端口所归属的不同控制器可以直接在本地查询、变更所述绑定端口组信息。
[0020]在第一方面的第一种可能的实现方式中,所述方法还包括:第一端口归属于第一控制器,第一控制器检测到所述第一端口的链路发生故障具体为:
[0021 ]若所述第一控制器检测到所述第一端口发生故障或检测到所述第一端口所归属的接口卡发生故障,则判断所述第一端口的链路发生故障。
[0022]在第一方面的第二种可能的实现方式中,所述方法还包括:第一端口归属于所述第一控制器,所述第一控制器检测到第一端口的链路发生故障具体为:
[0023]若第一控制器在预定义的时间阈值内未收到来自对端交换机的链路状态信息,则判断所述第一端口的链路发生故障。
[0024]在第一方面的第三种可能的实现方式中,所述方法还包括:第一端口归属于第二控制器,所述第一控制器检测到第一端口的链路发生故障具体为:
[0025]若第一控制器检测到第二控制器发生故障,则判断所述第一端口的链路发生故障。
[0026]在第一方面的第四种可能实现方式中,所述方法还包括:
[0027]所述第一控制器从所述绑定端口组中随机挑选一个当前状态为可用的端口作为所述第二端口。
[0028]在第一方面的第五种可能实现方式中,所述方法还包括:所述第一控制器挑选所述绑定端口组中当前状态为可用且与所述第一端口归属于同一接口卡的端口作为所述第二端口 ;或者
[0029]若在所述绑定端口组中不存在当前状态为可用且与所述第一端口归属于同一接口卡的端口,则所述第一控制器挑选当前状态为可用且与所述第一端口归属于同一控制器的端口作为所述第二端口;或者
[0030]若在所述绑定端口组中既不存在当前状态为可用且与所述第一端口归属于同一接口卡的端口,也不存在当前状态为可用且与所述第一端口归属于同一控制器的端口,则所述第一控制器挑选所述绑定端口组中当前状态为可用且业务负载最低的端口作为第二端口。
[0031 ]结合第一方面至第一方面第五种可能实现方式,在第一方面第六种可能实现方式中,在存储系统中,第一控制器和第二控制器归属于同一存储设备。
[0032]结合第一方面至第一方面第五种可能实现方式,在第一方面第七种可能实现方式中,存储系统中,第一控制器和第二控制器归属于不同存储设备。
[0033]通过以上描述的方法,当绑定端口组中的所述第一端口的链路出现故障时,可以在所述绑定端口组中挑选状态为可用的第二端口,由所述第二端口的链路来承载所述第一端口所承载的业务。因为在本方法中,所述绑定端口组包含来自不同控制器的多个端口,这样,无论是出现端口自身故障、接口卡故障,交换机侧端口故障,还是出现某个控制器故障的情况,都可以从所述绑定端口组中挑选第二端口,并将本由所述第一端口的链路所承载的业务切换到所述第二端口的链路上以使得所述业务可以继续进行下去,并由此提高了整个存储系统的业务可靠性。
[0034]第二方面,提供了一种存储设备,所述存储设备包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分别与至少一个接口卡相连,每个所述接口卡包含至少一个端口;其中,所述第一控制器包括配置单元、检测单元和切换单元;
[0035]所述配置单元,用于预先配置绑定端口组,所述绑定端口组包括来自第一控制器和第二控制器的端口 ;
[0036]所述检测单元,用于检测第一端口的链路发生故障,将所述第一端口的状态标记为不可用;
[0037]所述切换单元,用于从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
[0038]可选地,当所述第一端口归属于所述第一控制器时,所述检测单元检测到所述第一端口发生故障或检测到所述第一端口所归属的接口卡发生故障,则判断所述第一端口的链路发生故障。
[0039]可选地,当所述第一端口归属于所述第一控制器,所述检测单元还用于当所述第一控制器在预定义的时间阈值内未收到来自对端交换机的链路状态信息时,判断所述第一端口的链路发生故障。
[0040]可选地,所述第一端口归属于所述第二控制器,所述检测单元还用于在检测到第二控制器发生故障,则判断所述第一端口的链路发生故障。
[0041]第三方面,提供了一种存储设备,包括:第一控制器、第二控制器、存储器、通信接口和总线,所述第一控制器、第二控制器、存储器和通信接口通过所述总线相连;所述存储器用于存储操作系统和程序,其中,所述程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。所述第一控制器和所述第二控制器用于执行所述存储器的指令,并且当所述第一控制器或所述第二控制器执行所述存储器存储的指令时,该执行使得所述第一控制器或所述第二控制器执行第一方面或第一方面的任意可能的实现方式中的方法。
[0042]第四方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
[0043]通过以上描述的方法及存储设备,当绑定端口组中的所述第一端口的链路出现故障时,可以在所述绑定端口组中挑选状态为可用的第二端口,由所述第二端口的链路来承载所述第一端口所承载的业务。因为所述绑定端口组包含来自不同控制器的多个端口,这样,无论是出现端口自身故障、接口卡故障,交换机侧端口故障,还是出现某个控制器故障的情况,都可以从所述绑定端口组中挑选第二端口,并将本由所述第一端口的链路所承载的业务切换到所述第二端口的链路上以使得所述业务可以继续进行下去,并由此提高了整个存储系统的业务可靠性。
【附图说明】
[0044]图1为本发明实施例提供的一种存储系统示意图;
[0045]图1A为本发明实施例提供的一种存储设备示意图;
[0046]图1B为本发明实施例提供的一种实现绑定端口组的示意图;
[0047]图2为本发明实施例提供的一种创建绑定端口组流程的示意图;
[0048]图2A为本发明实施例提供的一种保存绑定端口组信息的数据结构的示意图;
[0049]图3为本发明实施例提供的一种业务处理流程图;
[0050]图3A为本发明实施例提供的一种保存链路业务信息的数据结构的示意图;
[0051]图4为本发明实施例提供的一种存储系统中业务的链路切换方法400的示意性流程图;
[0052]图5为本发明实施例提供的一种业务的链路切换方法的流程图;
[0053]图6为本发明实施例提供的另一种业务的链路切换方法的流程图;
[0054]图7为本发明实施例提供的另一种业务的链路切换方法的流程图;
[0055]图8为本发明实施例提供的一种存储设备的结构示意图;
[0056]图9为本发明实施例提供的另一种存储设备的结构示意图。
【具体实施方式】
[0057]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0058]本发明实施例提供的一种存储系统中业务的链路切换的方法,应用在存储系统中,该存储系统可以是由2个或2个以上存储设备构成的存储集群系统,其中每个存储设备包含至少I个控制器,每个控制器分别与至少一个接口卡相连,如主机总线适配器(HostBus Adapter,HBA)卡,每个接口卡包含至少一个端口,所述控制器通过所述端口与其它实体通信,如交换机、服务器等。图1所示为一种存储系统的示意图,该存储系统为由存储设备I和存储设备2构成的存储集群系统,所述存储设备I包含控制器A和控制器B,分别通过端口Al、A2、B1、B2与交换机和服务器通信;所述存储设备2包含控制器C和控制器D,分别通过端口C1、C2、D1、D2与所述交换机和服务器通信(图中未显示标出接口卡)。本领域的技术人员可以理解的是,所述控制器是通过在其所包含的端口与所述交换机的端口间建立通信链路以实现控制器和所述交换机的通信。如所述控制器A、控制器B分别建立端口 A1、A2、B1、B2与所述交换机的端口 S1、S2、S3、S4端口间的链路,同样的,所述交换机也通过SO端口建立与所述服务器Ql端口的通信链路,这样,所述存储设备I就可以和所述交换机、服务器通信。本发明实施例也可以应用于由I个存储设备构成的存储系统,该存储设备包括2个或2个以上的控制器。如图1A所示,该存储设备包含4个控制器,每个控制器分别与一个接口卡(接口卡在图中没有显示出现)相连,每个接口卡包含两个端口,所述存储设备通过其包含的端口与对端设备通信,如交换机或服务器。后续具体以图1所示应用场景详细描述本发明实施例。
[0059]本发明提供的实施例需在存储系统中预先将多个端口组成绑定端口组,这里所述多个端口来自不同控制器,则该绑定端口组中每个端口对应的通信链路(即该端口与对端交换机端口间的通信链路)形成逻辑的聚合链路,则所述控制器通过所述聚合链路与所述对端交换机通信,如图1B所示的I个例子,是将该存储系统中的所有控制器的全部端口组成一个绑定端口组。
[0060]绑定端口组的创建方法如图2所示,所述方法包括:
[0061]S201、主控制器将来自不同控制器的多个端口组成绑定端口组。
[0062]在如图1所示的存储系统中,由主控制器来负责创建绑定端口组。所述主控制器可以是存储系统所包含的4个控制器中的任一控制器,示例地,可以是控制器标识最小的控制器(即控制器A),本发明实施例对此不作限制。另外,本领域技术人员可以理解的是,当原主控制器故障时,所述存储系统可以自动选定其它控制器作为新的主控制器。
[0063]所述主控制器在创建绑定端口组时,将不同控制器的多个端口组成I个绑定端口组,所述多个端口为该绑定端口组的附属端口。如图1B所示即为将所述存储系统中所有控制器的所有端口组成I个绑定端口组。当然,也可以根据业务需要创建多个绑定端口组,每个绑定端口组包含至少2个端口,所述至少2个端口来自不同的控制器,需要明确的是,在同一时刻,同一个控制器的同一端口仅能在一个绑定端口组中,不能被包含到多个绑定端口组中。
[0064]S202、主控制器生成绑定端口组信息。
[0065]所述绑定端口组信息可以包括:
[0066]绑定端口组标识:用于区分和识别该绑定端口组;
[0067]绑定端口组的附属端口:即该绑定端口组所包含的来自至少2个控制器的多个端P;
[0068]附属端口工作状态:用于表示每个附属端口自身的状态,如可用或不可用;
[0069]附属端口对应链路的状态:于表示每个附属端口所对应链路的状态,如正常或故障;
[0070]绑定端口组MAC地址(MediaAccess Control Address ,MAC Address);
[0071 ]绑定端口组IP地址(Internet Protocol Address) 0
[0072]可选地,所述绑定端口组信息还可以包括:
[0073]绑定端口组的虚拟局域网(VirtualLocal Area Network,VLAN);
[0074]附属端口的链路统计信息:用于记录每个附属端口的工作链路信息。
[0075]图2A为本发明实施例给出的一种保存绑定端口组信息的数据结构示意图,本领域技术人员可以理解的是,在实际应用中,可以根据业务需要灵活采用各种不同的数据结构来记录所述绑定端口组信息,都在本发明的保护范围内,本发明对所述数据结构不做具体限定。
[0076]可选地,所述主控制器在创建绑定端口组的过程中会校验附属端口的合法性,SP校验该附属端口是否已加入其它绑定端口组,以及校验绑定端口组的MAC地址和IP地址的合法性。
[0077]在所述绑定端口组信息被生成后,在所述存储系统中可以将所述绑定端口组信息作为全局信息保存,这样在后续业务开展过程中,所述存储系统中的各个控制器都可以查看、变更所述绑定端口组信息,如当所述绑定端口组中的某附属端口的工作状态发生变化、或附属端口的对应链路的状态发生变化。
[0078]S203、(可选)所述主控制器将所述绑定端口组信息发送给所述不同控制器。
[0079]S204、(可选)所述不同控制器分别本地保存所述绑定端口组信息。
[0080]优选地,为了降低所述存储系统中各个控制器间的耦合性,提升各个控制器的处理效率,降低控制器间通信时延,所述主控制器也可以将所述绑定端口组信息分别发送给所述绑定端口组中各个附属端口所归属的不同控制器,由其分别本地保存所述绑定端口组信息。这样,在后续业务开展过程中,所述控制器可以直接在本地查询、变更所述绑定端口组信息。
[0081]本领域技术人员可以理解的是,在所述主控制器创建绑定端口组后,基于LACP技术,该绑定端口组中每个附属端口所归属的控制器分别通过该附属端口向对端交换机发送链路汇聚协议数据单元(Link Aggregat1n Control Protocol Data Unit,LACPDU),向所述对端交换机通知自身的系统优先级、端口优先级、端口号、操作key值等信息。经过协商后,可以将所述主控制器创建的绑定端口组中每个附属端口与所述交换机的相应端口建立的通信链路聚合成I条逻辑的聚合链路。该具体实现过程为LACP的现有技术,此处不再赘述。
[0082]在所述主控制器完成绑定端口组创建并与对端交换机协商后,所述存储系统可以基于所述绑定端口组的聚合链路与对端交换机以及服务器实现某业务的数据传输。如图3所示,具体包括:
[0083 ] S301、服务器向交换机发送业务请求消息。
[0084]在所述业务开展的过程中,所述服务器向存储系统发送业务请求消息,所述的业务请求消息可以是读请求,也可以是写请求,或是其它类别的业务相关消息,本发明对此不做限定。
[0085]S302、交换机将所述业务请求消息发送给控制器。
[0086]本发明实施例中,所述交换机在收到来自服务器的所述业务请求消息后,若所述交换机确认其与存储系统间基于上述实施例建立了绑定端口组并建立了聚合链路,则可以根据所述业务请求消息中携带的服务器MAC地址和IP地址,利用哈希算法从所述聚合链路内选择I条通信链路将所述业务请求消息发送给所述存储系统的控制器,这里,所述控制器为所述通信链路所对应的端口所归属的控制器。
[0087]S303、所述控制器接收并处理所述业务请求消息,生成链路业务信息。
[0088]在明确了由某具体通信链路来承载所述业务请求消息所对应的业务后,所述控制器生成链路业务信息。所述链路业务信息可以包括:
[0089]工作控制器标识:即被选定的用于处理所述业务的控制器,也就是所述通信链路对应端口所归属的控制器;
[0090]绑定端口组标识:即具体承载所述业务的绑定端口组的标识,也就是所述通信链路的端口所归属的绑定端口组的标识;
[0091]绑定端口组的附属端口:即用来承载所述业务的通信链路对应的控制器侧的端口,该端口归属于所述绑定端口组;
[0092]进一步地,所述链路业务信息还可以包括通信四元组信息、网络传输层信息、应用层协议标识、应用层业务信息、时间戳等信息中的任意I个或多个。
[0093]本发明实施例中,所述链路业务信息在新的业务启动之时或任意已存在的业务的链路发生变化时进行更新。
[0094]图3A所示为一种记录并保存链路业务信息的数据结构的示意图,本领域技术人员可以理解的是,在实际应用中,可以根据业务需要灵活采用各种不同的数据结构来记录所述链路业务信息,都在本发明的保护范围内,本发明对所述数据结构不做具体限定。
[0095]上述实施例结合图1至图3A描述的内容,介绍了在由多个存储设备构成的集群存储系统中、或由包含至少2个控制器的存储设备构成的存储系统中,通过创建包含来自不同控制器的多个端口的绑定端口组,并将所述绑定端口组中的来自不同控制器的多个端口所对应的通信链路聚合成I条逻辑的聚合链路来提供业务,在业务开展过程中,可能因为端口本身、或是接口卡、或是控制器、或是交换机端发生故障从而导致某条通信链路不能提供业务,则可以从所述绑定端口组中重新挑选端口并通过所述端口对应的通信链路来承载该业务,以使得所述业务在上述任一故障的场景下都可以继续进行,由此进一步提升了业务的可靠性。
[0096]如图4所示,为本发明实施例提供的一种存储系统中业务的链路切换的方法400的示意性流程图,该方法400包括:
[0097]S410、检测到绑定端口组中第一端口的链路发生故障,将所述第一端口的工作状态标记为不可用。
[0098]本发明实施例中,第一控制器检测所述绑定端口组中第一端口对应的链路出现故障。具体的,在如下几种故障场景中会出现所述第一端口的链路故障:第一端口自身故障、或第一端口所在接口卡故障、或与所述第一端口相连的交换机侧端口故障,这几种场景下,所述第一控制器,即所述第一端口所归属的控制器,可以直接检测出来具体故障并判断所述第一端口的链路故障。
[0099]此外,如果第一端口所归属的控制器自身出现故障也会导致第一端口的链路故障,在这种场景下,所述第一控制器则是与所述第一端口归属的控制器有通信关系的控制器。
[0100]当所述第一控制器检测到所述第一端口的链路故障后,在绑定端口组信息中将所述第一端口的状态标记为不可用。
[0101]S420、从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
[0102]本发明实施例中,所述第一控制器可以从所述绑定端口组中当前状态为可用的附属端口中随机挑选I个端口作为所述第二端口,将原本通过所述第一端口对应的链路来承载的业务切换到所述第二端口对应的链路上来承载。优选地,所述第一控制器也可以是按照最佳匹配原则从当前状态为可用的附属端口中挑选I个端口作为所述第二端口。所述的最佳匹配准则可以是:
[0103]准则A:若所述绑定端口组中当前状态为可用的附属端口中存在I个端口,该端口与所述第一端口归属于同一接口卡,则优先挑选此端口作为第二端口 ;
[0104]准则B:在不存在满足准则A的附属端口的情况下,若所述绑定端口组中当前状态为可用的附属端口中存在I个端口,该端口与所述第一端口归属于同一控制器,则优先挑选此端口作为第二端口;
[0105]准则C:在不存在满足准则A和B的附属端口的情况下,从所述绑定端口组中当前状态为可用的附属端口中挑选业务负载最低的附属端口作为第二端口。
[0106]进一步地,在准则A中若发现所述绑定端口组中当前存在多个状态为可用的附属端口且与所述第一端口归属于同一接口卡,则可以从所述多个附属端口中随机挑选I个附属端口作为第二端口,也可以是挑选业务负载最低的附属端口作为第二端口。同理,在准则B中若发现所述绑定端口组中当前存在多个状态为可用的附属端口且与所述第一端口归属于同一控制器,则可以从所述多个附属端口中随机挑选I个附属端口作为第二端口,也可以是挑选业务负载最低的附属端口作为第二端口。
[0107]通过以上描述的方法400,当绑定端口组中的所述第一端口的链路出现故障时,可以在所述绑定端口组中挑选状态为可用的第二端口,由所述第二端口的链路来承载所述第一端口所承载的业务。因为在本发明实施例中,所述绑定端口组包含来自不同控制器的多个端口,这样,即使出现某个控制器故障的情况,依然可以从所述绑定端口组中挑选来自其他控制器的第二端口以承载本由所述第一端口承载的业务,由此提高了整个存储系统的业务可靠性。
[0108]接下来,结合具体故障场景,介绍本发明实施例中提供的一种存储系统中业务的链路切换的方法。
[0109]如图5所示,该场景为第一端口自身故障或所述第一端口所归属的接口卡故障而导致的第一端口的链路故障,在该场景下所述方法具体包括:
[0110]S501、第一控制器检测第一端口的链路故障。
[0111]当第一端口自身出现故障或者是第一端口所归属的接口卡出现故障,其归属的控制器,即第一控制器,可以直接检测出来。由此,所述第一控制器判断所述第一端口的链路故障。需要说明的是,第一控制器如何检测其所包含的接口卡或端口是否发生故障是现有技术,在本实施例中不再赘述。
[0112]S502、所述第一控制器更新绑定端口组信息。
[0113]所述第一控制器更新绑定端口组信息,即将所述第一端口的工作状态变为不可用。进一步地,将所述第一端口所对应的链路的状态变为故障。可选地,所述第一控制器也可以是在检测所述第一端口自身发生故障或第一端口所属接口卡发生故障时,生成节点状态变更事件,所述节点状态变更事件用于指示所述第一端口故障或第一端口所属接口卡故障。则所述第一控制器在更新所述绑定端口组信息时,可以根据所述节点状态变更事件将所述第一端口的工作状态变为不可用,将所述第一端口所对应的链路的状态变为故障。
[0114]S503、(可选)所述第一控制器通知第二控制器所述第一端口的链路故障。
[0115]S504、(可选)第二控制器更新本地保存的绑定端口组信息。
[0116]本发明实施例中,所述步骤S503、S504为可选步骤。具体地,若所述绑定端口组信息是全局保存,则只需要所述第一控制器更新即可,不需要再执行所述步骤S503、S504;若所述绑定端口组信息被所述绑定端口组中每个附属端口所归属的控制器分别本地保存,则执行所述步骤S503、S504。所述第二控制器为绑定端口组中各个附属端口所归属的控制器中除第一控制器外的其它控制器,所述第二控制器可以是I个或多个。所述第一控制器通知第二控制器所述第一端口的链路故障,如可以是所述第一控制器向所述第二控制器发送链路变化事件,所述链路变化事件用于指示所述第一端口的链路故障。则所述第二控制器根据所述链路变化事件,在本地保存的绑定端口组信息中将所述第一端口的工作状态变为不可用,将所述第一端口所对应的链路的状态变为故障。
[0117]S505、所述第一控制器从所述绑定端口组中挑选第二端口。
[0118]所述第一控制器可以根据所述绑定端口组信息的记载确认当前处于可用状态的附属端口,如果当前只有唯一一个附属端口处于可用状态,则直接将该附属端口作为第二端口;如果当前有多个附属端口都处于可用状态,则所述第一控制器可以是随机挑选I个附属端口作为第二端口,也可以是根据如图4所示实施例所记录的最佳匹配准则来挑选第二端口。
[0119]S506、所述第一控制器将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
[0120]S507、所述第一控制器更新链路业务信息。
[0121]所述第一控制器更新所述第一端口的链路所承载的业务的链路业务信息,具体为将所述链路业务信息中的工作控制器标识更新为所述第二端口所归属的控制器标识;将绑定端口组附属端口更新为所述第二端口。
[0122]在该场景中,当第一端口自身发生故障或第一端口所归属的接口卡发生故障,可以在所述绑定端口组中挑选状态为可用的第二端口,由所述第二端口的链路来承载所述第一端口所承载的业务,由此提高了整个存储系统的业务可靠性。
[0123]图6为绑定端口组中与端口相连的交换机侧端口故障或物理链路故障时的链路切换的流程图,如图所示,所述方法包括:
[0124]S601、第一控制器检测到与第一端口相连的交换机侧端口故障。
[0125]绑定端口组关系形成后,在控制器端口和交换机对端端口间会形成聚合链路,交换机按照预定义的时间阈值周期性向控制器通告交换机的链路状态信息,所述预定义的时间阈值可以是10秒或者其它任意设定的值,本发明实施例对此不作具体限定。当与所述第一端口相连的交换机侧端口出现故障或者所述第一端口与所述交换机侧端口间的物理链路出现故障,则所述第一端口归属的控制器,即第一控制器,在所述预定义的时间阈值内无法收到来自交换机的链路状态信息,则所述第一控制器判断所述第一端口对应的链路故障。需要说明的是,交换机按照预定义的时间阈值定期通告交换机的链路状态的过程是现有技术,在本实施例中不再赘述。
[0126]S602、所述第一控制器更新绑定端口组信息。
[0127]所述第一控制器更新绑定端口组信息,即将所述第一端口的工作状态为不可用,进一步地,将所述第一端口所对应的链路的状态变为故障。可选地,所述第一控制器也可以是在检测所述与第一端口相连的交换机侧端口故障时,生成交换机端口链路变化事件,所述交换机端口链路变化事件用于指示所述与第一端口相连的交换机侧端口的链路出现故障。则所述第一控制器在更新所述绑定端口组信息时,可以根据所述交换机端口链路变化事件将所述第一端口的工作状态变为不可用,将所述第一端口所对应的链路的状态变为故障。
[0128]S603、(可选)所述第一控制器通知第二控制器所述第一端口的链路故障。
[0129]S604、(可选)第二控制器更新本地保存的绑定端口组信息。
[0130]本发明实施例中,所述步骤S603、S604为可选步骤。具体地,绑定端口组信息可以为全局保存,也可以为每个附属端口所归属的控制器分别本地保存,其具体实现过程与步骤S503、S504描述内容相同,在此不再赘述。
[0131]S605、所述第一控制器从所述绑定端口组中挑选第二端口。
[0132]S606、所述第一控制器将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
[0133]S607、所述第一控制器更新链路业务信息;
[0134]其中,步骤S605至步骤S607中处理过程与步骤S505至步骤S507中所述第二端口的选择方法、更新所述链路业务信息描述内容相同,在此不再赘述。
[0135]通过上述步骤S601至S607步骤的描述,在该场景中,当与第一端口相连的交换机侧端口出现故障或者所述第一端口与所述交换机侧端口间的物理链路出现故障,可以在所述绑定端口组中挑选状态为可用的第二端口,由所述第二端口的链路来承载所述第一端口所承载的业务,由此提高了整个存储系统的业务可靠性。
[0136]在另一个具体实施例中,如果第一端口所归属的控制器出现故障,也会导致第一端口的链路故障,图7为该场景中链路切换处理的流程图,如图所示,所述链路切换管理方法包括:
[0137]S701、第一控制器检测到第一端口的链路发生故障。
[0138]本实施例中,所述第一端口归属于第二控制器,所述第一控制器与所述第二控制器有通信关系,若所述第二控制器出现故障,则所述第一控制器可以检测到所述第二控制器的故障,示例地,所述第一控制器可以使通过心跳检测机制来检测所述第二控制器的故障。当所述第一控制器检测到所述第二控制器故障,由此判断所述第一端口对应的链路故障。
[0139]S702、所述第一控制器更新绑定端口组信息。
[0140]所述更新绑定端口组信息,即将所述第一端口的工作状态变为不可用,进一步地,将所述第一端口所对应的链路的状态变为故障。可选地,所述第一控制器检测到所述第二控制器发生故障时,生成节点状态变更事件,所述节点变更事件用于指示所述第二控制器故障。则所述第一控制器在更新所述绑定端口组信息时,可以根据所述节点状态变更事件将所述第一端口的工作状态变为不可用,将所述第一端口所对应的链路的状态变为故障。
[0141]S703、(可选)所述第一控制器通知绑定端口组中其它控制器所述第一端口的链路故障。
[0142]S704、(可选)所述其它控制器更新本地保存的绑定端口组信息。
[0143]本实施例中,所述步骤S703、S704为可选步骤。具体地,若所述绑定端口组信息是全局保存,则只需要所述第一控制器更新即可,不需要再执行所述步骤S703、S704;若所述绑定端口组信息被所述绑定端口组中每个附属端口所归属的控制器分别本地保存,则执行所述步骤S703、S704。所述第二控制器为发生故障的控制器,所述其它控制器为绑定端口组中除所述第一控制器和所述第二控制器外未发生故障的控制器,所述其它控制器可以是I个或多个。所述第一控制器通知所述其它控制器所述第一端口的链路故障,如可以是所述第一控制器向所述其它控制器发送链路变化事件,所述链路变化事件用于指示所述第一端口的链路故障。则所述其它控制器根据所述链路变化事件,在本地保存的绑定端口组信息中将所述第一端口的工作状态变为不可用,将所述第一端口所对应的链路的状态变为故障。
[0144]S705、所述第一控制器从所述绑定端口组中挑选第二端口。
[0145]S706、所述第一控制器将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
[0146]S707、所述第一控制器更新链路业务信息。
[0147]其中,步骤S703至步骤S705中处理过程与步骤S505至步骤S507中所述第二端口的选择方法、更新所述链路业务信息描述内容相同,在此不再赘述。
[0148]在本实施例中,所述绑定端口组包含来自不同控制器的多个端口,当某个控制器发生故障时,可以从所述绑定端口组中挑选工作状态为可用的第二端口以承载所述第一端口所承载的业务,该第二端口归属于其它控制器,由此提高了整体存储系统的业务可靠性。
[0149]综上所述,在绑定端口组中任一端口故障、所述任一端口所归属的接口卡故障、与所述任一端口连接的交换机侧端口故障、以及所述任一端口归属的控制器故障的场景中,本发明实施例中提供的方法均能够从绑定端口组中挑选状态为可用的端口以承载该端口的业务,由此提高了整体存储系统的可靠性。
[0150]值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
[0151]本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
[0152]上文中结合图1至图7,详细描述了根据本发明实施例所提供的存储系统中业务链路切换的方法,下面将结合图8至图9,描述根据本发明实施例所提供的存储系统中业务链路的存储设备。
[0153]图8为本发明实施例提供的一种存储设备800,所述存储设备包含第一控制器和第二控制器,其中所述第一控制器和所述第二控制器分别与第一接口卡和第二接口卡相连,所述第一接口卡和所述第二接口卡又分别包含至少一个端口;其中,所述第一控制器包括配置单元801,检测单元802和切换单元803:
[0154]所述配置单元801,用于预先配置绑定端口组,所述绑定端口组包括来自第一控制器和第二控制器的端口;
[0155]所述检测单元802,用于检测第一端口的链路发生故障,将第一端口的状态标记为不可用。
[0156]所述切换单元803,用于从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的业务切换到所述第二端口的链路。
[0157]可选地,当所述第一端口归属于所述第一控制器时,所述检测单元802检测到所述第一端口发生故障或检测到所述第一端口所归属的接口卡发生故障,则判断所述第一端口的链路发生故障。
[0158]可选地,当所述第一端口归属于所述第一控制器,所述检测单元802还用于当所述第一控制器在预定义的时间阈值内未收到来自对端交换机的链路状态信息时,判断所述第一端口的链路发生故障。
[0159]可选地,所述第一端口归属于所述第二控制器,所述检测单元802还用于在检测到第二控制器发生故障,则判断所述第一端口的链路发生故障。
[0160]所述切换单元803从所述绑定端口组中挑选状态为可用的第二端口具体可以参照上述图4所示的方法实施例中描述的准则进行挑选,此处不再赘述。
[0161]应理解的是,根据本发明实施例的存储设备800可对应于执行本发明实施例中的方法400,并且存储设备800中的各个单元的上述和其它操作和/或功能分别为了实现图1至图7中的各个方法的相应流程,为了简洁,在此不再赘述。
[0162]通过上述存储设备的描述,在绑定端口组中任一端口故障、所述任一端口归属的接口卡故障、与所述任一端口连接的交换机侧端口故障、以及所述任一端口归属的控制器故障场景中,本发明实施例提供的存储设备可以在绑定端口组中挑选状态为可用的端口所对应的链路来承载业务,提高存储系统可靠性。
[0163]图9为根据本发明实施例的一种存储设备900的不意图,如图所不,所述存储设备900包括第一控制器901、第二控制器902、存储器903、通信接口 904和总线905。其中,第一控制器901与至少一个第一接口卡906通过所述总线905进行通信,第二控制器与至少一个第二接口卡907通过所述总线905相通信,所述第一接口卡906和所述第二接口卡907分别包括至少I个端口。第一控制器901、第二控制器902、存储器903、通信接口904通过总线905实现彼此之间的通信。
[0164]第一控制器901和第二控制器902可以采用通用的中央处理I器(CentralProcessing Un i t,CPU),微处理器,应用专用集成电路(App I i cat i on SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现前述本发明方法实施例中所提供的技术方案。
[0165]存储器903可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器903可以存储操作系统和程序908,其中,所述程序908是用于实现本发明前述方法实施例提供的任一可选技术方案的程序代码,并由第一控制器901来执行。
[0166]对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0167]本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0168]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM、RAM、磁碟、光盘等。
[0169]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0170]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。本文中应用了具体个例对本发明的原理及实施方式进行了闸述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种存储系统中业务的链路切换的方法,其特征在于,所述存储系统包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分别与至少一个接口卡相连,每个所述接口卡包含至少一个端口 ;在所述存储系统中预先配置绑定端口组,所述绑定端口组包括来自第一控制器和第二控制器的端口 ;所述方法包括: 若所述第一控制器检测到所述绑定端口组中第一端口的链路发生故障,将所述第一端口的状态标记为不可用; 所述第一控制器从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的所述业务切换到所述第二端口的链路。2.如权利要求1所述的方法,其特征在于,所述第一端口归属于所述第一控制器,所述第一控制器检测到所述第一端口的链路发生故障具体为: 若所述第一控制器检测到所述第一端口发生故障或检测到所述第一端口所归属的接口卡发生故障,则判断所述第一端口的链路发生故障。3.如权利要求1所述的方法,其特征在于,所述第一端口归属于所述第一控制器,所述第一控制器检测到所述第一端口的链路发生故障具体为: 若所述第一控制器在预定义的时间阈值内未收到来自对端交换机的链路状态信息,则判断所述第一端口的链路发生故障。4.如权利要求1所述的方法,其特征在于,所述第一端口归属于所述第二控制器,所述第一控制器检测到所述第一端口的链路发生故障具体为: 若所述第一控制器检测到所述第二控制器发生故障,则判断所述第一端口的链路发生故障。5.如权利要求1所述的方法,其特征在于,所述第一控制器从所述绑定端口组中挑选状态为可用的第二端口具体为: 从所述绑定端口组中随机挑选一个当前状态为可用的端口作为所述第二端口。6.如权利要求1所述的方法,其特征在于,所述第一控制器从所述绑定端口组中挑选状态为可用的第二端口具体为: 挑选所述绑定端口组中当前状态为可用且与所述第一端口归属于同一接口卡的端口作为所述第二端口;或者 若在所述绑定端口组中不存在当前状态为可用且与所述第一端口归属于同一接口卡的端口,则挑选当前状态为可用且与所述第一端口归属于同一控制器的端口作为所述第二端口 ;或者 若在所述绑定端口组中既不存在当前状态为可用且与所述第一端口归属于同一接口卡的端口,也不存在当前状态为可用且与所述第一端口归属于同一控制器的端口,则挑选所述绑定端口组中当前状态为可用且业务负载最低的端口作为第二端口。7.如权利要求1至6中任一所述方法,其特征在于,在所述存储系统中,所述第一控制器和所述第二控制器归属于同一存储设备。8.如权利要求1至6中任一所述方法,其特征在于,所述存储系统中,所述第一控制器和所述第二控制器归属于不同存储设备。9.一种存储设备,其特征在于,所述存储设备包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分别与至少一个接口卡相连,每个所述接口卡包含至少一个端口;其中,所述第一控制器包括配置单元、检测单元和切换单元; 所述配置单元,用于预先配置绑定端口组,所述绑定端口组包括来自第一控制器和第二控制器的端口 ; 所述检测单元,用于检测第一端口的链路发生故障,将所述第一端口的状态标记为不可用; 所述切换单元,用于从所述绑定端口组中挑选状态为可用的第二端口,将所述第一端口的链路所承载的业务切换到所述第二端口的链路。10.如权利要求9所述的存储设备,其特征在于,所述第一端口归属于所述第一控制器,则所述检测单元检测到所述第一端口的链路发生故障具体为: 若所述检测单元检测到所述第一端口发生故障或检测到所述第一端口所归属的接口卡发生故障,则判断所述第一端口的链路发生故障。11.如权利要求9所述的存储设备,其特征在于,所述第一端口归属于所述第一控制器,所述检测单元检测到所述第一端口的链路发生故障具体为: 若所述检测单元检测到所述第一控制器在预定义的时间阈值内未收到来自对端交换机的链路状态信息,则判断所述第一端口的链路发生故障。12.如权利要求9所述的存储设备,其特征在于,所述第一端口归属于所述第二控制器,所述检测单元检测到所述第一端口的链路发生故障具体为: 若所述检测单元检测到所述第二控制器发生故障,则判断所述第一端口的链路发生故障。13.如权利要求9所述的存储设备,其特征在于,所述切换单元从所述绑定端口组中挑选状态为可用的第二端口具体为: 所述切换单元从所述绑定端口组中随机挑选一个当前状态为可用的端口作为所述第二端口。14.如权利要求9所述的存储设备,其特征在于,所述切换单元从所述绑定端口组中挑选状态为可用的第二端口具体为: 所述切换单元挑选所述绑定端口组中当前状态为可用且与所述第一端口归属于同一接口卡的端口作为所述第二端口 ;或者 若在所述绑定端口组中不存在当前状态为可用且与所述第一端口归属于同一接口卡的端口,则所述切换单元挑选当前状态为可用且与所述第一端口归属于同一控制器的端口作为所述第二端口;或者 若在所述绑定端口组中既不存在当前状态为可用且与所述第一端口归属于同一接口卡的端口,也不存在当前状态为可用且与所述第一端口归属于同一控制器的端口,则所述切换单元挑选所述绑定端口组中当前状态为可用且业务负载最低的端口作为第二端口。
【文档编号】H04L12/24GK106059791SQ201610319322
【公开日】2016年10月26日
【申请日】2016年5月13日
【发明人】冷超
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1