CN105786666A - 一种用于多控制器存储系统的故障处理方法和系统 - Google Patents
一种用于多控制器存储系统的故障处理方法和系统 Download PDFInfo
- Publication number
- CN105786666A CN105786666A CN201610082649.1A CN201610082649A CN105786666A CN 105786666 A CN105786666 A CN 105786666A CN 201610082649 A CN201610082649 A CN 201610082649A CN 105786666 A CN105786666 A CN 105786666A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- master controller
- controller
- write
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供一种用于多控制器存储系统的故障处理方法和系统,其中方法包括:当从控制器向主控制器传输数据时,若HA模块检测到主控制器宕机,则向从控制器内从MCC通信模块发送异常终止信号,从MCC通信模块接收该异常终止信息后,调用该从控制器内从IOM模块停止发送数据,并将写入失败数据和未发送数据返回该从IOM模块,从IOM模块将该写入失败数据和未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞,SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行下发,直到该阻塞队列中数据被主控制器写入后端磁盘。保证了写入数据的完整性和多控制器存储系统的稳定性,且具有较高的数据写入效率。
Description
技术领域
本发明涉及故障处理技术领域,特别是涉及一种用于多控制器存储系统的故障处理方法和系统。
背景技术
目前,在多控制器存储存储系统中,当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通信模块发送数据,并将已发送至所述主控制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述主控制器的未发送数据返回所述从IOM模块;
所述从IOM模块,用于将所述写入失败数据和所述未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞;
所述SCST模块,用于每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行再次下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。
其中,所述故障处理系统还包括:计数模块,用于从零开始累计所述SCST模块对所述阻塞队列中数据进行下发的次数,当所述次数大于预设数值时,延长所述预设时间间隔,得到更新后预设时间间隔,将所述次数归零;当所述计数模块得到更新后预设时间间隔后,所述SCST模块每隔所述更新后时间间隔对所述阻塞队列中数据按照预设次序进行下发。
基于上述技术方案,本发明实施例提供的一种用于多控制器存储系统的故障处理方法和系统,当从控制器向主控制器传输数据时,由HA模块检测该主控制器是否宕机,并在检测到该主控制器宕机时该正向该主控制器传输数据的从控制器内从MCC通信模块发送异常终止信号,从MCC通信模块在接收到该HA模块发送的异常终止信号后,调用该从控制器内从IOM模块停止向自身发送数据,即调压该从IOM模块停止向该从MCC通信模块发送数据,并将已发送至该主控制器但还未被该主控制器写入后端磁盘的写入失败数据和还未发送至该主控制器的未发送数据返回该从IOM模块,该从IOM模块在接收到该写入失败数据和未发送数据后,将会将该接收到的写入失败数据和未发送数据添加至阻塞队列上层,并对SCST模块中还未下发的数据进行阻塞,SCST模块将每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行下发,直到该阻塞队列中数据被该主控制器写入后端磁盘中。当从控制器向主控制器传输数据时,通过HA模块检测该主控制器是否宕机,当HA模块检测到该主控制器宕机时,立即向该从控制器发送异常终止信号,控制该从控制器停止向主控制器传输出数据,并对SCST模块中还未下发的数据进行阻塞,最后由SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行再次下发,保证了写入数据的完整性和多控制器存储系统的稳定性,且等待时间较短,具有较高的数据写入效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的用于多控制器存储系统的故障处理方法的流程图;
图2为本发明实施例提供的用于多控制器存储系统的故障处理方法中从控制器向主控制器传输数据的方法流程图;
图3为本发明实施例提供的用于多控制器存储系统的故障处理方法中从MCC通信模块将写入失败数据返回从IOM模块的方法流程图;
图4为本发明实施例提供的用于多控制器存储系统的故障处理方法中从MCC通信模块将写入失败数据记录在第一链表的方法流程图;
图5为本发明实施例提供的用于多控制器存储系统的故障处理方法中从MCC通信模块将未发送数据返回从IOM模块的另一方法流程图;
图6为本发明实施例提供的用于多控制器存储系统的故障处理方法中HA模块检测主控制器是否宕机的方法流程图;
图7为本发明实施例提供的用于多控制器存储系统的故障处理方法中更新预设时间间隔的方法流程图;
图8为本发明实施例提供的用于多控制器存储系统的故障处理系统的系统框图;
图9为本发明实施例提供的用于多控制器存储系统的故障处理系统的另一系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的用于多控制器存储系统的故障处理方法的流程图,当从控制器向主控制器传输数据时,通过HA模块检测该主控制器是否宕机,当HA模块检测到该主控制器宕机时,立即向该从控制器发送异常终止信号,控制该从控制器停止向主控制器传输出数据,并对SCST模块中还未下发的数据进行阻塞,最后由SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行再次下发,保证了写入数据的完整性和多控制器存储系统的稳定性,且等待时间较短,具有较高的数据写入效率;参照图1,该用于多控制器存储系统的故障处理方法可以包括:
步骤S100:当从控制器向主控制器传输数据时,由HA模块检测所述主控制器是否宕机,若所述HA模块检测到所述主控制器宕机,则向所述从控制器内从MCC通信模块发送异常终止信号;
当SCST模块(主机接口模块)通过从控制器向后端磁盘写入数据时,需要从控制器在接收到SCST模块下发的数据后,先将这些需要写入后端磁盘的数据发送给主控制器,然后由主控制器将这些需要写入的数据写入后端磁盘。
可选的,当SCST模块通过从控制器向后端磁盘写入数据时,可由从控制器的从IOM模块(从输入输出管理模块)接收SCST模块下发的数据,然后从IOM模块将接收的数据发送给从控制器的从MCC通信模块(从多控制器通信模块),由从MCC模块将需要写入后端磁盘的数据发送给主控制器,然后由主控制器将这些需要写入的数据写入后端磁盘。
可选的,可由主控制器的主MCC通信模块接收从控制器的从MCC通信模块发送的数据,然后主MCC通信模块将接收的数据发送给主控制器的主从IOM模块,由主从IOM模块将这些数据写入后端磁盘。
当从控制器向主控制器传输数据时,可由HA模块(高可用模块)检测主控制器是否宕机,并设置HA模块在检测到主控制器宕机时,向从控制器内从MCC通信模块发送异常终止信号,告知从控制器进行异常处理。
可选的,HA模块可通过每隔预设时间间隔向主控制器发送一心跳数据包,然后检查主控制器是否在每次接收到心跳数据包后的预设时间段内均返回一相应的心跳反馈信息,来确定该主控制器宕机。若主控制器未在每次接收到心跳数据包后的预设时间段内均向HA模块返回一相应的心跳反馈信息,则确定该主控制器宕机。
可选的,当从控制器向主控制器传输数据时,从控制器内从MCC通信模块可将已发送至主控制器但还未被主控制器写入后端磁盘的写入失败数据记录在第一链表中,将还未发送至主控制器的未发送数据记录在第二链表中。
可选的,从控制器可通过虚拟卷来进行数据收发,从控制器内的从IOM模块可以包括至少一虚拟卷,通过不同的虚拟卷接收和发送不同的数据。
步骤S110:所述从MCC通信模块接收到所述异常终止信号后,调用所述从控制器内从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述主控制器的未发送数据返回所述从IOM模块;
从MCC通信模块接收到HA模块发送的异常终止信号后,将调用从控制器内从IOM模块停止向从MCC通信模块发送数据,如此,从MCC通信模块将因为不再接收到从IOM模块发送来数据而停止向主控制器发送数据,使从控制器停止向主控制器发送数据。
同时,当从MCC通信模块接收到HA模块发送的异常终止信号后,从MCC通信模块将会将已发送至主控制器但还未被该主控制器写入后端磁盘的写入失败数据和还未发送至主控制器的未发送数据返回从IOM模块,即告知从IOM模块哪些数据从MCC通信模块已发送至主控制器但还未被该主控制器,哪些数据仍在从MCC通信模块中,还未发送至主控制器。
可选的,若在从控制器向主控制器传输数据时,从控制器内从MCC通信模块将写入失败数据记录在第一链表中,将未发送数据记录在第二链表中,则当从MCC通信模块将写入失败数据和未发送数据返回从IOM模块时,可通过查询第一链表确定写入失败数据,然后将查询得到的写入失败数据返回从IMO模块,并可通过查询第二链表确定未发送数据,然后将查询得到的未发送数据返回从IMO模块,来实现从MCC通信模块将写入失败数据和未发送数据返回从IOM模块。
可选的,从MCC通信模块可通过先确定已发送至主控制器的发送数据,然后根据主控制器在将数据写入后端磁盘后返回的反馈信号,确定已被主控制器写入后端磁盘的写入成功数据,最后根据发送数据和写入成功数据来得到已发送至主控制器但还未被主控制器写入后端磁盘的写入失败数据。
可选的,当从控制器内的从IOM模块包括至少一虚拟卷,通过不同的虚拟卷接收和发送不同的数据时,可通过先确定发送各写入失败数据的第一虚拟卷,然后将各写入失败数据分别返回各自相对应的第一虚拟卷,并确定发送各未发送数据的第二虚拟卷,将各未发送数据分别返回各自相对的第二虚拟卷,来实现从MCC通信模块将写入失败数据和还未发送数据返回所述从IOM模块。
可选的,在从IOM模块确定发送各写入失败数据的第一虚拟卷后,HA模块还可将确定的各第一虚拟卷设置为阻塞状态。
可选的,相应的,在从IOM模块确定发送各未发送数据的第二虚拟卷后,HA模块还可将确定的各第二虚拟卷设置为阻塞状态。
可选的,若在从控制器向主控制器传输数据时,从控制器内从MCC通信模块将写入失败数据记录在第一链表中,将未发送数据记录在第二链表中,且从IOM模块包括至少一虚拟卷,则可通过先查询第一链表确定写入失败数据,然后确定查询得到的写入识别数据的第一虚拟卷,将查询得到的写入失败数据返回各自相对应的第一虚拟卷,并可通过查询第二链表确定未发送数据,然后确定查询得到的未发送数据的第二虚拟卷,将查询得到的未发送数据返回各自相对应的第二虚拟卷,来实现从MCC通信模块将写入失败数据和未发送数据返回从IOM模块。
步骤S120:所述从IOM模块将所述写入失败数据和所述未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞;
从MCC通信模块将写入失败数据和未发送数据返回从IOM模块后,相应的,从IOM模块将接收到从MCC通信模块发送的写入失败数据和未发送数据。在从IOM模块接收到从MCC通信模块发送的写入失败数据和未发送数据后,从IOM模块将会将接收到的写入失败数据和未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞。
可选的,当从控制器内的从IOM模块包括至少一虚拟卷,通过不同的虚拟卷接收和发送不同的数据时,可通过各第一虚拟卷分别将各自对应的写入失败数据添加至阻塞队列上层,各第二虚拟卷分别将各自对应的未发送数据添加至阻塞队列上层,来实现从IOM模块将写入失败数据和所述未发送数据添加至阻塞队列上层。
可选的,可设置从IOM模块在接收到SCST模块下发的数据后向该SCST模块发送数据接收反馈,因此,在从IOM模块对SCST模块还未下发的数据进行阻塞后,可SCST模块可通过是否接收到从IOM模块发送的数据接收反馈来判断还未下发的数据是否阻塞成功。
步骤S130:所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。
从IOM模块将写入失败数据和未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞后,SCST模块将每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行下发,直到该阻塞队列中数据被主控制器写入后端磁盘。
可选的,可通过是否接收到主控制器在将数据写入后端磁盘后返回的反馈信号来确定该阻塞队列中数据是否被主控制器成功写入后端磁盘。
可选的,SCST模块每隔预设时间间隔对阻塞队列中数据按照预设顺序进行下发后,可从零开始累计该SCST模块对该阻塞队列中数据进行下发的次数,当得到的次数大于预设数值时,延长该SCST模块对该阻塞队列中数据进行下发的预设时间间隔,得到更新后预设时间间隔,并将该次数归零,如此,SCST模块将在得到更新后预设时间间隔后,每隔该更新后时间间隔对该阻塞队列中数据按照预设次序进行下发。
例如,设置预设数值为2,预设时间间隔为10s(秒),每次延长时间为10s,那么,SCST模块在对阻塞队列中数据进行第一次下发后,将在10s后对该阻塞队列中数据进行第二次下发,当SCST模块在对阻塞队列中数据进行第二次下发后,也将在10s后对该阻塞队列中数据进行第三次下发,而当SCST模块对该阻塞队列中数据进行第三次下发后,该SCST模块将在20s后对该阻塞队列中数据进行第三次下发。
可选的,若在从IOM模块确定发送各写入失败数据的第一虚拟卷后,HA模块将确定的各第一虚拟卷设置为阻塞状态,在从IOM模块确定发送各未发送数据的第二虚拟卷后,HA模块将确定的各第二虚拟卷设置为阻塞状态,则SCST模块将阻塞队列中某数据进行下发,且该数据被主控制器写入后端磁盘后,HA模块将会将各第一虚拟卷和第二虚拟卷设置为正常工作状态。
基于上述技术方案,本发明实施例提供的一种用于多控制器存储系统的故障处理方法和系统,当从控制器向主控制器传输数据时,由HA模块检测该主控制器是否宕机,并在检测到该主控制器宕机时该正向该主控制器传输数据的从控制器内从MCC通信模块发送异常终止信号,从MCC通信模块在接收到该HA模块发送的异常终止信号后,调用该从控制器内从IOM模块停止向自身发送数据,即调压该从IOM模块停止向该从MCC通信模块发送数据,并将已发送至该主控制器但还未被该主控制器写入后端磁盘的写入失败数据和还未发送至该主控制器的未发送数据返回该从IOM模块,该从IOM模块在接收到该写入失败数据和未发送数据后,将会将该接收到的写入失败数据和未发送数据添加至阻塞队列上层,并对SCST模块中还未下发的数据进行阻塞,SCST模块将每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行下发,直到该阻塞队列中数据被该主控制器写入后端磁盘中。当从控制器向主控制器传输数据时,通过HA模块检测该主控制器是否宕机,当HA模块检测到该主控制器宕机时,立即向该从控制器发送异常终止信号,控制该从控制器停止向主控制器传输出数据,并对SCST模块中还未下发的数据进行阻塞,最后由SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行再次下发,保证了写入数据的完整性和多控制器存储系统的稳定性,且等待时间较短,具有较高的数据写入效率。
可选的,图2示出了本发明实施例提供的用于多控制器存储系统的故障处理方法中从控制器向主控制器传输数据的方法流程图,参照图2,该从控制器向主控制器传输数据的方法可以包括:
步骤S200:所述从控制器内从IOM模块接收所述SCST模块下发的数据,将所述SCST模块下发的数据发送给所述从控制器内从MCC通信模块;
当SCST模块通过从控制器向后端磁盘写入数据时,由从控制器的从IOM模块接收SCST模块下发的数据,然后将改SCST模块下发的数据发送给该从控制器内从MCC通信模块。
步骤S210:所述从MCC通信模块接收到所述从IOM模块发送的数据后,将所述从IOM模块发送的数据发送给主控器内主MCC通信模块。
从MCC通信模块接收到从IOM模块发送的数据后,将会将从IOM模块发送的数据发送给主控器,具体的,由主控制器的主MCC通信模块接收从控制器的从MCC通信模块发送的数据。
可选的,图3示出了本发明实施例提供的用于多控制器存储系统的故障处理方法中从MCC通信模块将写入失败数据返回从IOM模块的方法流程图,参照图3,该从MCC通信模块将写入失败数据返回从IOM模块的方法可以包括:
步骤S300:通过查询第一链表确定写入失败数据,确定发送各所述写入失败数据的第一虚拟卷;
若当从控制器向主控制器传输数据时,从控制器内从MCC通信模块将写入失败数据记录在第一链表中,且从IOM模块包括至少一虚拟卷,则当从MCC通信模块将写入失败数据返回从IOM模块时,可先通过查询第一链表确定写入失败数据,并在查询得到各写入失败数据后确定发送各写入失败数据的第一虚拟卷。
步骤S310:将各所述写入失败数据分别返回各自相对应的第一虚拟卷。
从控制器在通过查询第一链表确定写入失败数据,且确定发送各写入失败数据的第一虚拟卷后,将各写入失败数据分别返回各自相对应的第一虚拟卷,来将写入失败数据返回从IOM模块。
可选的,图4示出了本发明实施例提供的用于多控制器存储系统的故障处理方法中从MCC通信模块将写入失败数据记录在第一链表的方法流程图,参照图4,该从MCC通信模块将写入失败数据记录在第一链表的方法可以包括:
步骤S400:所述从MCC通信模块确定已发送至主控制器的发送数据;
在从控制器向主控制器传输数据时,从MCC通信模块可确定哪些数据已经发送给主控制器,即确定已发送至主控制器的发送数据。
步骤S410:根据主控制器在将数据写入后端磁盘后返回的反馈信号,确定已经被主控制器写入后端磁盘的写入成功数据;
在从控制器向主控制器传输数据时,从MCC通信模块还可通过主控制器在将数据写入后端磁盘后返回的反馈信号,来确定主控制器已将哪些数据已经成功写入后端磁盘,即已经被主控制器写入后端磁盘的写入成功数据。
步骤S420:根据所述发送数据和写入成功数据得到已发送至主控制器但还未被主控制器写入后端磁盘的写入失败数据,将得到的所述写入失败数据记录在第一链表中。
从MCC通信模块在确定所有发送数据和写入成功数据后,可通过比对发送数据和写入成功数据来确定得到已发送至主控制器但还未被主控制器写入后端磁盘的写入失败数据,然后将这些写入失败数据记录在第一链表中。
可选的,图5示出了本发明实施例提供的用于多控制器存储系统的故障处理方法中从MCC通信模块将未发送数据返回从IOM模块的另一方法流程图,参照图5,该从MCC通信模块将未发送数据返回从IOM模块的另一方法可以包括:
步骤S500:通过查询第二链表确定未发送数据,并确定发送各所述未发送数据的第二虚拟卷;
若当从控制器向主控制器传输数据时,从控制器内从MCC通信模块将未发送数据记录在第二链表中,且从IOM模块包括至少一虚拟卷,则当从MCC通信模块将未发送数据返回从IOM模块时,可先通过查询第而链表确定未发送数据,并在查询得到各未发送数据后确定发送各未发送数据的第二虚拟卷。
步骤S510:将各所述未发送数据分别返回各自相对的第二虚拟卷。
从控制器在通过查询第二链表确定未发送数据,且确定发送各未发送数据的第二虚拟卷后,将各未发送数据分别返回各自相对应的第二虚拟卷,来将未发送数据返回从IOM模块。
可选的,图6示出了本发明实施例提供的用于多控制器存储系统的故障处理方法中HA模块检测主控制器是否宕机的方法流程图,参照图6,该HA模块检测主控制器是否宕机的方法可以包括:
步骤S600:所述HA模块每隔预设时间间隔向所述主控制器发送一心跳数据包;
步骤S610:判断所述主控制器是否在每次接收到心跳数据包后的预设时间段内均向所述HA模块返回一相应的心跳反馈信息;
HA模块可通过每隔预设时间间隔向主控制器发送一心跳数据包,然后检查主控制器是否在每次接收到心跳数据包后的预设时间段内均返回一相应的心跳反馈信息,来确定该主控制器宕机。
步骤S620:若否,则所述HA模块确定所述主控制器宕机。
若主控制器未在每次接收到心跳数据包后的预设时间段内均向HA模块返回一相应的心跳反馈信息,则确定该主控制器宕机。
可选的,图7示出了本发明实施例提供的用于多控制器存储系统的故障处理方法中更新预设时间间隔的方法流程图,参照图7,该更新预设时间间隔的方法可以包括:
步骤S700:从零开始累计所述SCST模块对所述阻塞队列中数据进行下发的次数;
SCST模块每隔预设时间间隔对阻塞队列中数据按照预设顺序进行下发后,可从零开始累计该SCST模块对该阻塞队列中数据进行下发的次数。
步骤S710:判断所述次数大于预设数值;
步骤S720:若大于,则延长所述预设时间间隔,得到更新后预设时间间隔,将所述次数归零,所述SCST模块每隔所述更新后时间间隔对所述阻塞队列中数据按照预设次序进行下发。
若判定数据进行下发的次数大于预设数值,则延长该SCST模块对该阻塞队列中数据进行下发的预设时间间隔,得到更新后预设时间间隔,并将该次数归零,如此,SCST模块将在得到更新后预设时间间隔后,每隔该更新后时间间隔对该阻塞队列中数据按照预设次序进行下发。
本发明实施例提供的用于多控制器存储系统的故障处理方法,当从控制器向主控制器传输数据时,通过HA模块检测该主控制器是否宕机,当HA模块检测到该主控制器宕机时,立即向该从控制器发送异常终止信号,控制该从控制器停止向主控制器传输出数据,并对SCST模块中还未下发的数据进行阻塞,最后由SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行再次下发,保证了写入数据的完整性和多控制器存储系统的稳定性,且等待时间较短,具有较高的数据写入效率。
下面对本发明实施例提供的用于多控制器存储系统的故障处理系统进行介绍,下文描述的用于多控制器存储系统的故障处理系统与上文描述的用于多控制器存储系统的故障处理方法可相互对应参照。
图8为本发明实施例提供的用于多控制器存储系统的故障处理系统的系统框图,参照图8,该用于多控制器存储系统的故障处理系统可以包括:HA模块10,从控制器20和SCST模块30,其中,所述从控制器20包括从MCC通信模块21和从IOM模块22,
HA模块10,用于当从控制器向主控制器传输数据时,检测所述主控制器是否宕机,当检测到所述主控制器宕机时,向所述从控制器内从MCC通信模块发送异常终止信号;
从MCC通信模块21,用于接收到所述异常终止信号后,调用所述从控制器内从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述主控制器的未发送数据返回所述从IOM模块;
从IOM模块22,用于将所述写入失败数据和所述未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞;
SCST模块30,用于每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行再次下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。
可选的,图9为本发明实施例提供的用于多控制器存储系统的故障处理系统的另一系统框图,参照图9,该用于多控制器存储系统的故障处理系统还可以包括:计数模块40。
计数模块40,用于从零开始累计SCST模块30对所述阻塞队列中数据进行下发的次数,当所述次数大于预设数值时,延长所述预设时间间隔,得到更新后预设时间间隔,将所述次数归零;当所述计数模块得到更新后预设时间间隔后,SCST模块30每隔所述更新后时间间隔对所述阻塞队列中数据按照预设次序进行下发。
本发明实施例提供的用于多控制器存储系统的故障处理系统,当从控制器向主控制器传输数据时,通过HA模块检测该主控制器是否宕机,当HA模块检测到该主控制器宕机时,立即向该从控制器发送异常终止信号,控制该从控制器停止向主控制器传输出数据,并对SCST模块中还未下发的数据进行阻塞,最后由SCST模块每隔预设时间间隔对该阻塞队列中数据按照预设顺序进行再次下发,保证了写入数据的完整性和多控制器存储系统的稳定性,且等待时间较短,具有较高的数据写入效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
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模块将所述写入失败数据和所述未发送数据添加至阻塞队列上层包括:各所述第一虚拟卷分别将各自对应的写入失败数据添加至阻塞队列上层,各所述第二虚拟卷分别将各自对应的未发送数据添加至阻塞队列上层。
6.根据权利要求5所述的故障处理方法,其特征在于,
所述确定发送各所述写入失败数据的第一虚拟卷后还包括:所述HA模块将各所述第一虚拟卷设置为阻塞状态;
所述确定发送各所述未发送数据的第二虚拟卷后还包括:所述HA模块将各所述第二虚拟卷设置为阻塞状态。
所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行再次下发,直至所述阻塞队列中数据被所述主控制器写入后端磁盘后还包括:所述HA模块将各所述第一虚拟卷和第二虚拟卷设置为正常工作状态。
7.根据权利要求1所述的故障处理方法,其特征在于,所述HA模块检测所述主控制器是否宕机包括:
所述HA模块每隔预设时间间隔向所述主控制器发送一心跳数据包;
若所述主控制器未在每次接收到心跳数据包后的预设时间段内均向所述HA模块返回一相应的心跳反馈信息,则所述HA模块确定所述主控制器宕机。
8.根据权利要求1所述的故障处理方法,其特征在于,所述SCST模块每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行下发后还包括:
从零开始累计所述SCST模块对所述阻塞队列中数据进行下发的次数;
当所述次数大于预设数值时,延长所述预设时间间隔,得到更新后预设时间间隔,将所述次数归零,所述SCST模块每隔所述更新后时间间隔对所述阻塞队列中数据按照预设次序进行下发。
9.一种用于多控制器存储系统的故障处理系统,其特征在于,包括:HA模块,从控制器和SCST模块,其中,所述从控制器包括从MCC通信模块和从IOM模块,
所述HA模块,用于当从控制器向主控制器传输数据时,检测所述主控制器是否宕机,当检测到所述主控制器宕机时,向所述从控制器内从MCC通信模块发送异常终止信号;
所述从MCC通信模块,用于接收到所述异常终止信号后,调用所述从控制器内从IOM模块停止向所述从MCC通信模块发送数据,并将已发送至所述主控制器但还未被所述主控制器写入后端磁盘的写入失败数据和还未发送至所述主控制器的未发送数据返回所述从IOM模块;
所述从IOM模块,用于将所述写入失败数据和所述未发送数据添加至阻塞队列上层,并对SCST模块还未下发的数据进行阻塞;
所述SCST模块,用于每隔预设时间间隔对所述阻塞队列中数据按照预设顺序进行再次下发,直到所述阻塞队列中数据被所述主控制器写入后端磁盘。
10.根据权利要求9所述的故障处理系统,其特征在于,还包括:计数模块,用于从零开始累计所述SCST模块对所述阻塞队列中数据进行下发的次数,当所述次数大于预设数值时,延长所述预设时间间隔,得到更新后预设时间间隔,将所述次数归零;当所述计数模块得到更新后预设时间间隔后,所述SCST模块每隔所述更新后时间间隔对所述阻塞队列中数据按照预设次序进行下发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610082649.1A CN105786666B (zh) | 2016-02-05 | 2016-02-05 | 一种用于多控制器存储系统的故障处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610082649.1A CN105786666B (zh) | 2016-02-05 | 2016-02-05 | 一种用于多控制器存储系统的故障处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786666A true CN105786666A (zh) | 2016-07-20 |
CN105786666B CN105786666B (zh) | 2019-05-10 |
Family
ID=56402721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610082649.1A Active CN105786666B (zh) | 2016-02-05 | 2016-02-05 | 一种用于多控制器存储系统的故障处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786666B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648851A (zh) * | 2016-11-07 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种多控存储中io管理的方法和装置 |
CN106775504A (zh) * | 2017-03-16 | 2017-05-31 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
CN108228393A (zh) * | 2017-12-14 | 2018-06-29 | 浙江航天恒嘉数据科技有限公司 | 一种可扩展的大数据高可用的实现方法 |
CN109491845A (zh) * | 2018-10-09 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种存储产品控制器的测试方法及系统 |
CN111008092A (zh) * | 2019-12-12 | 2020-04-14 | 上海沪工焊接集团股份有限公司 | 一种焊机通信管理方法及焊机 |
CN111147126A (zh) * | 2019-12-26 | 2020-05-12 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916217A (zh) * | 2010-08-04 | 2010-12-15 | 中兴通讯股份有限公司 | 多控制器切换的方法、控制装置及系统 |
WO2012127529A1 (en) * | 2011-03-23 | 2012-09-27 | Hitachi, Ltd. | Storage apparatus and failure detection method |
KR101459750B1 (ko) * | 2014-07-15 | 2014-11-13 | 주식회사 백프로 | 안정성을 개선한 sas 데이터 컨버팅 시스템 |
CN104915153A (zh) * | 2015-06-09 | 2015-09-16 | 山东超越数控电子有限公司 | 一种基于scst的双控缓存同步设计方法 |
-
2016
- 2016-02-05 CN CN201610082649.1A patent/CN105786666B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916217A (zh) * | 2010-08-04 | 2010-12-15 | 中兴通讯股份有限公司 | 多控制器切换的方法、控制装置及系统 |
WO2012127529A1 (en) * | 2011-03-23 | 2012-09-27 | Hitachi, Ltd. | Storage apparatus and failure detection method |
KR101459750B1 (ko) * | 2014-07-15 | 2014-11-13 | 주식회사 백프로 | 안정성을 개선한 sas 데이터 컨버팅 시스템 |
CN104915153A (zh) * | 2015-06-09 | 2015-09-16 | 山东超越数控电子有限公司 | 一种基于scst的双控缓存同步设计方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648851A (zh) * | 2016-11-07 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种多控存储中io管理的方法和装置 |
CN106775504A (zh) * | 2017-03-16 | 2017-05-31 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
CN106775504B (zh) * | 2017-03-16 | 2020-06-12 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
CN108228393A (zh) * | 2017-12-14 | 2018-06-29 | 浙江航天恒嘉数据科技有限公司 | 一种可扩展的大数据高可用的实现方法 |
CN109491845A (zh) * | 2018-10-09 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种存储产品控制器的测试方法及系统 |
CN109491845B (zh) * | 2018-10-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种存储产品控制器的测试方法及系统 |
CN111008092A (zh) * | 2019-12-12 | 2020-04-14 | 上海沪工焊接集团股份有限公司 | 一种焊机通信管理方法及焊机 |
CN111147126A (zh) * | 2019-12-26 | 2020-05-12 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
CN111147126B (zh) * | 2019-12-26 | 2021-11-23 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105786666B (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105786666A (zh) | 一种用于多控制器存储系统的故障处理方法和系统 | |
US7661022B2 (en) | System for error handling in a dual adaptor system where one adaptor is a master | |
US7676616B2 (en) | Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system | |
US10671498B2 (en) | Method and apparatus for redundancy in active-active cluster system | |
US8719484B2 (en) | System and method for using a multipath | |
EP2828765B1 (en) | Cluster wide consistent detection of interconnect failures | |
US7076687B2 (en) | System and method for bi-directional failure detection of a site in a clustering system | |
US10348616B2 (en) | Packet transmission method and apparatus, and interconnect interface | |
US8560878B2 (en) | System and method for failure detection by a storage expander preceding an expander experiencing a failure | |
JP2010045760A (ja) | 冗長化システム用コネクションリカバリ装置,方法および処理プログラム | |
US12045137B2 (en) | Data backup method, apparatus, and system | |
US7797577B2 (en) | Reassigning storage volumes from a failed processing system to a surviving processing system | |
US8199648B2 (en) | Flow control in a variable latency system | |
US20090077275A1 (en) | Multiple I/O interfacing system for a storage device and communicating method for the same | |
CN109445984B (zh) | 一种业务恢复方法、装置、仲裁服务器以及存储系统 | |
CN104683153B (zh) | 一种集群路由器主备mpu控制方法及其系统 | |
WO2024174477A1 (zh) | 一种存储系统的同步远程复制方法及装置 | |
CN110166558B (zh) | 一种多控存储集群的通信方法、装置及设备 | |
US7558886B2 (en) | Method and apparatus for controlling data flows in distributed storage systems | |
JP3024556B2 (ja) | リビジョン番号チェックシステム、リビジョン番号チェック装置およびリビジョン番号チェック方法 | |
JPH03257536A (ja) | ホストコンピュータ切換え方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |