CN107480023A - 一种磁盘故障注入的方法及系统 - Google Patents
一种磁盘故障注入的方法及系统 Download PDFInfo
- Publication number
- CN107480023A CN107480023A CN201710729915.XA CN201710729915A CN107480023A CN 107480023 A CN107480023 A CN 107480023A CN 201710729915 A CN201710729915 A CN 201710729915A CN 107480023 A CN107480023 A CN 107480023A
- Authority
- CN
- China
- Prior art keywords
- disk
- failure
- fault type
- write
- fault location
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000002347 injection Methods 0.000 title claims abstract description 18
- 239000007924 injection Substances 0.000 title claims abstract description 18
- 230000008859 change Effects 0.000 claims description 8
- 230000015556 catabolic process Effects 0.000 claims description 6
- 230000004888 barrier function Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000032696 parturition Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- 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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请公开了一种磁盘故障注入的方法,所述方法包括:接收故障注入指令,并根据所述故障注入指令选择故障类型;根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障;该方法省去了人工插拔盘的步骤,能够自动化地注入磁盘故障,加大对分布式存储系统的测试力度并提高频度;本申请还公开了一种磁盘故障注入的系统,具有以上有益效果。
Description
技术领域
本发明涉及数据存储领域,特别涉及一种磁盘故障注入的方法及系统。
背景技术
随着大数据、云计算、高性能应用的大量兴起,稳定可靠的分布式存储系统扮演者越来越重要的角色。保证分布式存储系统的稳定运行是保证上层应用正常工作的基础,通常以磁盘故障来测试存储系统的异常处理能力。
现有技术中,人为制造磁盘故障的方法通常是以人工手动插拔盘的方式实现的,但是手工插拔盘的方法效率较低且容易出错。
因此,如何自动化地注入磁盘故障,加大对分布式存储系统的测试力度并提高频度,是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种磁盘故障注入的方法及系统,能够自动化地注入磁盘故障,加大对分布式存储系统的测试力度并提高频度。
为解决上述技术问题,本申请提供一种磁盘故障注入的方法,该方法包括:
接收故障注入指令,并根据所述故障注入指令选择故障类型;
根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障。
可选的,所述根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障包括:
判断所述故障类型是否为插拔盘引起的故障;
若是,则将scsi磁盘的delete文件写入1。
可选的,所述根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障包括:
判断所述故障类型是否为改变磁盘运行状态引起的故障;
若是,则将scsi磁盘的state文件写入offline。
本申请还提供了一种磁盘故障注入的系统,该系统包括:
指令接收模块,用于接收的故障注入指令,并根据所述故障注入指令选择故障类型;
故障注入模块,用于根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障。
可选的,所述故障注入模块包括:
插拔盘故障判断模块,用于判断所述故障类型是否为插拔盘引起的故障;
插拔盘故障注入模块,用于当所述故障类型为插拔盘引起的所述故障时,则将scsi磁盘的delete文件写入1。
可选的,所述故障注入模块包括:
磁盘状态改变故障判断模块,用于判断所述故障类型是否为改变磁盘运行状态引起的故障;
磁盘状态改变故障注入模块,用于当所述故障类型为改变磁盘运行状态引起的所述故障时,将scsi磁盘的state文件写入offline。
本发明提供了一种磁盘故障注入的方法,接收故障注入指令,并根据所述故障注入指令选择故障类型;根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障。
本方法根据故障注入指令选择相应的故障类型,根据故障类型通过修改磁盘的状态字段来人为注入磁盘故障,省去了人工插拔盘的步骤。该方法能够自动化地注入磁盘故障,加大对分布式存储系统的测试力度并提高频度。本申请同时还提供了一种磁盘故障注入的系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种磁盘故障注入的方法的流程图;
图2为本申请实施例所提供的另一种磁盘故障注入的方法的流程图;
图3为本申请实施例所提供的又一种磁盘故障注入的方法的流程图;
图4为本申请实施例所提供的一种磁盘故障注入的系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种磁盘故障注入的方法的流程图;
具体步骤可以包括:
步骤S101:接收故障注入指令,并根据所述故障注入指令选择故障类型;
其中,本步骤是默认在进行本步骤之前有故障注入指令发送,故障注入指令可以是相关测试人员手动输入的,也可以是相关测试人员设定的程序按预定周期发送的,当然还存在其他的发送故障注入指令的方法,此处不进行具体的限定,本领域的技术人员可以根据本方法的具体应用环境选择适当的方法。
使磁盘产生故障的原因一般可以分为纯硬件故障和软件故障,相对来说,软件引起的硬件故障比较复杂,但是解决的方式有时候却十分简单,有时候重新启动或者重新安装系统之后可以消除故障。注入的磁盘故障既可以是纯硬件故障,也可以是软件故障,但是由于注入纯硬件故障的成本较高且具有一定的破坏性,因此尽量采用注入软件故障的方式。
通常情况下,对磁盘进行拔盘和强制使磁盘脱机是导致磁盘出现故障最简单的两种方法,当然本领域的技术人员也可以想到其他的导致磁盘出现故障的方法,此处不进行具体的限定。对磁盘进行拔盘产生的故障,通常是操作sysfs导出的scsi设备的属性文件来模拟插拔盘的过程,可理解的是,此处只是通过修改相关参数来模拟插拔盘,并不是真的靠人工进行插拔盘。
步骤S102:根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障;
由于故障注入指令是多种多样的,故障注入指令对应的故障类型也是多种多样的,可以理解的是故障注入指令对应的故障类型是相关测试人员预先设置好的。也就是说,本步骤只能对可以解析的故障类型写入相应的预设值。当在步骤S101中解析出未知的故障类型时,则无法执行本步骤的操作,此时应该将未知故障类型对应的故障注入指令上报给相关专家进行人工分析,进一步优化故障注入相关系统。
本步骤中涉及到的故障类型可以是插拔盘引起的故障,也可以是改变磁盘运行状态引起的故障,当然还可以是本领域技术人员预先设定的其他故障类型,此处不进行具体的限定。由于本领域的技术人员对预先设定的故障类型都设定了相应的注入故障的方案,对于不同的故障类型存在不同的故障注入方法。但是上述注入方法都是通过在状态字段写入对应的预设值实现的。可以理解的是,本步骤中的状态字段可以存在于多个文件中,也可以存在于某一个单独的文件中,所以在状态字段中写入预设值时可能是对多个文件进行操作,也可能是对单独的一个文件进行操作。
虽然本方案的目的是注入磁盘故障,但是通常来讲在注入磁盘故障之后需要在按照类似的方式把磁盘故障消除。消除磁盘故障的方法与注入磁盘故障的方法相对应,即对于每一种故障类型的磁盘故障的消除方法是不同的。当接收到消除故障指令之后,根据故障类型的不同,对状态字段进行对应的修改以接触故障状态。当然,上述接触磁盘故障的方法只是对本方案的优化,本领域的技术人员可以根据实际应用的具体条件进行选择。
下面请参见图2,图2为本申请实施例所提供的另一种磁盘故障注入的方法的流程图;
具体步骤可以包括:
步骤S201:接收故障注入指令,并根据所述故障注入指令选择故障类型;
步骤S202:判断所述故障类型是否为插拔盘引起的故障;若是,则进入步骤S203;
其中,若执行本步骤时判断故障类型不是插拔盘引起的故障,则可以终止整个流程,再去查找该故障类型对应的某个事件引起的故障,再去执行对应的操作。
步骤S203:若是,则将scsi磁盘的delete文件写入1。
其中,在磁盘的delete文件写1的具体方法为:在磁盘对应的sysfs目录在/sys/block下,比如对sdx进行删除磁盘操作,对scsi磁盘的文件delete写入1即可,使用命令echo 1>/sys/block/sdx/device/delete。命令执行成功后,设备文件/dev/sdx被删除,/sys/block/sdx目录被删除,lsblk下没有sdx磁盘。此时存储系统对sdx的操作均会返回磁盘故障,进入异常处理。
当然,在磁盘故障注入完毕后,测试人员会对分布式存储系统的异常处理能力进行测试,测试完毕后需要消除磁盘故障。具体流程如下:通过扫描HBA卡对应的sysfs的属性文件scan即可,使用命令echo"---">
/sys/class/scsi_host/host1/scan(其中---代表ctl的值,c代表channel,t代表scsi target id,l代表lun id,可通过lsscsi查看),命令执行成功后,会生成设备文件/dev/sdx,生成/sys/block/sdx目录,lsblk下可显示出sdx,此时会触发udev规则,挂载磁盘,系统可以正常使用该磁盘。
下面请参见图3,图3为本申请实施例所提供的又一种磁盘故障注入的方法的流程图;
步骤S301:接收故障注入指令,并根据所述故障注入指令选择故障类型;
步骤S302:判断所述故障类型是否为改变磁盘运行状态引起的故障;
其中,若执行本步骤时判断故障类型不是改变磁盘运行状态引起的故障,则可以终止整个流程,再去查找该故障类型对应的某个事件引起的故障,再去执行对应的操作。
步骤S303:若是,则将scsi磁盘的state文件写入offline。
其中,在scsi磁盘的state文件写入offline的具体流程如下:在scsi磁盘对应的sysfs目录在/sys/block下,对scsi磁盘的状态文件state写入offline,使用命令echooffline>/sys/block/sdx/device/state,此时海量存储系统对sdx的操作均会返回磁盘故障,进入异常处理。
当然,在磁盘故障注入完毕后,测试人员会对分布式存储系统的异常处理能力进行测试,测试完毕后需要消除磁盘故障。具体流程如下:对state文件写入Running即可使用该磁盘,使用命令echo running>/sys/block/sdx/device/state,正式使用前需要umount掉原来的挂载点,重新进行挂载,此方法不会触发udev规则。
请参见图4,图4为本申请实施例所提供的一种磁盘故障注入的系统的结构示意图;
该系统可以包括:
指令接收模块100,用于接收的故障注入指令,并根据所述故障注入指令选择故障类型;
故障注入模块200,用于根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障。
在本申请提供的另一种磁盘故障注入的系统的实施例中,所述故障注入模块200包括:
插拔盘故障判断模块,用于判断所述故障类型是否为插拔盘引起的故障;
插拔盘故障注入模块,用于当所述故障类型为插拔盘引起的所述故障时,则将scsi磁盘的delete文件写入1。
在本申请提供的又一种磁盘故障注入的系统的实施例中,所述故障注入模块200包括:
磁盘状态改变故障判断模块,用于判断所述故障类型是否为改变磁盘运行状态引起的故障;
磁盘状态改变故障注入模块,用于当所述故障类型为改变磁盘运行状态引起的所述故障时,将scsi磁盘的state文件写入offline。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (6)
1.一种磁盘故障注入的方法,其特征在于,包括:
接收故障注入指令,并根据所述故障注入指令选择故障类型;
根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障。
2.根据权利要求1所述方法,其特征在于,所述根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障包括:
判断所述故障类型是否为插拔盘引起的故障;
若是,则将scsi磁盘的delete文件写入1。
3.根据权利要求1所述方法,其特征在于,所述根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障包括:
判断所述故障类型是否为改变磁盘运行状态引起的故障;
若是,则将scsi磁盘的state文件写入offline。
4.一种磁盘故障注入的系统,其特征在于,包括:
指令接收模块,用于接收的故障注入指令,并根据所述故障注入指令选择故障类型;
故障注入模块,用于根据所述故障类型在状态字段写入对应的预设值,用于生成对应的所述磁盘故障。
5.根据权利要求4所述系统,其特征在于,所述故障注入模块包括:
插拔盘故障判断模块,用于判断所述故障类型是否为插拔盘引起的故障;
插拔盘故障注入模块,用于当所述故障类型为插拔盘引起的所述故障时,则将scsi磁盘的delete文件写入1。
6.根据权利要求4所述系统,其特征在于,所述故障注入模块包括:
磁盘状态改变故障判断模块,用于判断所述故障类型是否为改变磁盘运行状态引起的故障;
磁盘状态改变故障注入模块,用于当所述故障类型为改变磁盘运行状态引起的所述故障时,将scsi磁盘的state文件写入offline。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710729915.XA CN107480023A (zh) | 2017-08-23 | 2017-08-23 | 一种磁盘故障注入的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710729915.XA CN107480023A (zh) | 2017-08-23 | 2017-08-23 | 一种磁盘故障注入的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107480023A true CN107480023A (zh) | 2017-12-15 |
Family
ID=60601213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710729915.XA Pending CN107480023A (zh) | 2017-08-23 | 2017-08-23 | 一种磁盘故障注入的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480023A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021466A (zh) * | 2017-12-28 | 2018-05-11 | 深圳市金泰克半导体有限公司 | 一种固态硬盘的协议错误处理的验证方法及系统 |
CN109101193A (zh) * | 2018-07-18 | 2018-12-28 | 联想(北京)有限公司 | 一种存储设备状态控制方法及装置 |
CN109408130A (zh) * | 2018-12-18 | 2019-03-01 | 广东浪潮大数据研究有限公司 | 一种bios的启动方法、启动系统及相关装置 |
CN111986707A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种磁盘链路错误注入方法、异常处理测试方法及装置 |
CN112466383A (zh) * | 2020-11-06 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 存储系统仲裁可靠性的测试方法、测试装置及测试设备 |
-
2017
- 2017-08-23 CN CN201710729915.XA patent/CN107480023A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021466A (zh) * | 2017-12-28 | 2018-05-11 | 深圳市金泰克半导体有限公司 | 一种固态硬盘的协议错误处理的验证方法及系统 |
CN109101193A (zh) * | 2018-07-18 | 2018-12-28 | 联想(北京)有限公司 | 一种存储设备状态控制方法及装置 |
CN109408130A (zh) * | 2018-12-18 | 2019-03-01 | 广东浪潮大数据研究有限公司 | 一种bios的启动方法、启动系统及相关装置 |
CN111986707A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种磁盘链路错误注入方法、异常处理测试方法及装置 |
CN111986707B (zh) * | 2020-08-21 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种磁盘链路异常处理测试方法及装置 |
CN112466383A (zh) * | 2020-11-06 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 存储系统仲裁可靠性的测试方法、测试装置及测试设备 |
CN112466383B (zh) * | 2020-11-06 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 存储系统仲裁可靠性的测试方法、测试装置及测试设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107480023A (zh) | 一种磁盘故障注入的方法及系统 | |
CN110908682B (zh) | 一种车辆控制器的固件升级方法、系统、车辆和存储介质 | |
EP2881854A1 (en) | Storage method and apparatus for distributed file system | |
CN104065637A (zh) | 网页游戏运行的方法及装置 | |
CN102595184B (zh) | 智能电视自动化测试方法及系统 | |
CN105446864A (zh) | 缓存文件删除影响的校验方法、装置及移动终端 | |
CN107729231B (zh) | 一种基于操作系统的故障注入方法及装置 | |
CN106843982B (zh) | 一种基于fpga的数据处理方法及装置 | |
CN112996020A (zh) | 一种基于蓝牙的自动化测试方法、装置及蓝牙测试终端 | |
CN116431452A (zh) | 数据库的压力测试方法、装置、电子设备和可读存储介质 | |
CN113609027A (zh) | 一种arm云服务器的测试方法、装置、电子设备和存储介质 | |
CN109408088A (zh) | Cpld升级方法、装置、系统和计算机可读存储介质 | |
CN104702463A (zh) | 一种对多机房进行旁路测试的方法、装置及系统 | |
CN104348905A (zh) | 一种离线推送消息的方法及装置 | |
CN114115724A (zh) | 一种固态硬盘安全擦除方法及装置 | |
CN103645935A (zh) | 一种国产环境下jvm参数调整装置和方法 | |
CN103279408A (zh) | 独立冗余磁盘阵列raid性能的测试方法 | |
CN103823701B (zh) | 一种移动终端产品版本自动升级控制方法 | |
CN115129574A (zh) | 一种代码测试方法和装置 | |
CN105224250A (zh) | 高性能域名解析处理方法和装置 | |
CN115580550A (zh) | 网卡稳定性测试方法、装置、设备及存储介质 | |
CN115469561A (zh) | 仿真测试方法及装置、电子设备和存储介质 | |
CN114115957A (zh) | 一种带备份的fpga在线更新方法及其系统 | |
CN105577451A (zh) | 云电视系统的升级方法及装置 | |
CN112925770A (zh) | 一种数据库扩容方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |
|
RJ01 | Rejection of invention patent application after publication |