本发明属于存储技术领域,尤其涉及一种双控存储系统故障转储测试方法及系统。
背景技术:
随着it行业的高速发展,信息化、大数据及云计算的发展对存储系统的稳定性及可靠性要求越来越高。双控存储系统是保障数据可靠性的有效方式,当一个存储控制器出现故障时,另外一个控制器仍然可以提供服务。双控存储系统是当前中小企业数据存储的首选方案。故障转储是存储系统为了在系统发生故障时能够将错误信息进行收集并进行存储的一个功能。在双控存储系统中,无论其中那一个存储节点发生故障,存储系统都应该能够进行故障转储。
在产品出厂前,均需要对双控存储系统的故障转储功能进行验证测试,目前,传统的故障转储功能的测试方法有插拔控制器、下电等方式来模拟存储系统故障,但这些测试验证方式均是通过手动操作实现,且测试效率较低。
技术实现要素:
本发明的目的在于提供一种双控存储系统故障转储测试方法,旨在解决现有技术中故障转储功能的测试验证方式均是通过手动操作实现,且测试效率较低的问题。
本发明是这样实现的,一种双控存储系统故障转储测试方法,所述方法包括下述步骤:
对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测,所述第一存储控制器和第二存储控制器的状态包括active状态和service状态;
当所述第一存储控制器和第二存储控制器的状态均为active状态时,则执行一次故障转储命令,对所述存储系统的转储文件进行一次故障转储操作;
当本次转储文件操作完成时,判断故障转储操作的次数是否达到预先设置的次数阈值;
当判定故障转储操作的次数达到预先设置的次数阈值时,判定故障转储测试完成;
当判定故障转储操作的次数未达到预先设置的次数阈值时,则返回执行所述对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测的步骤。
作为一种改进的方案,当所述第一存储控制器和第二存储控制器均为active状态时,所述第一存储控制器和第二存储控制器均处于正常工作状态;
当所述第一存储控制器和第二存储控制器中其中一个的状态的为active状态,另一个的状态为service状态时,所述存储系统正常提供服务;
当所述第一存储控制器和第二存储控制器均为service状态时,所述存储系统暂停服务。
作为一种改进的方案,所述对所述存储系统的转储文件进行一次故障转储操作的步骤之后,所述当本次转储文件操作完成时,判断故障转储操作的次数是否达到预先设置的次数阈值的步骤之前还包括下述步骤:
判断本次故障转储文件的等待时间是否到达预先设置的时间阈值;
若本次故障转储文件的等待时间到达预先设置的时间阈值,则判断本次故障转储文件的数量是否达到预先设置的文件数量阈值;
若本次故障转储文件的数量达到预先设置的文件数量阈值,则执行所述判断故障转储操作的次数是否达到预先设置的次数阈值的步骤;
若本次故障转储文件的数量未达到预先设置的文件数量阈值,则控制退出故障转储测试;
若判断本次故障转储文件的等待时间未到达预先设置的时间阈值,则继续等待。
作为一种改进的方案,所述方法还包括下述步骤:
预先对文件数量阈值、时间阈值和次数阈值分别进行设置。
本发明的另一目的在于提供一种双控存储系统故障转储测试系统,所述系统包括:
状态检测模块,用于对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测,所述第一存储控制器和第二存储控制器的状态包括active状态和service状态;
故障转储控制模块,用于当所述第一存储控制器和第二存储控制器的状态均为active状态时,则执行一次故障转储命令,对所述存储系统的转储文件进行一次故障转储操作;
第一判断模块,用于当本次转储文件操作完成时,判断故障转储操作的次数是否达到预先设置的次数阈值;
测试完成判定模块,用于当判定故障转储操作的次数达到预先设置的次数阈值时,判定故障转储测试完成;
当判定故障转储操作的次数未达到预先设置的次数阈值时,则返回执行所述状态检测模块对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测的步骤。
作为一种改进的方案,当所述第一存储控制器和第二存储控制器均为active状态时,所述第一存储控制器和第二存储控制器均处于正常工作状态;
当所述第一存储控制器和第二存储控制器中其中一个的状态的为active状态,另一个的状态为service状态时,所述存储系统正常提供服务;
当所述第一存储控制器和第二存储控制器均为service状态时,所述存储系统暂停服务。
作为一种改进的方案,所述系统还包括:
第二判断模块,用于判断本次故障转储文件的等待时间是否到达预先设置的时间阈值;
第三判断模块,用于若本次故障转储文件的等待时间到达预先设置的时间阈值,则判断本次故障转储文件的数量是否达到预先设置的文件数量阈值;
若本次故障转储文件的数量达到预先设置的文件数量阈值,则执行所述第一判断模块判断故障转储操作的次数是否达到预先设置的次数阈值的步骤;
退出测试控制模块,用于若本次故障转储文件的数量未达到预先设置的文件数量阈值,则控制退出故障转储测试;
等待控制模块,用于若判断本次故障转储文件的等待时间未到达预先设置的时间阈值,则继续等待。
作为一种改进的方案,所述系统还包括:
预先设置模块,用于预先对文件数量阈值、时间阈值和次数阈值分别进行设置。
在本发明实施例中,对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测;当第一存储控制器和第二存储控制器的状态均为active状态时,则执行一次故障转储命令,对存储系统的转储文件进行一次故障转储操作;当本次转储文件操作完成时,判断故障转储操作的次数是否达到预先设置的次数阈值;当判定故障转储操作的次数达到预先设置的次数阈值时,判定故障转储测试完成;当判定故障转储操作的次数未达到预先设置的次数阈值时,则返回执行对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测的步骤,从而实现对双控存储系统故障转储的自动检测,测试效率高。
附图说明
图1是本发明提供的双控存储系统故障转储测试方法的实现流程图;
图2是本发明提供的双控存储系统故障转储测试的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明提供的双控存储系统故障转储测试方法的实现流程图,其具体包括下述步骤:
在步骤s101中,对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测,所述第一存储控制器和第二存储控制器的状态包括active状态和service状态。
在该步骤中,当所述第一存储控制器和第二存储控制器均为active状态时,所述第一存储控制器和第二存储控制器均处于正常工作状态;
当所述第一存储控制器和第二存储控制器中其中一个的状态的为active状态,另一个的状态为service状态时,所述存储系统正常提供服务;
当所述第一存储控制器和第二存储控制器均为service状态时,所述存储系统暂停服务。
其中,上述对第一存储控制器和第二存储控制器的状态进行检测的命令为:mtinqlsservicenodes。
在步骤s102中,当所述第一存储控制器和第二存储控制器的状态均为active状态时,则执行一次故障转储命令,对所述存储系统的转储文件进行一次故障转储操作。
其中,该故障转储命令为mcsopconcurrentnodedump。
该次故障转储操作的流程是按照双控存储系统的转储方式进行文件转储,在此不再赘述。
在该步骤中,当第一存储控制器和第二存储控制器的状态存在其中一个不是上述active状态时,则控制退出测试。
在步骤s103中,判断本次故障转储文件的等待时间是否到达预先设置的时间阈值,是则执行步骤s104,否则执行步骤s107。
在步骤s104中,若本次故障转储文件的等待时间到达预先设置的时间阈值,则判断本次故障转储文件的数量是否达到预先设置的文件数量阈值,若是则执行步骤s105,否则执行步骤s106。
在步骤s105中,若本次故障转储文件的数量达到预先设置的文件数量阈值,则判断故障转储操作的次数是否达到预先设置的次数阈值,是则执行步骤s108,否则返回执行所述对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测的步骤。
当故障转储操作的次数未达到预先设置的次数阈值时,则返回执行继续执行一次故障文件转储操作,并且文件转储操作次数累加1次,直至达到次数阈值。
在步骤s106中,若本次故障转储文件的数量未达到预先设置的文件数量阈值,则控制退出故障转储测试。
在步骤s107中,若判断本次故障转储文件的等待时间未到达预先设置的时间阈值,则继续等待。
在步骤s108中,当判定故障转储操作的次数达到预先设置的次数阈值时,判定故障转储测试完成。
在本发明实施例中,在执行上述步骤s101之前还需要预先进行下述操作:
预先对文件数量阈值、时间阈值和次数阈值分别进行设置,其中,该文件数量阈值、时间阈值和次数阈值的参数大小可以根据实际的测试要求进行设置,例如不同的测试标准对应不同的参数大小,在此不再赘述。
在本发明实施例中,上述双控存储系统故障转储测试方法的实现框架结构包括一台应用服务器、双控存储系统和san网络,其中,该双控存储系统包括上述第一存储控制器和第二存储控制器,该应用服务器通过该san网络分别与该第一存储控制器和第二存储控制器连接,在保持双控存储系统存在读写压力的同时,循环调用双控存储系统故障转储命令,对双控存储系统进行故障转储操作,以达到模拟双控存储系统故障转储的场景。
本发明实施例提供的双控存储系统故障转储测试方法可以长时间持续模拟双控存储系统故障,并自动检查生成的故障转储文件数量,极大的提高了测试指令和测试效率。
图2示出了本发明提供的双控存储系统故障转储测试系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
状态检测模块11,用于对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测,所述第一存储控制器和第二存储控制器的状态包括active状态和service状态;
故障转储控制模块12,用于当所述第一存储控制器和第二存储控制器的状态均为active状态时,则执行一次故障转储命令,对所述存储系统的转储文件进行一次故障转储操作;
第一判断模块13,用于当本次转储文件操作完成时,判断故障转储操作的次数是否达到预先设置的次数阈值;
测试完成判定模块14,用于当判定故障转储操作的次数达到预先设置的次数阈值时,判定故障转储测试完成;
当判定故障转储操作的次数未达到预先设置的次数阈值时,则返回执行所述状态检测模块11对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测的步骤。
其中,第二判断模块15,用于判断本次故障转储文件的等待时间是否到达预先设置的时间阈值;
第三判断模块19,用于若本次故障转储文件的等待时间到达预先设置的时间阈值,则判断本次故障转储文件的数量是否达到预先设置的文件数量阈值;
若本次故障转储文件的数量达到预先设置的文件数量阈值,则执行所述第一判断模块13判断故障转储操作的次数是否达到预先设置的次数阈值的步骤;
退出测试控制模块16,用于若本次故障转储文件的数量未达到预先设置的文件数量阈值,则控制退出故障转储测试;
等待控制模块17,用于若判断本次故障转储文件的等待时间未到达预先设置的时间阈值,则继续等待。
在本发明实施例中,预先设置模块18,用于预先对文件数量阈值、时间阈值和次数阈值分别进行设置。
其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。
在本发明实施例中,对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测;当第一存储控制器和第二存储控制器的状态均为active状态时,则执行一次故障转储命令,对存储系统的转储文件进行一次故障转储操作;当本次转储文件操作完成时,判断故障转储操作的次数是否达到预先设置的次数阈值;当判定故障转储操作的次数达到预先设置的次数阈值时,判定故障转储测试完成;当判定故障转储操作的次数未达到预先设置的次数阈值时,则返回执行对双控存储系统的第一存储控制器和第二存储控制器的状态进行检测的步骤,从而实现对双控存储系统故障转储的自动检测,测试效率高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。