一种路径切换的方法及装置与流程

文档序号:18629965发布日期:2019-09-06 23:29阅读:114来源:国知局
一种路径切换的方法及装置与流程

本申请涉及存储领域,特别涉及一种路径切换的方法及装置。



背景技术:

在san(storageareanetwork,存储区域网络)网络中,多控存储设备的多个控制器通常可以通过不同的端口接入san网络,其中,控制器上的端口可称为目标端口(targetport)。服务端(比如:业务服务器)也可以通过多个不同的端口接入san网络,其中,服务端上的端口可称为起始端口(initiatorport)。

服务端上的起始端口与控制器上的目标端口可以构成多种连接关系。参见图1,为本申请示出的一种san网络的架构示意图,如图1所示,服务端(业务服务器)上具有两个起始端口,控制器1上有两个目标端口,控制器2上有两个目标端口。图1的网络架构中起始端口与目标端口的连接关系有:p1-p9、p1-p11、p2-p12和p2-p10。

进一步地,起始端口、目标端口和多控存储设备上的lun(logicalunitnumber,逻辑单元号)构成多条服务端访问lun的路径。

如果任一控制器发生异常,则服务端无法通过该控制器上的目标端口所在的路径访问lun,服务端需要重新选择可用的路径。

然而,现有技术切换路径耗时过长,可能对服务端上的业务稳定性、连续性造成重大影响。



技术实现要素:

有鉴于此,本申请提供一种路径切换的方法及装置,用以更快捷地切换路径,减少因控制器异常对服务端上的业务产生的影响。

具体地,本申请是通过如下技术方案实现的:

一种路径切换的方法,应用于多控存储设备,所述多控存储设备包括第一控制器和第二控制器,所述方法包括:

所述第一控制器确定自身发生故障;

所述第一控制器将本地的所有目标端口对应的物理链路断开,以由服务端重新选择与所述第二控制器之间的路径访问所述多控存储设备。

在所述路径切换的方法中,所述第一控制器确定自身发生故障,包括:

所述第一控制器通过系统内核确定本地的各业务模块是否存在异常;

若任一业务模块存在异常,将所述第一控制器的运行状态置为异常状态;其中,所述运行状态包括正常状态和异常状态;

所述第一控制器确定所述第一控制器发生故障。

在所述路径切换的方法中,所述第一控制器的系统内核被预设对应的捕获内核;

所述第一控制器确定自身发生故障,包括:

当所述第一控制器的系统内核发生故障,触发所述捕获内核启动;

所述第一控制器确定所述第一控制器发生故障。

在所述路径切换的方法中,所述第一控制器将本地的所有目标端口对应的物理链路断开,包括:

所述第一控制器通过所述系统内核加载hba驱动,并利用所述hba驱动关闭所述第一控制器的hba的fcport信号发送功能,以断开所述第一控制器的所有目标端口对应的物理链路。

在所述路径切换的方法中,所述第一控制器将本地的所有目标端口对应的物理链路断开,包括:

所述第一控制器通过所述捕获内核加载hba驱动,并利用所述hba驱动关闭所述第一控制器的hba的fcport信号发送功能,以断开所述第一控制器的所有目标端口对应的物理链路。

一种路径切换的装置,应用于多控存储设备,所述多控存储设备包括第一控制器和第二控制器,所述装置包括:

确定单元,用于确定所述第一控制器发生故障;

处理单元,将所述第一控制器的所有目标端口对应的物理链路断开,以由服务端重新选择与所述第二控制器之间的路径访问所述多控存储设备。

在所述路径切换的装置中,所述确定单元,进一步用于:

通过系统内核确定所述第一控制器的各业务模块是否存在异常;

若任一业务模块存在异常,将所述第一控制器的运行状态置为异常状态;其中,所述运行状态包括正常状态和异常状态;

确定所述第一控制器发生故障。

在所述路径切换的装置中,所述第一控制器的系统内核被预设对应的捕获内核;

所述确定单元,进一步用于:

当所述第一控制器的系统内核发生故障,触发所述捕获内核启动;

确定所述第一控制器发生故障。

在所述路径切换的装置中,所述处理单元,进一步用于:

通过所述系统内核加载hba驱动,并利用所述hba驱动关闭所述第一控制器的hba的fcport信号发送功能,以断开所述第一控制器的所有目标端口对应的物理链路。

在所述路径切换的装置中,所述处理单元,进一步用于:

通过所述捕获内核加载hba驱动,并利用所述hba驱动关闭所述第一控制器的hba的fcport信号发送功能,以断开所述第一控制器的所有目标端口对应的物理链路。

在本申请技术方案中,多控存储设备的第一控制器确定自身发生故障后,主动将本地的所有目标端口对应的物理链路断开,以由服务端重新选择与第二控制器之间的路径访问多控存储设备;

由于第一控制器主动将本地的所有目标端口对应的物理链路断开,服务端可以及时切换路径来访问多控存储设备,极大地减少了切换路径的耗时,进而减少了因控制器异常对服务端上的业务产生的影响。

附图说明

图1是本申请示出的一种san网络的架构示意图;

图2是本申请示出的一种路径切换的方法的流程图;

图3是本申请示出的一种路径切换的装置的实施例框图;

图4是本申请示出的一种路径切换的装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

服务端上的起始端口和控制器上的目标端口的连接关系,可以构成多条服务端访问lun的路径。

参见图1,对于lun1,业务服务器可以通过p1-p3-p5-p9、p1-p3-p6-p11、p2-p4-p7-p10、p2-p4-p8-p12这4条路径访问lun1。

通常情况下,对于指定lun而言,多控存储设备的其中一个控制器上引出的路径为优化路径,其它控制器上引出的路径为非优化路径。为使san网络的效率最高,服务端一般通过优化路径访问上述指定lun。

当上述控制器发生死机(比如:控制器的内核崩溃)或者业务模块出现故障时,优化路径不可用,在这种情况下,服务端根据非优化路径访问上述指定lun。其中,上述业务模块可以包括fctarget(fibrechanneltarget,光纤通道协议目标)模块、lun模块、raid(redundantarraysofindependentdisks,独立冗余磁盘阵列)模块、磁盘模块和缓存模块等。

比如:若图1中,对于lun1而言,控制器1上引出的p1-p3-p5-p9和p2-p4-p7-p10为优化路径,则业务服务器通常会根据上述优化路径访问lun1。当控制器1发生死机或者控制器1的任一业务模块发生故障,上述优化路径不可用,业务服务器可以根据控制器2上引出的非优化路径访问lun1。

具体地,服务端可以向控制器的各个目标端口发送心跳保活报文,控制器接收到心跳保活报文后,可以通过上述目标端口向服务端返回保活回应报文。若控制器死机(内核崩溃),则无法返回保活回应报文。此外,控制器死机后无法将本地的hba(hostbusadapter,主机总线适配器)下电,因此,该控制器上的目标端口对应的物理链路处于连通状态,导致服务端会持续通告上述物理链路所在的路径发送保活回应报文。

当服务端向任一路径的目标端口发送心跳保活报文而多次未接收到保活回应报文后,服务端可以确定该目标端口发生故障以及该路径不可用,进而通过mpio(multipathi/o,多路径冗余i/o)模块重新选择可用路径。

另一方面,控制器可以对本地的各业务模块进行自检,自检可包括周期性检测各业务模块和监听各业务模块在故障后上报的异常通知,若任一业务模块发生故障,则控制器将自身的运行状态置为异常状态。其中,运行状态包括正常状态和异常状态。

控制器处于异常状态时,无法正常处理服务端发送的io(input/output,输入/输出)请求,因此,在接收到服务端发送的io请求后,会返回失败响应。当服务端多次从任一路径接收到失败响应,可以确定该路径不可用,进而通过mpio模块重新选择可用路径。

可见,在现有技术中,当控制器死机或业务模块发生故障,服务端需要多个心跳检测超时(无法接收到保活响应报文)或多次接收到失败响应后,才会重新选择可用路径。服务端在切换路径时不够及时,可能对服务端上的业务稳定性、连续性造成重大影响。比如:若服务端选用的路径出现故障,服务端仍通过该路径下发大量io请求,则由于控制器无法正常处理上述io请求,导致服务端的业务无法正常执行。

有鉴于此,本申请提供一种路径切换的方法及装置,用以在控制器发生故障后,及时通知服务端切换路径,减少切换路径的耗时,从而减少因控制器异常对服务端上的业务产生的影响。

参见图2,为本申请示出的一种路径切换的方法的流程图,所述方法应用于多控存储设备,所述多控存储设备包括第一控制器和第二控制器,所述方法包括以下步骤:

步骤201:所述第一控制器确定自身发生故障。

其中,上述第一控制器和第二控制器泛指多控存储设备上的任一控制器,其只是为便于描述进行的命名,并不限定本申请。需要指出的是,多控存储设备可以包括两个或两个以上的控制器。

多控存储设备的各个控制器的系统内核(standardkernel)被预设对应的捕获内核(capturekernel),捕获内核可以基于kdump机制在系统内核崩溃后启动。捕获内核为系统内核崩溃后运行的第二内核,捕获内核启动过程中绕过了bios(basicinputoutputsystem,基本输入输出系统)设置阶段,可以快速启动。具体配置过程可参照现有技术,本申请在此不再赘述。

在示出的一种实施方式中,第一控制器可以通过本地的系统内核确定本地的各业务模块是否存在异常。

一方面,第一控制器可以通过上述系统内核周期性检测各业务模块是否存在异常。其中,周期时长可基于实际应用环境自定义。当然,具体的检测方式可参照现有技术,在此不再赘述。

比如:第一控制器可以按照预设的自检策略,周期性地对本地的fctarget模块、lun模块、raid模块、磁盘模块和缓存模块等业务模块进行检测,确定各业务模块是否发生故障。

另一方面,第一控制器可以通过上述系统内核监听各业务模块在故障后上报的异常通知,监听到任一业务模块上报的异常通知,可确定该业务模块存在异常。

若任一业务模块存在异常,第一控制器可以将自身的运行状态置为异常状态,进一步地,第一控制器可以确定自身发生故障。

比如:第一控制器在自检过程中,发现lun模块存在线程挂住的情况,因此,将自身的运行状态置为异常状态,确定自身发生故障。

在示出的另一种实施方式中,当第一控制器的系统内核发生故障后,第一控制器触发该系统内核对应的捕获内核启动,并确定自身发生故障。

步骤202:所述第一控制器将本地的所有目标端口对应的物理链路断开,以由服务端重新选择与所述第二控制器之间的路径访问所述多控存储设备。

在示出的一种实施方式中,如果第一控制器在自检过程中确定自身发生故障,可以通过本地的系统内核加载hba驱动,并利用上述hba驱动关闭上述第一控制器的hba的fcport信号发送功能,以断开上述第一控制器的所有目标端口对应的物理链路。

参见图1,若控制器1自检确定自身发生故障,可以通过本地的系统内核加载hba驱动,并利用该hba驱动关闭控制器1的hba的fcport信号发送功能。fc交换机1可立即确定物理链路p5-p9断开,fc交换机2可立即确定物理链路p7-p10断开,进一步地,fc交换机1和fc交换机2可向服务端发送rscn(registeredstatechangenotification,注册状态更改通知)通知。

服务端接收到上述rscn通知后,可知控制器1上引出的路径所在的物理链路已经断开,上述路径不可用,进而选择控制器2上引出的路径访问上述多控存储设备。

当然,若控制器上的目标端口和服务端的起始端口以p2p(peertopeer,对等网络)等直连方式连接,服务端可以更快感知到物理链路的变化,从而更快地重新选择可用路径。

在示出的另一种实施方式中,如果第一控制器在触发捕获内核启动后,确定自身发生故障,可以通过上述捕获内核加载hba驱动,并利用上述hba驱动关闭上述第一控制器的hba的fcport信号发送功能,以断开上述第一控制器的所有目标端口对应的物理链路。

参见图1,若控制器1的系统内核崩溃,控制器1触发该系统内核对应的捕获内核启动,可以确定自身发生故障,并通过该捕获内核加载hba驱动,然后利用上述hba驱动关闭控制器1的hba的fcport信号发送功能。fc交换机1可确定物理链路p5-p9断开,fc交换机2可确定物理链路p7-p10断开,进一步地,fc交换机1和fc交换机2可向服务端发送rscn通知。

服务端接收到上述rscn通知后,可知控制器1上引出的路径所在的物理链路已经断开,上述路径不可用,进而选择控制器2上引出的路径访问上述多控存储设备。

同样地,若控制器上的目标端口和服务端的起始端口以p2p等直连方式连接,服务端可以更快感知到物理链路的变化,从而重新选择可用路径。

综上所述,在本申请技术方案中,多控存储设备包括第一控制器和第二控制器,第一控制器可确定自身发生故障,并将本地的所有目标端口对应的物理链路断开,以由服务端重新选择与上述第二控制器之间的路径访问上述多控存储设备;

由于第一控制器在自身发生故障时,可主动将本地所有目标端口对应的物理链路断开,服务端可以及时感知到当前所选择的路径所在的物理链路断开,从而切换至可用路径来访问多控存储设备,通过上述措施,极大地减少了切换路径的耗时,减少了因控制器异常对服务端上的业务产生的影响。

与前述路径切换的方法的实施例相对应,本申请还提供了路径切换的装置的实施例。

参见图3,为本申请示出的一种路径切换的装置的实施例框图:

如图3所示,该路径切换的装置30,包括:

确定单元310,用于确定所述第一控制器发生故障。

处理单元320,将所述第一控制器的所有目标端口对应的物理链路断开,以由服务端重新选择与所述第二控制器之间的路径访问所述多控存储设备。

在本例中,所述确定单元310,进一步用于:

通过系统内核确定所述第一控制器的各业务模块是否存在异常;

若任一业务模块存在异常,将所述第一控制器的运行状态置为异常状态;其中,所述运行状态包括正常状态和异常状态;

确定所述第一控制器发生故障。

在本例中,所述确定单元310,进一步用于:

当所述第一控制器的系统内核发生故障,触发所述捕获内核启动;

确定所述第一控制器发生故障。

在本例中,所述处理单元320,进一步用于:

通过所述系统内核加载hba驱动,并利用所述hba驱动关闭所述第一控制器的hba的fcport信号发送功能,以断开所述第一控制器的所有目标端口对应的物理链路。

在本例中,所述处理单元320,进一步用于:

通过所述捕获内核加载hba驱动,并利用所述hba驱动关闭所述第一控制器的hba的fcport信号发送功能,以断开所述第一控制器的所有目标端口对应的物理链路。

本申请路径切换的装置的实施例可以应用在多控存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在多控存储设备的处理器(控制器)将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请路径切换的装置所在多控存储设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的多控存储设备通常根据该路径切换的装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1