一种存储系统的故障处理方法和存储系统技术方案

技术编号:21453731 阅读:96 留言:0更新日期:2019-06-26 04:43
本发明专利技术一种存储系统的故障处理方法和存储系统,针对现有存储系统中存储控制器与存储盘之间多条链路,当通过其中主用链路出现IO超时,仅执行链路切换到备用链路进行后续IO操作,或者仅针对存储盘进行修复的问题,本申请监测操作异常的情况,在操作异常的情况下进行主用链路上的连接芯片的修复,从而修复主用链路,以保证后续IO请求切换回主用链路,提高IO执行效率。

【技术实现步骤摘要】
一种存储系统的故障处理方法和存储系统
本专利技术涉及存储
,具体地说,涉及一种存储系统的故障处理方法和存储系统。
技术介绍
存储系统中的硬盘阵列,通过存储控制器统一管理通过接口和协议连接起来的多个硬盘,以提供成熟、可靠、大容量的数据存储服务。典型的硬盘阵列架构是双控系统,两个控制器通过镜像通道连接在一起,进行数据交换。硬盘通常是双端口盘,两个控制器的后端可以分别连接到每个硬盘上,硬盘对于两个控制器都是可见的。硬盘阵列的两个控制器可以通过PCIe芯片与多个硬盘连接在一起,对于每个硬盘而言,都有两条链路分别与两个控制器连接。在现有技术方案中,控制器通过硬盘管理软件来管理所有硬盘,保存硬盘链路信息,通过检测硬盘状态,及时发现异常并作出诊断,以尽可能地修复异常,保证硬盘阵列数据存储的可靠性。然而现有技术中的故障处理方案,只对硬盘状态和硬盘故障进行修复,却不能修复链路中故障,导致IO处理时延的增大。
技术实现思路
本专利技术基于现有技术中只对硬盘状态和硬盘故障进行修复的情况,提供一种修复链路中的连接芯片的故障的方法和存储系统。第一方面,本申请提供一种存储故障处理方法,应用于存储系统,所述存储系统包括至少一个存储盘和至少两个存储控制器,每个存储控制器包括连接芯片,所述每个控制器通过自身的连接芯片连接到每个存储盘,所述至少两个存储控制器互相连接;所述方法包括:第一存储控制器接收第一数据操作请求,通过第一链路的第一分支向所述第一数据读写操作对应的第一存储盘发送第一操作指令,所述第一链路为包含所述第一存储控制器的连接芯片的链路,所述第一链路的第一分支为所述第一链路中的目标端为所述第一存储盘的连接,所述第一存储控制器为所述至少两个存储控制器中的任一存储控制器;所述第一存储控制器监测到所述第一操作指令执行超时,所述第一存储控制器通过第二链路的第一分支向所述第一存储盘转发所述第一操作指令,所述第二链路为包含所述第二存储控制器的连接芯片的链路,所述第二链路的第一分支为所述第二链路的目标端为所述第一存储盘的连接,所述第二存储控制器为与所述第一存储控制器连接的任一存储控制器;所述第一存储控制器接收通过所述第二链路的第一分支传输的所述第一操作指令的操作成功响应,根据所述操作成功响应统计操作异常的次数,所述操作异常指示所述第一存储控制器接收到的操作指令通过所述第一链路执行超时,但通过所述第二链路执行成功;所述第一存储控制器确定在预定时间内所述操作异常的统计次数超过预定阈值,对所述第一链路中的连接芯片进行故障修复。上述方法,在从第一链路切换到第二链路的情况下,存储控制器可以根据操作指令的实际执行情况来统计操作异常的次数,在操作异常达到预定阈值之后,执行第一链路的修复,从而识别出链路故障并修复链路故障,提高存储系统的稳定性和后续数据操作的执行效率。对于上述第一方面,一种可能的执行操作异常统计的方式如下:所述第一存储控制器根据统计规则和所述操作成功响应,将操作异常的次数增加一次或者维持原统计的操作异常次数不变,其中,所述统计规则包括:对于所述第一链路的每条分支上出现的操作异常,只统计一次;相应地,所述预定阈值小于或等于所述存储系统中所述存储盘的数量N。此种具体实施方式,将预定阈值设定为存储盘的数量N,也就是将预定阈值设定为第一链路的分支数量,在操作异常统计的时候,第一链路的每条分支上出现的操作异常只统计一次,已经统计过的任意分支上再次出现的操作异常将不做统计,当每条分支上都出现操作异常之后,操作异常的统计次数达到数量N,也就是达到预定阈值,此种情况下,即可判断第一链路出现链路故障。对于上述第一方面,一种可能的实现方式中:所述方法还包括:所述第一存储控制器确定所述第一链路的第n分支上出现操作异常之后,设置所述第一链路的第n分支的故障标签,所述故障标签指示所述第一链路的第n分支不可用或者所述第一链路的第n分支的级别降低,n为自然数变量,n大于等于1,且小于等于N;所述第一控制器在接收到针对第n存储盘的后续数据操作请求之后,根据所述第一链路的第n分支的故障标签,直接通过所述第二链路的第n分支向所述第n存储盘发送后续操作指令在第一链路故障没有修复之前,上述实现方式避免了后续操作指令的执行延时或者执行失败。进一步地,在对所述第一链路中的连接芯片进行故障修复之后,所述方法还包括:删除所述第一链路的每条分支的故障标签,或者设置所述第一链路的每条分支的正常标签,所述正常标签指示所述第一链路状态可用或者所述第一链路的级别正常;则所述第一控制器在接收到针对所述第一存储盘的后续数据操作请求之后,根据所述第一链路故障标签的状态或者第一链路的正常标签,切换回所述第一链路向后续数据操作请求所针对的存储盘发送操作指令。上述实现方式,使得第一存储控制器在接收到后续要发往存储盘的数据操作请求之后,根据所述第一链路的状态(故障标签已经删除或者第一链路的正常标签),直接选择第一链路进行操作指令的发送,由于第一链路的路径比第二链路更短,因此后续的操作指令将会更快速地得到处理,这样的处理方式避免了后续操作指令通过第二链路执行所引起的时延,提高了操作指令的处理效率。可选地,在对所述第一链路的连接芯片进行故障修复之后,所述方法还包括:检测所述第一链路中的连接芯片是否修复成功;则在检测到所述第一链路中的连接芯片修复成功之后,删除所述第一链路的故障标签,或者设置所述第一链路的正常标签。上述方法,在修复第一链路之后,进一步检测第一链路,从而获取到链路的真实状态,保证后续操作执行能够根据真实的链路状态来进行。可选地,所述方法还包括:在检测到所述第一链路中的连接芯片修复不成功之后,发出所述第一链路中的连接芯片的故障维护通知。具体地,所述对所述第一链路中的连接芯片进行故障修复,包括:重启所述第一存储控制器的连接芯片;或者,隔离所述第一存储控制器的连接芯片;或者,对所述第一存储控制器的连接芯片上的队列进行修复;或者,对所述第一存储控制器的连接芯片上的端口进行修复。上述对链路的修复,注重对链路上的连接芯片的修复,从而彻查硬件问题,保证修复效率。可选地,所述第一存储控制器监测到所述第一操作指令执行超时之后,所述方法还包括:所述第一存储控制器记录第一标记,所述第一标记指示所述第一操作指令通过所述第一链路的第一分支执行超时;所述根据所述操作成功响应统计操作异常的次数之前,还包括:所述第一存储控制器记录第二标记,所述第二标记指示所述第一操作指令通过所述第二链路的第一分支执行成功;确定所述第一操作指令是否同时具备所述第一标记与所述第二标记;如果所述第一操作指令同时具备所述第一标记与所述第二标记,确定出现操作异常。第二方面,本申请提供一种存储系统,其特征在于,包括:至少一个存储盘和至少两个存储控制器;每个存储控制器包括连接芯片,所述每个控制器通过自身的连接芯片连接到每个存储盘;所述至少两个存储控制器互相连接;第一存储控制器,用于接收第一数据操作请求,通过第一链路的第一分支向所述数据读写操作对应的第一存储盘发送第一操作指令,在监测到所述第一操作指令执行超时,通过第二链路的第一分支向所述第一存储盘转发所述第一操作指令,所述第一存储控制器为所述至少两个存储控制器中的任一存储控制器,所述第二存储控制器为与所述第一本文档来自技高网...

【技术保护点】
1.一种存储故障处理方法,其特征在于,应用于存储系统,所述存储系统包括至少一个存储盘和至少两个存储控制器,每个存储控制器包括连接芯片,所述每个控制器通过自身的连接芯片连接到每个存储盘,所述至少两个存储控制器互相连接;所述方法包括:第一存储控制器接收第一数据操作请求,通过第一链路的第一分支向所述第一数据读写操作对应的第一存储盘发送第一操作指令,所述第一链路为包含所述第一存储控制器的连接芯片的链路,所述第一链路的第一分支为所述第一链路中的目标端为所述第一存储盘的连接,所述第一存储控制器为所述至少两个存储控制器中的任一存储控制器;所述第一存储控制器监测到所述第一操作指令执行超时,所述第一存储控制器通过第二链路的第一分支向所述第一存储盘转发所述第一操作指令,所述第二链路为包含所述第二存储控制器的连接芯片的链路,所述第二链路的第一分支为所述第二链路的目标端为所述第一存储盘的连接,所述第二存储控制器为与所述第一存储控制器连接的任一存储控制器;所述第一存储控制器接收通过所述第二链路的第一分支传输的所述第一操作指令的操作成功响应,根据所述操作成功响应统计操作异常的次数,所述操作异常指示所述第一存储控制器接收到的操作指令通过所述第一链路执行超时,但通过所述第二链路执行成功;所述第一存储控制器确定在预定时间内所述操作异常的统计次数超过预定阈值,对所述第一链路中的连接芯片进行故障修复。...

【技术特征摘要】
1.一种存储故障处理方法,其特征在于,应用于存储系统,所述存储系统包括至少一个存储盘和至少两个存储控制器,每个存储控制器包括连接芯片,所述每个控制器通过自身的连接芯片连接到每个存储盘,所述至少两个存储控制器互相连接;所述方法包括:第一存储控制器接收第一数据操作请求,通过第一链路的第一分支向所述第一数据读写操作对应的第一存储盘发送第一操作指令,所述第一链路为包含所述第一存储控制器的连接芯片的链路,所述第一链路的第一分支为所述第一链路中的目标端为所述第一存储盘的连接,所述第一存储控制器为所述至少两个存储控制器中的任一存储控制器;所述第一存储控制器监测到所述第一操作指令执行超时,所述第一存储控制器通过第二链路的第一分支向所述第一存储盘转发所述第一操作指令,所述第二链路为包含所述第二存储控制器的连接芯片的链路,所述第二链路的第一分支为所述第二链路的目标端为所述第一存储盘的连接,所述第二存储控制器为与所述第一存储控制器连接的任一存储控制器;所述第一存储控制器接收通过所述第二链路的第一分支传输的所述第一操作指令的操作成功响应,根据所述操作成功响应统计操作异常的次数,所述操作异常指示所述第一存储控制器接收到的操作指令通过所述第一链路执行超时,但通过所述第二链路执行成功;所述第一存储控制器确定在预定时间内所述操作异常的统计次数超过预定阈值,对所述第一链路中的连接芯片进行故障修复。2.如权利要求1所述的方法,其特征在于,所述根据所述操作成功响应统计操作异常的次数,包括:所述第一存储控制器根据统计规则和所述操作成功响应,将操作异常的次数增加一次或者维持原统计的操作异常次数不变,其中,所述统计规则包括:对于所述第一链路的每条分支上出现的操作异常,只统计一次;相应地,所述预定阈值小于或等于所述存储系统中所述存储盘的数量N。3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:所述第一存储控制器确定所述第一链路的第n分支上出现操作异常之后,设置所述第一链路的第n分支的故障标签,所述故障标签指示所述第一链路的第n分支不可用或者所述第一链路的第n分支的级别降低,n为自然数变量,n大于等于1,且小于等于N;所述第一控制器在接收到针对第n存储盘的后续数据操作请求之后,根据所述第一链路的第n分支的故障标签,直接通过所述第二链路的第n分支向所述第n存储盘发送后续操作指令。4.如权利要求3所述的方法,其特征在于,在对所述第一链路中的连接芯片进行故障修复之后,所述方法还包括:删除所述第一链路的每条分支的故障标签,或者设置所述第一链路的每条分支的正常标签,所述正常标签指示所述第一链路的分支状态可用或者所述第一链路的分支级别正常;则所述第一控制器在接收到后续数据操作请求之后,根据所述第一链路故障标签的状态或者第一链路的正常标签,切换回所述第一链路向所述后续数据操作请求所针对的存储盘发送操作指令。5.如权利要求1-4任意一项所述的方法,其特征在于,在对所述第一链路的连接芯片进行故障修复之后,所述方法还包括:检测所述第一链路中的连接芯片是否修复成功;在检测到所述第一链路中的连接芯片修复不成功之后,发出所述第一链路中的连接芯片的故障维护通知。6.如权利要求1-5任一项所述的方法,其特征在于,所述对所述第一链路中的连接芯片进行故障修复,包括:重启所述第一存储控制器的连接芯片;或者,隔离所述第一存储控制器的连接芯片;或者,对所述第一存储控制器的连接芯片上的队列进行修复;或者,对所述第一存储控制器的连接芯片上的端口进行修复。7.如权利要求1-6任一项所述的方法,其特征在于,所述第一存储控制器监测到所述第一操作指令执行超时之后,所述方法还包括:所述第一存储控制器记录第一标记,所述第一标记指示所述第一操作指令通过所述第一链路的第一分支执...

【专利技术属性】
技术研发人员:刘玉
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1