一种磁盘链路错误注入方法、异常处理测试方法及装置与流程

文档序号:23068695发布日期:2020-11-25 18:48阅读:166来源:国知局
一种磁盘链路错误注入方法、异常处理测试方法及装置与流程

本发明涉及磁盘链路测试领域,具体涉及一种磁盘链路错误注入方法、异常处理测试方法及装置。



背景技术:

存储设备作为专业的数据存储,存储厂商不仅关注正常情况下的数据安全,也在逐渐完善各种异常情况下的数据处理流程。磁盘链路包含磁盘、磁盘插槽、控制器之间的数据传输,随着数据量增加和使用时间变长,链路中出现错误的几率不可避免,以双控设备为例,当控制器a链路上错误计数超过设定最大值(阈值)时,控制器a链路被判定为故障,此时建议用户更换此控制器,由另一控制器接管业务正常运行;因磁盘插槽与两个控制器同时相连,当某块磁盘插槽的两条链路均出现错误计数,则建议用户更换磁盘插槽,设备正常运行。磁盘、磁盘插槽、控制器均属于存储部件,不能通过外接分析仪等工具进行错误模拟,一般通过强制赋值等方式对数据总线直接造错,在构造错误后,若恢复不当则存在丢数据风险,因链路错误需要超过阈值才可以进入异常处理,所以需要多次进行强制赋值,恢复难度增加,执行风险高;赋值字段需要参照具体协议中各字段要求赋值,命令执行难度大,测试效率低。



技术实现要素:

为解决上述问题,本发明提供过一种磁盘链路错误注入方法、异常处理测试方法及装置,错误注入过程操作简单,不影响数据安全。

本发明的技术方案是:一种磁盘链路错误注入方法,包括以下步骤:

待测磁盘与测试端均连接至scsi总线;测试端通过scsi总线向待测磁盘发送读取待测磁盘信息命令;测试端通过scsi总线接收待测磁盘返回的根据读取待测磁盘信息命令所读取的相关信息;

测试端判断所返回相关信息的参数实际值是否与预设参数理论值不同;

若不同,则磁盘链路错误注入成功;其中,所预设参数理论值与正常传输情况下返回的相关信息参数实际值不同。

进一步地,所发送读取待测磁盘信息命令为读取待测磁盘模式页相关信息的命令。

进一步地,预设参数理论值为所读取相关信息的长度理论值;

测试端判断所返回相关信息的参数实际值是否与预设参数理论值不同,具体为:判断所返回相关信息的长度实际值是否与预设长度理论值不同。

进一步地,预设参数理论值包含在读取待测磁盘信息命令中。

进一步地,读取待测磁盘信息命令中还包含待测磁盘scsi扩展地址、待读取信息在scsi协议中的对应值、所执行操作类型、待测磁盘scsi地址、待测试设备类型。

本发明的技术方案还包括一种磁盘链路异常处理测试方法,待测磁盘分别与第一测试端、第二测试端连接;该方法包括以下步骤:

第一测试端多次执行上述任一项所述的方法进行磁盘链路错误注入;

对错误注入成功次数进行计数并实时监测该计数数值,错误注入每成功一次,计数加1;

当错误注入成功次数超过第一预设次数时,检测第一测试端是否发出链路异常提醒、第一测试端执行下线操作且第二测试端正常运行;

若否,则测试不通过,停止测试;

若是,则测试通过,第一测试端和第二测试端可正常处理链路异常。

进一步地,该方法在第一测试端和第二测试端是否可正常处理链路异常测试通过后,还包括以下步骤:

第二测试端执行上述任一项所述的方法进行磁盘链路错误注入;

当错误注入成功时,检测第二测试端是否发出磁盘插槽不可用提醒;

若发出磁盘插槽不可用提醒,则测试通过,待测磁盘插槽可正常处理链路异常;

若未发出磁盘插槽不可用提醒,则继续执行上述任一项所述的方法进行磁盘链路错误注入;

若错误注入成功第二预设次数后,仍未检测到第二测试端是否发出磁盘插槽不可用提醒,则测试不通过,停止测试。

本发明的技术方案还包括一种磁盘链路异常处理测试装置,配置于测试端,包括,

命令发送模块:通过scsi总线向待测磁盘发送读取待测磁盘信息命令;

信息接收模块:接收由scsi总线返回的从待测磁盘读取的相关信息;

参数判断模块:判断所返回相关信息的参数实际值是否与预设参数理论值不同,若不同,则磁盘链路错误注入成功;其中,所预设参数理论值与正常传输情况下返回的相关信息参数实际值不同。

进一步地,该装置还包括,

错误注入次数计数模块:对错误注入成功次数进行计数,每成功一次,计数加1。

进一步地,该装置还包括,

第一状态检测模块:检测该装置所在测试端是否发出链路异常提醒、该测试端是否执行下线操作以及备用测试端是否正常运行;

第二状态检测模块:检测该装置所在测试端是否发出磁盘插槽不可用提醒。

本发明提供的一种磁盘链路错误注入方法、异常处理测试方法及装置,通过scsi总线读取磁盘信息,并不会对磁盘数据产生影响,避免数据丢失风险;预设参数理论值,返回数据与预设参数理论值不同即可,减少错误恢复步骤,简化了错误注入方法;通过scsi总线这一接口,配合数据读取模拟注错,简化了测试人员的执行难度,提升异常处理流程的测试效率。

附图说明

图1是本发明具体实施例一方法流程示意图;

图2是本发明具体实施例二方法流程示意图;

图3是本发明具体实施例三方法流程示意图;

图4是本发明具体实施例四结构示意框图。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

以下对本发明涉及的英文进行说明。

scsi:smallcomputersysteminterface,小型计算机系统接口。scsi是一种连接主机和外围设备的接口,支持包括磁盘驱动器、磁带机、光驱、扫描仪在内的多种设备。它由scsi控制器进行数据操作,scsi控制器相当于一块小型cpu,有自己的命令集和缓存。

实施例一

如图1所示,本实施例提供一种模拟磁盘链路传输错误的方法,包括以下步骤:

s101,待测磁盘与测试端均连接至scsi总线;

s102,测试端通过scsi总线向待测磁盘发送读取待测磁盘信息命令;

s103,测试端通过scsi总线接收待测磁盘返回的根据读取待测磁盘信息命令所读取的相关信息;

s104,测试端判断所返回相关信息的参数实际值是否与预设参数理论值不同;

s105,若不同,则磁盘链路错误注入成功;其中,所预设参数理论值与正常传输情况下返回的相关信息参数实际值不同。

本实施例为实现模拟磁盘注错,使待测磁盘和测试端均与scsi总线连接,两者通过scsi总线通信。需要说明的是,scsi总线上包括scsi控制器,scsi控制器负责处理待测磁盘与测试端之间的数据传输。

具体实施时,测试端向待测磁盘读取信息,首先将读取待测磁盘信息命令输入scsi总线,由scsi控制器处理命令。scsi控制器接收的命令后查找到对应待测磁盘,告知待测磁盘读取相关信息,并接收待测磁盘返回的信息,将其返回给测试端。测试端对返回相关信息的参数进行判断,若参数与预设参数理论值不同,则判定传输有误,实现了磁盘链路传输错误的模拟。

本实施例中,测试端具体可向磁盘读取磁盘模式页信息,通过判定所读取模式页相关信息的长度是否与预设长度理论值相同来模拟磁盘链路传输注错。

为保证模拟注错成功,本实施例所预设参数理论值与正常传输情况下返回的相关信息参数实际值是不同的。比如本实施例通过判定所读取模式页相关信息的长度是否与预设长度理论值相同来模拟磁盘链路传输注错,将预设长度预设值(即预设参数预设值)设置为8192,8192是最长的长度,而模式页相关信息的长度一般不会达到255,因此从磁盘返回的信息长度是与预设长度预设值不同的,从而有效保证每次读取都返回长度不足的错误,成功模拟磁盘链路传输的错误。另一方式为,预先获取正确的相关信息长度值,将预设参数预设值设置为与该正确的相关信息长度值不同的值。

本实施例中,预设参数理论值可包含在读取待测磁盘信息命令,为实现数据的读取,读取待测磁盘信息命令中还包含待测磁盘scsi扩展地址、待读取信息在scsi协议中的对应值、所执行操作类型、待测磁盘scsi地址、待测试设备类型。

具体命令格式为:pl_scsi-l0–c0x1a,0,0x00,0x00,0xff,0–d255–wr–u0–vd。

其中,-l表示待测磁盘scsi扩展地址,–c表示待读取信息在scsi协议中的对应值,–d表示预设参数理论值,–w表示所执行操作类型(r表示读操作),–u表示待测磁盘scsi地址,–v表示待测试设备类型(d表示磁盘)。

待测磁盘scsi地址供scsi总线定位到待测磁盘,待测磁盘scsi扩展地址供定位到待测磁盘具体需读取信息的地址。

实施例二

在实施例一错误注入的基础上,本实施例提供一种磁盘链路异常处理测试方法,以检测链路异常时,测试端是否能正常处理异常。

待测磁盘一般为双控系统,即主控与待测磁盘正常通信,当主控与待测磁盘之间链路异常时,切换到备控以保证业务正常运行。

本实施例待测磁盘具体分别连接第一测试端、第二测试端;其中第一测试端作为主控,第二测试端作为备控。

如图2所示,该方法包括以下步骤:

s201,第一测试端多次执行实施例一所述的方法进行磁盘链路错误注入;

即在第一测试端通过实施例一的方法进行错误注入。

s202,对错误注入成功次数进行计数并实时监测该计数数值,错误注入每成功一次,计数加1;

第一测试端设置有第一预设次数,即错误注入次数超过第一预设次数之后,即触发第一测试端进行链路异常的处理。

s203,当错误注入成功次数超过第一预设次数时,检测第一测试端是否发出链路异常提醒、第一测试端执行下线操作且第二测试端正常运行;

正常情况下,链路出现异常时,第一测试端会发出链路异常提醒,且第一测试端被下线,然后业务切换到第二测试端,第二测试端可正常运行处理业务。

s204,若否,则测试不通过,停止测试;

若第一测试端和第二测试端未按上述过程处理异常,则说明测试端不能正常处理链路异常,测试不通过。

s205,若是,则测试通过,第一测试端和第二测试端可正常处理链路异常;

同样,若第一测试端和第二测试端按上述过程处理异常,则说明测试端不能正常处理链路异常,测试通过。

实施例三

在实施例二基础上,在第一测试端和第二测试端可正常处理链路异常情况下,可进一步对待测磁盘的插槽是否可正常处理链路异常进行测试。

如图3所示,本实施例提供的磁盘链路异常处理测试方法,包括以下步骤:

s301,第二测试端执行实施例一所述的方法进行磁盘链路错误注入;

s302,当错误注入成功时,检测第二测试端是否发出磁盘插槽不可用提醒;

s303,若发出磁盘插槽不可用提醒,则测试通过,待测磁盘插槽可正常处理链路异常;

s304,若未发出磁盘插槽不可用提醒,则继续执行实施例一所述的方法进行磁盘链路错误注入;

s305,若错误注入成功第二预设次数后,仍未检测到第二测试端是否发出磁盘插槽不可用提醒,则测试不通过,停止测试。

该方法即在第二测试端进行链路注错,此时第一测试端已下线,若链路仍然出现错误,正常情况下,待测磁盘插槽会处理异常,发出磁盘插槽不可用的提醒。

为保证测试效果准确,至少执行一次注错,最多执行第二预设次数次注错,在这期间,若能检测到磁盘插槽不可用提醒,则说明待测磁盘插槽可正常处理链路异常,若直到第二预设次数次仍检测不到磁盘插槽不可用提醒,则说明待测磁盘插槽不能正常处理链路异常。其中,第二预设次数不超过第二测试端的链路错误阈值,若超过第二测试端的链路错误阈值,则第二测试端同样会下线,无法测得磁盘插槽是否可正常处理异常。

实施例四

如图4所示,在实施例三基础上,本实施例提供一种磁盘链路异常处理测试装置,包括以下功能模块。

命令发送模块401:通过scsi总线向待测磁盘发送读取待测磁盘信息命令;

信息接收模块402:接收由scsi总线返回的从待测磁盘读取的相关信息;

参数判断模块403:判断所返回相关信息的参数实际值是否与预设参数理论值不同,若不同,则磁盘链路错误注入成功;其中,所预设参数理论值与正常传输情况下返回的相关信息参数实际值不同;

错误注入次数计数模块404:对错误注入成功次数进行计数,每成功一次,计数加1;

第一状态检测模块405:检测该装置所在测试端是否发出链路异常提醒、该测试端是否执行下线操作以及备用测试端是否正常运行;

第二状态检测模块406:检测该装置所在测试端是否发出磁盘插槽不可用提醒。

需要说明的是,任一测试端都可作为主控,也可作为备控,因此任一测试端上均设置上述所有功能模块。

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

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