一种用于多控制器存储系统的故障处理方法和系统技术方案

技术编号:13388161 阅读:65 留言:0更新日期:2016-07-22 09:00
本发明专利技术实施例提供一种用于多控制器存储系统的故障处理方法和系统,其中方法包括:当从控制器向主控制器传输数据时,若HA模块检测到主控制器宕机,则向从控制器内从MCC通信模块发送异常终止信号,从MCC通信模块接收该异常终止信息后,调用该从控制器内从IOM模块停止发送数据,并将写入失败数据和未发送数据返回该从IOM模块,从IOM模块将该写入失败数据和未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞,SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行下发,直到该阻塞队列中数据被主控制器写入后端磁盘。保证了写入数据的完整性和多控制器存储系统的稳定性,且具有较高的数据写入效率。

【技术实现步骤摘要】

本专利技术涉及故障处理
,特别是涉及一种用于多控制器存储系统的故障处理方法和系统
技术介绍
目前,在多控制器存储存储系统中,当SCST模块(主机接口层模块)通过从控制器向后端磁盘写入数据时,需要从控制器在接收到SCST模块下发的数据后,先将这些需要写入后端磁盘的数据发送给主控制器,然后由主控制器将这些需要写入的数据写入后端磁盘。然而,在目前的多控制器存储系统中,若主控制器在从控制器向其发送数据的过程中发生宕机,主控制器上的数据传输流程将因为宕机而被终止,致使需要写入的数据无法继续写入后端磁盘。目前,通常通过在多控制器存储系统中设置超时等待处理机制来解决上述问题。设置主控制器在将数据写入后端磁盘后向从控制器发送数据写入反馈,若从控制器将某数据发送给主控制器后,未在预设时间内接收到该数据相对应的数据写入反馈,则向主机重新发送该数据。然而,由于SCST模块持续向从控制器发送数据,该数据也持续由从控制器向主控制器发送,通过在多控制器存储系统中设置超时等待处理机制来解决上述问题,将可能导致先发送的数据由于主控制器宕机未能成功写入磁盘,而后发送的数据被先写入后端磁盘,先发送的数据由于超时重发机制而后于后发送的数据被写入后排磁盘中的情况发生。如此,将可能破坏写入数据的完整性和该多控制器存储系统的稳定性。同时,由于在多控制器存储系统设置的超时等待时间往往较长,一般设置超时等待时间为120秒,因此,若通过在多控制器存储系统中设置超时等待处理机制来解决上述问题,由于超时等待时间过长,也将影响到数据写入效率。
技术实现思路
有鉴于此,本专利技术实施例提供一种用于多控制器存储系统的故障处理方法和系统,以解决现有技术中设置超时等待处理机制来解决多控制器间中主从控制器间通信故障问题,将可能破坏写入数据的完整性和该多控制器存储系统的稳定性,同时,造成等待时间过长,影响数据写入效率的问题。为实现上述目的,本专利技术实施例提供如下技术方案:一种用于多控制器存储系统的故障处理方法,包括:当从控制器向主控制器传输数据时,由HA模块检测所述主控制器是否宕机,若所述HA模块检测到所述主控制器宕机,则向所述从控制器内从MCC通信模块发送异常终止信号;所述从MCC通信模块接收到所述异常终止信号后,调用所述从控制器内从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述主控制器的未发送数据返回所述从IOM模块;所述从IOM模块将所述写入失败数据和所述未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞;所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。其中,所述从控制器向主控制器传输数据包括:所述从控制器内从IOM模块接收所述SCST模块下发的数据,将所述SCST模块下发的数据发送给所述从控制器内从MCC通信模块;所述从MCC通信模块接收到所述从IOM模块发送的数据后,将所述从IOM模块发送的数据发送给主控器内主MCC通信模块。其中,所述故障处理方法还包括:当从控制器向主控制器传输数据时,所述从控制器内从MCC通信模块将所述写入失败数据记录在第一链表中,将所述还未发送数据记录在第二链表中;所述从MCC通信模块将写入失败数据和未发送数据返回所述从IOM模块包括:通过查询第一链表确定写入失败数据,将所述写入失败数据返回所述从IMO模块;通过查询第二链表确定未发送数据,将所述未发送数据返回所述从IMO模块。其中,所述从MCC通信模块将所述写入失败数据记录在第一链表中包括:所述从MCC通信模块确定已发送至主控制器的发送数据;根据主控制器在将数据写入后端磁盘后返回的反馈信号,确定已经被主控制器写入后端磁盘的写入成功数据;根据所述发送数据和写入成功数据得到已发送至主控制器但还未被主控制器写入后端磁盘的写入失败数据,将得到的所述写入失败数据记录在第一链表中。其中,所述从IOM模块包括至少一虚拟卷,通过所述虚拟卷进行数据收发;所述从MCC通信模块将写入失败数据和还未发送数据返回所述从IOM模块包括:确定发送各所述写入失败数据的第一虚拟卷,将各所述写入失败数据分别返回各自相对应的第一虚拟卷,确定发送各所述未发送数据的第二虚拟卷,将各所述未发送数据分别返回各自相对的第二虚拟卷;所述从IOM模块将所述写入失败数据和所述未发送数据添加至阻塞队列上层包括:各所述第一虚拟卷分别将各自对应的写入失败数据添加至阻塞队列上层,各所述第二虚拟卷分别将各自对应的未发送数据添加至阻塞队列上层。其中,所述确定发送各所述写入失败数据的第一虚拟卷后还包括:所述HA模块将各所述第一虚拟卷设置为阻塞状态;所述确定发送各所述未发送数据的第二虚拟卷后还包括:所述HA模块将各所述第二虚拟卷设置为阻塞状态。所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行再次下发,直至所述阻塞队列中数据被所述主控制器写入后端磁盘后还包括:所述HA模块将各所述第一虚拟卷和第二虚拟卷设置为正常工作状态。其中,所述HA模块检测所述主控制器是否宕机包括:所述HA模块每隔预设时间间隔向所述主控制器发送一心跳数据包;若所述主控制器未在每次接收到心跳数据包后的预设时间段内均向所述HA模块返回一相应的心跳反馈信息,则所述HA模块确定所述主控制器宕机。其中,所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行下发后还包括:从零开始累计所述SCST模块对所述阻塞队列中数据进行下发的次数;当所述次数大于预设数值时,延长所述预设时间间隔,得到更新后预设时间间隔,将所述次数归零,所述SCST模块每隔所述更新后时间间隔对所述阻塞队列中数据按照预设次序进行下发。一种用于多控制器存储系统的故障处理系统,包括:HA模块,从控制器和SCST模块,其中,所述从控制器包括从MCC通信模块和从IOM模块,所述HA模块,用于当从控制器向主控制器传输数据时,检测所述主控制器是否宕机,当检测到所述主控制器宕机时,向所述从控制器内从MCC通信模块发送异常终止信号;所述从MCC通信模块,用于接收到所述异常终止信号后,调用所述从控制器内从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控制本文档来自技高网
...

【技术保护点】
一种用于多控制器存储系统的故障处理方法,其特征在于,包括:当从控制器向主控制器传输数据时,由HA模块检测所述主控制器是否宕机,若所述HA模块检测到所述主控制器宕机,则向所述从控制器内从MCC通信模块发送异常终止信号;所述从MCC通信模块接收到所述异常终止信号后,调用所述从控制器内从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述主控制器的未发送数据返回所述从IOM模块;所述从IOM模块将所述写入失败数据和所述未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞;所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。

【技术特征摘要】
1.一种用于多控制器存储系统的故障处理方法,其特征在于,包括:
当从控制器向主控制器传输数据时,由HA模块检测所述主控制器是否
宕机,若所述HA模块检测到所述主控制器宕机,则向所述从控制器内从MCC
通信模块发送异常终止信号;
所述从MCC通信模块接收到所述异常终止信号后,调用所述从控制器内
从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控
制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述
主控制器的未发送数据返回所述从IOM模块;
所述从IOM模块将所述写入失败数据和所述未发送数据添加至阻塞队列
上层,并对SCST模块还未下发的数据进行阻塞;
所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序
进行下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。
2.根据权利要求1所述的故障处理方法,其特征在于,所述从控制器向
主控制器传输数据包括:
所述从控制器内从IOM模块接收所述SCST模块下发的数据,将所述
SCST模块下发的数据发送给所述从控制器内从MCC通信模块;
所述从MCC通信模块接收到所述从IOM模块发送的数据后,将所述从
IOM模块发送的数据发送给主控器内主MCC通信模块。
3.根据权利要求1所述的故障处理方法,其特征在于,
所述故障处理方法还包括:当从控制器向主控制器传输数据时,所述从
控制器内从MCC通信模块将所述写入失败数据记录在第一链表中,将所述还
未发送数据记录在第二链表中;
所述从MCC通信模块将写入失败数据和未发送数据返回所述从IOM模
块包括:通过查询第一链表确定写入失败数据,将所述写入失败数据返回所
述从IMO模块;通过查询第二链表确定未发送数据,将所述未发送数据返回
所述从IMO模块。
4.根据权利要求3所述的故障处理方法,其特征在于,所述从MCC通
信模块将所述写入失败数据记录在第一链表中包括:
所述从MCC通信模块确定已发送至主控制器的发送数据;
根据主控制器在将数据写入后端磁盘后返回的反馈信号,确定已经被主
控制器写入后端磁盘的写入成功数据;
根据所述发送数据和写入成功数据得到已发送至主控制器但还未被主控
制器写入后端磁盘的写入失败数据,将得到的所述写入失败数据记录在第一
链表中。
5.根据权利要求1所述的故障处理方法,其特征在于,
所述从IOM模块包括至少一虚拟卷,通过所述虚拟卷进行数据收发;
所述从MCC通信模块将写入失败数据和还未发送数据返回所述从IOM
模块包括:确定发送各所述写入失败数据的第一虚拟卷,将各所述写入失败
数据分别返回各自相对应的第一虚拟卷,确定发送各所述未发送数据的第二
虚拟卷,将各所述未发送数据分别返回各自相对的第二虚拟卷;
所述从IOM模块将所述写入失败数据和所述未发送数据添加至阻塞队列
上层包括:各所述第一虚拟卷分别将各自对应的写入失败数据添...

【专利技术属性】
技术研发人员:赵鹏卓保特
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

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

1