CN102270173A - 基于scsi驱动层的故障注入工具 - Google Patents

基于scsi驱动层的故障注入工具 Download PDF

Info

Publication number
CN102270173A
CN102270173A CN2011102043718A CN201110204371A CN102270173A CN 102270173 A CN102270173 A CN 102270173A CN 2011102043718 A CN2011102043718 A CN 2011102043718A CN 201110204371 A CN201110204371 A CN 201110204371A CN 102270173 A CN102270173 A CN 102270173A
Authority
CN
China
Prior art keywords
fault
scsi
command
order
kernel
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
Application number
CN2011102043718A
Other languages
English (en)
Inventor
左德承
钱军
张展
薛利兴
罗丹彦
苗百利
周海鹰
刘宏伟
董剑
祁鑫
温东新
杨孝宗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN2011102043718A priority Critical patent/CN102270173A/zh
Publication of CN102270173A publication Critical patent/CN102270173A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

基于SCSI驱动层的故障注入工具,涉及故障注入技术。本发明提供了一种用于检测海量存储器质量的、针对海量存储器的故障注入工具。所述故障注入工具中的故障注入命令传入接口用于提供外部故障配置文件输入接口,生成并发送故障注入命令至内核;内核模块在内核态运行,用于根据接收的故障注入命令截获并改写SCSI命令的queuecommand函数以实现故障注入;并在故障加载过程中将设备注册信息打印到内核日志中,在注入故障之后将故障信息打印到内核日志中;多路径设备号匹配查看接口用于通过查看内核日志与多路径配置信息,对设备进行比对,获得多路径设备各路径在工具中对应的注册号ID。本工具实现了更多的故障模拟。

Description

基于SCSI驱动层的故障注入工具
技术领域
本发明涉及故障注入技术。
背景技术
随着对存储系统容量的要求不断增大,海量存储系统已成为趋势。对海量存储系统各部分的评测便尤为重要,然而传统的测试程序忽略了可用性等领域,而故障注入技术又是可用性评测最为典型的方法,所以对其进行研究,提高评测质量,进而保证海量存储的质量是极其必要的。
在Linux操作系统下,基本上所有的存储设备都会以块设备的形式出现在/dev目录下供使用,而块设备在驱动层都会是一个注册在SCSI协议下的SCSI设备,因此存储设备不论是使用什么协议,在Linux下进行驱动注册时都会通过协议转换将本来的协议(如光纤)虚拟为SCSI协议,将设备虚拟为SCSI设备。
SCSI(Small Computer System Interface)是一种高性能计算外部设备接口,它的主要功能是用于连接外设设备,在主机和存储设备之间传输命令、状态和块数据,以提高系统性能或增加新的功能。
发明内容
本发明提供了一种用于检测海量存储器质量的、针对海量存储器的故障注入工具:基于SCSI驱动层的故障注入工具。
本发明所述的基于SCSI驱动层的故障注入工具包括故障注入命令传入接口、多路径设备匹配查看接口和内核模块,其中,
故障注入命令传入接口:用于提供外部故障配置文件输入接口,并根据输入的故障配置文件生成故障注入命令Scsi_Fault_Cmnd,并且将所述故障注入命令Scsi_Fault_Cmnd送入内核;
内核模块:在内核态运行,用于根据接收的故障注入命令,截获并改写SCSI命令的queuecommand函数以实现故障注入;还用于在故障加载过程中,将设备注册信息打印到内核日志中,还用于在注入故障之后,将故障信息打印到内核日志中;
多路径设备号匹配查看接口:用于通过查看内核日志与多路径配置信息,对设备进行比对,获得多路径设备各路径在工具中对应的注册号ID。
所述故障配置文件的格式为:命令类型$设备ID$故障类型$瞬时/永久故障(0/1)$瞬时故障持续时间$故障扇区起始位置$故障扇区终止位置$读写故障标识$,当某个信息不被使用时,采用空格填充。
将所述故障注入命令Scsi_Fault_Cmnd送入内核,是通过将故障注入命令Scsi_Fault_Cmnd写入/proc文件scsi_ctrl_gen的方式送入内核模块。
所述内核模块以动态加载模块的方式,作为内核的一部分,模拟注入磁盘永久故障、瞬时故障,具体过程为为:
用户将通过Linux系统的/proc文件系统将故障信息(Fault_Info)传入内核,工具接收到数据后,会将故障类型、故障间隔时间、故障起止扇区等信息写入到相应设备的故障信息结构(Dev_Fault_Info)中;新改写的queuecommand()函数将在每个SCSI Command执行前比对其执行设备的故障信息,以判断该命令是否与故障注入信息匹配,即该命令执行时是否应该“发生”错误,如果匹配将按既定方案改写命令和返回结果,则完成故障注入;
另外,内核模块在加载时,会在内核日志中打印出各SCSI设备在工具中的注册ID;这样主要为了方便多路径设备号匹配查看接口查询。用户也可以通过日志文件手动查询。
所述故障信息结构(Dev_Fault_Info)是用以保存设备的故障信息的数据结构,每个设备对应一个故障信息结构(Dev_Fault_Info)。
所述改写命令根据命令类型分为两类:一种是有错误返回信息的模拟过程中的命令改写,另一种是无错误返回信息的模拟过程中的命令改写,其中,有错误返回信息的模拟过程中的命令改写方法为:
SCSI上层发送请求命令REQUEST给SCSI中间层,该SCSI中层根据请求命令寻找目标设备的控制命令Command,然后将该控制命令Command的数据长度修改为0获得修改后的控制命令Command,然后发送修改后的控制命令Command给SCSI底层,该SCSI底层返回执行该命令的执行结果给SCSI中间层,在SCSI中间层将该执行结果更改为错误的执行结果,并根据该更改后的错误的执行结果获得错误信息发送给SCSI层。
无错误返回信息的模拟过程中的命令改写方法为:
SCSI上层发送请求命令REQUEST给SCSI中间层,在SCSI中间层根据所述请求命令REQUEST寻找目标设备的控制命令Command,然后不发送该控制命令给Command给SCSI底层,但提示给SCSI中间层该控制命令传送成功,SCSI中间层等待接收执行结果超时,并做超时处理(Timeout Handler),形成超时处理结果,并将该超时处理结果发送给SCSI上层,SCSI上层获得错误信息。
无错误返回信息的模拟故障有:总线挂起(SCSI_HANG)故障和延时故障(SCSI_TIME_OUT)故障,其中:
模拟总线挂起(SCSI_HANG)故障的方法是:什么都不做,直接将queuecommand的返回值设为DID_OK;
延时故障(SCSI_TIME_OUT):将命令的serial_number添加到一个用来存放本来要在注入了延时故障的设备上执行命令的serial_number的数组中,等待设备abort后再执行。
有错误返回信息的模拟故障有:扇区故障(SCSI_BAD_SECTOR)故障、总线忙(SCSI_BUS_BUSY)故障、队列满(SCSI_Q_FULL)故障和磁盘掉线(SCSI_DISK_OFFLINE)故障,其中:
扇区故障(SCSI_BAD_SECTOR)的模拟方法为,将命令的返回状态改为CHECK_CONDITION,以表明命令执行发生异常进入检测状态,然后将sense_buffer域的第一个字节改为70H,表明为当前错误,将Sense_key字段,即错误类型字段填写为MEDIUM_ERROR,即介质错误;
总线忙(SCSI_BUS_BUSY)故障的模拟方法为,将命令返回信息中的SCSI的状态改写为BUSY(scsi_status=BUSY),表明总线忙碌;
队列满(SCSI_Q_FULL)故障的模拟方法为,将命令返回信息中的SCSI状态改写为BUSY(scsi_status=QUEUE_FULL),表明队列已满;
磁盘掉线(SCSI_DISK_OFFLINE)故障的模拟方法为,如果SCSI命令的目标设备仍在线,则直接将其状态改为掉线(cmd->device->online=FALSE)。
本发明所述的故障注入工具是通过软件模拟的方式,在Linux的驱动层对SCSI命令进行拦截和改写来注入故障。
本发明所述的故障注入工具以驱动程序的形式在系统内核态上运行,可视作内核的一部分。通过故障注入工具提供的接口,经故障注入工具分析后根据不同的故障类型向目标位置注入故障。用户可以在注入故障后观察系统日志和目标系统的表现。
采用本发明所述的基于SCSI驱动层的故障注入工具实现故障注入,相比于模型模拟与硬件故障注入的方法,软件模拟故障注入的方式更加方便和灵活,其故障表现更加真实,成本也更加低。软件模拟的方式可以根据不同的情况自已指定故障注入方案。
相比于大多现有的软件故障注入工具,本工具实现了更多的故障模拟。而且其动态加载的方式能保证用户可以根据需要随时注入与清除故障。
为方便多路径设备研究者,本工具还专门提供了一个多路径设备号匹配查看接口,这样在拥有多个多路径设备的系统中,极大的方便了使用者,免去了很多查询的时间。
附图说明
图1本发明所述的SCSI故障注入工具的结构示意图,图2是有错误返回信息的模拟过程中的命令改写过程示意图,图3是无错误返回信息的模拟过程中的命令改写过程示意图。
具体实施方式
具体实施方式一、本实施方式所述的基于SCSI驱动层的故障注入工具是基于SCSI驱动层的故障注入工具,是基于Linux环境实现的,所述Linux的内核版本为2.6.28,本实施方式所述的基于SCSI驱动层的故障注入工具包括故障注入命令传入接口、多路径设备匹配查看接口和内核模块,其中,
故障注入命令传入接口:用于提供外部故障配置文件输入接口,并根据输入的故障配置文件生成故障注入命令Scsi_Fault_Cmnd,并且将所述故障注入命令Scsi_Fault_Cmnd送入内核;
内核模块:在内核态运行,用于根据接收的故障注入命令,截获并改写SCSI命令的queuecommand函数以实现故障注入;还用于在故障加载过程中,将设备注册信息打印到内核日志中,还用于在注入故障之后,将故障信息打印到内核日志中;
该内核模块通过截获与改写SCSI命令的queuecommand函数,向内核模块传入“故障注入命令”来控制内核模块什么时候注入故障、注入什么故障、清除故障等操作。
多路径设备号匹配查看接口:用于通过查看内核日志与多路径配置信息,对设备进行比对,获得多路径设备各路径在工具中对应的注册号ID。
本实施方式所述的故障注入工具中,内核模块是核心部分,它利用截取scsi命令的方式模拟注入scsi设备故障。内核模块主要完成以下功能:
1)模拟scsi设备永久、瞬时故障功能:通过对scsi命令的截获,将其与需要执行该命令的设备故障信息(由用户通过/proc/scsiFI_ctrl_gen文件写入内核的参数)进行比对,以确定该命令的执行是否会出错,即是否会反映系统的“故障”。如果为是,则对该scsi命令进行改写,并根据情况决定是否将改写后的命令传给底层scsi设备执行;最后要对scsi命令的执行结果进行改写,使其最后能够告诉系统scsi设备“有故障”。该功能主要以动态可加载模块scsiFI的方式运行于系统内核实现;
2)反馈给用户当前scsi系统状态:随时可以通过对/proc/scsiFI_ctrl进行读操作,看到当前系统是否有故障注入,注入的故障类型,瞬时或永久,执行了的scsi命令数等。
所述故障注入命令Scsi_Fault_Cmnd的结构为:
表1
  类型   字段   说明
  unsigned char   Devnum   注入故障的设备ID
  unsigned char   Type   命令类型
  Fault_Info   Fault   注入的故障信息
其中,所述故障注入命令Scsi_Fault_Cmnd中的命令类型Type有三种,分别为:清除所有故障SCSI_CLEAR_ALL、添加故障SCSI_ADD_FAULT、清除故障SCSI_CLEAR_FAULT。
所述故障注入命令Scsi_Fault_Cmnd中的故障信息Fault的数据结构Fault_Info为:
表2
Figure BDA0000077287720000051
所述故障信息中的故障类型有六种,分别为:总线挂起SCSI_HANG、扇区故障SCSI_BAD_SECTOR、延时故障SCSI_TIME_OUT、总线忙SCSI_BUS_BUSY、队列满SCSI_Q_FULL、磁盘掉线SCSI_DISK_OFFLINE。
所述扇区信息Params的数据结构params_t为:
表3
 类型   字段   说明
 unsigned long   Begin   扇区起始位置
 unsigned long   End   扇区终止位置
 unsigned char   Rwflag   读写标识
所述故障配置文件的格式为:
命令类型$设备ID$故障类型$瞬时/永久故障(0/1)$瞬时故障持续时间$故障扇区起始位置$故障扇区终止位置$读写故障标识$,当某个信息不被使用时,采用空格填充。
例如:当注入的故障不是扇区读写故障,故障扇区起始位置和故障扇区终止位置两个信息就不会被用到,此时,当这两个位置添加空格即可。
将所述故障注入命令Scsi_Fault_Cmnd送入内核,是通过将故障注入命令Scsi_Fault_Cmnd写入/proc文件scsi_ctrl_gen的方式送入内核模块。
本实施方式中,采用多路径设备号匹配查看接口实现了方便故障注入,免去了逐个路径查询的过程。
该接口通过脚本文件lsMpByKerMsg执行完成。其核心是C程序lsmp。lsMpByKerMsg首先将日志文件中打印出的设备ID号截取出,写入DeviceList文件。接着将multipath-ll命令(查询多路径设备信息)的打印结果写入mplist文件。最后执行lsmp。
lsmp将首先读取DeviceList文件,为在工具中注册的所有设备建立链表结构,记录他们的注册ID和SCSI号。接着读取mplist,对于每个多路径设备的信息,截掉不需要的信息,在每个路径后添加它在工具中的注册号,最后打印在控制台。
这样,用户在使用工具对多路径设备进行故障注入的时候,就可以直接执行该接口查询每个多路径的注册ID。这样免去了手动人工查询的步骤,更加方便了使用用户。
/proc文件:
/proc文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在Linux内核空间和用户空间之间进行通信。本工具中,在Linux的/proc/scsiFI目录下建立两个/proc文件scsi_ctrl和scsi_ctrl_gen,其中scsi_ctrl主要用于读取内核空间信息,scsi_ctrl_gen主要用于向内核空间写入信息。
除了查看日志文件,用户还可以通过读取scsi_ctrl文件得到各设备的注册ID。另外,读取该文件的返回信息还有各设备的故障注入情况,包括是否注入故障,故障数量,故障类型,是否为瞬时故障等。
而用户的注入故障主要通过写scsi_ctrl_gen的方式实现。用户在用户态将故障注入命令写入scsi_ctrl_gen文件,这样命令就被传入了内核空间。内核模块收到命令后的执行过程已在内核模块中介绍。
scsi_ctrl文件主要用来查看各设备在工具中的注册号与故障注入情况,用户可以通过读取该文件的方法得到上述信息;
scsi_ctrl_gen文件主要用来向系统注入故障。用户可以通过写入该文件的方法,将故障注入命令写入内核,内核模块接收到命令后即可执行。
具体实施方式二、本实施方式是对具体实施方式一中基于SCSI驱动层的故障注入工具的内核模块功能的进一步说明,本实施方式中,所述内核模块以动态加载模块的方式,作为内核的一部分,模拟注入磁盘永久故障、瞬时故障,具体过程为为:
用户将通过Linux系统的/proc文件系统将故障信息(Fault_Info)传入内核,工具接收到数据后,会将故障类型、故障间隔时间、故障起止扇区等信息写入到相应设备的故障信息结构(Dev_Fault_Info)中;新改写的queuecommand()函数将在每个SCSI Command执行前比对其执行设备的故障信息,以判断该命令是否与故障注入信息匹配,即该命令执行时是否应该“发生”错误,如果匹配将按既定方案改写命令和返回结果,则完成故障注入;
另外,内核模块在加载时,会在内核日志中打印出各SCSI设备在工具中的注册ID;这样主要为了方便多路径设备号匹配查看接口查询。用户也可以通过日志文件手动查询。
所述故障信息结构(Dev_Fault_Info)是用以保存设备的故障信息的数据结构,每个设备对应一个故障信息结构(Dev_Fault_Info)。
设备故障信息结构Dev_Fault_Info:
表3
Figure BDA0000077287720000071
例如:如果读写命令的执行设备被注入了扇区故障,该命令的读写扇区范围正好与故障扇区范围有交集,这表明该读写命令在执行过程中应该“发生”错误,此时就需要将该命令进行改写以模拟一个读写扇区错误。
所述改写命令根据命令类型分为两类:一种是有错误返回信息的模拟过程中的命令改写,另一种是无错误返回信息的模拟过程中的命令改写,其中,有错误返回信息的模拟过程中的命令改写方法为:
SCSI上层发送请求命令REQUEST给SCSI中间层,该SCSI中层根据请求命令寻找目标设备的控制命令Command,然后将该控制命令Command的数据长度修改为0获得修改后的控制命令Command,然后发送修改后的控制命令Command给SCSI底层,该SCSI底层返回执行该命令的执行结果给SCSI中间层,在SCSI中间层将该执行结果更改为错误的执行结果,并根据该更改后的错误的执行结果获得错误信息发送给SCSI层。
无错误返回信息的模拟过程中的命令改写方法为:
SCSI上层发送请求命令REQUEST给SCSI中间层,在SCSI中间层根据所述请求命令REQUEST寻找目标设备的控制命令Command,然后不发送该控制命令给Command给SCSI底层,但提示给SCSI中间层该控制命令传送成功,SCSI中间层等待接收执行结果超时,并做超时处理(Timeout Handler),形成超时处理结果,并将该超时处理结果发送给SCSI上层,SCSI上层获得错误信息。
所述无错误返回信息的模拟故障有:总线挂起(SCSI_HANG)故障和延时故障(SCSI_TIME_OUT)故障,其中:
模拟总线挂起(SCSI_HANG)故障的方法是:什么都不做,直接将queuecommand的返回值设为DID_OK;
延时故障(SCSI_TIME_OUT):将命令的serial_number添加到一个用来存放本来要在注入了延时故障的设备上执行命令的serial_number的数组中,等待设备abort后再执行。
所述有错误返回信息的模拟故障有:扇区故障(SCSI_BAD_SECTOR)故障、总线忙(SCSI_BUS_BUSY)故障、队列满(SCSI_Q_FULL)故障和磁盘掉线(SCSI_DISK_OFFLINE)故障,其中:
扇区故障(SCSI_BAD_SECTOR)的模拟方法为,将命令的返回状态改为CHECK_CONDITION,以表明命令执行发生异常进入检测状态,然后将sense_buffer域的第一个字节改为70H,表明为当前错误,将Sense_key字段,即错误类型字段填写为MEDIUM_ERROR,即介质错误;
总线忙(SCSI_BUS_BUSY)故障的模拟方法为,将命令返回信息中的SCSI的状态改写为BUSY(scsi_status=BUSY),表明总线忙碌;
队列满(SCSI_Q_FULL)故障的模拟方法为,将命令返回信息中的SCSI状态改写为BUSY(scsi_status=QUEUE_FULL),表明队列已满;
磁盘掉线(SCSI_DISK_OFFLINE)故障的模拟方法为,如果SCSI命令的目标设备仍在线,则直接将其状态改为掉线(cmd->device->online=FALSE)。

Claims (7)

1.基于SCSI驱动层的故障注入工具,其特征在于该故障注入工具包括故障注入命令传入接口、多路径设备匹配查看接口和内核模块,其中,
故障注入命令传入接口:用于提供外部故障配置文件输入接口,并根据输入的故障配置文件生成故障注入命令Scsi_Fault_Cmnd,并且将所述故障注入命令Scsi_Fault_Cmnd送入内核;
内核模块:在内核态运行,用于根据接收的故障注入命令,截获并改写SCSI命令的queuecommand函数以实现故障注入;还用于在故障加载过程中,将设备注册信息打印到内核日志中,还用于在注入故障之后,将故障信息打印到内核日志中;
多路径设备号匹配查看接口:用于通过查看内核日志与多路径配置信息,对设备进行比对,获得多路径设备各路径在工具中对应的注册号ID。
2.根据权利要求1所述的基于SCSI驱动层的故障注入工具,其特征在于,所述故障配置文件的格式为:
命令类型$设备ID$故障类型$瞬时/永久故障$瞬时故障持续时间$故障扇区起始位置$故障扇区终止位置$读写故障标识$,当某个信息不被使用时,采用空格填充。
3.根据权利要求1所述的基于SCSI驱动层的故障注入工具,其特征在于,将所述故障注入命令Scsi_Fault_Cmnd送入内核,是通过将故障注入命令Scsi_Fault_Cmnd写入/proc文件scsi_ctrl_gen的方式送入内核模块。
4.根据权利要求1所述的基于SCSI驱动层的故障注入工具,其特征在于,所述内核模块以动态加载模块的方式,作为内核的一部分,模拟注入磁盘永久故障、瞬时故障,具体过程为:
用户将通过Linux系统的/proc文件系统将故障信息Fault_Info传入内核,工具接收到数据后,会将故障类型、故障间隔时间、故障起止扇区等信息写入到相应设备的故障信息结构Dev_Fault_Info中;新改写的queuecommand()函数将在每个SCSI Command执行前比对其执行设备的故障信息,以判断该命令是否与故障注入信息匹配,即该命令执行时是否应该发生错误,如果匹配将按既定方案改写命令和返回结果,则完成故障注入;
另外,内核模块在加载时,会在内核日志中打印出各SCSI设备在工具中的注册ID;;
所述故障信息结构Dev_Fault_Info是用以保存设备的故障信息的数据结构,每个设备对应一个故障信息结构Dev_Fault_Info。
5.根据权利要求4所述的基于SCSI驱动层的故障注入工具,其特征在于,所述改写命令根据命令类型分为两类:一种是有错误返回信息的模拟过程中的命令改写,另一种是无错误返回信息的模拟过程中的命令改写,其中,有错误返回信息的模拟过程中的命令改写方法为:
SCSI上层发送请求命令REQUEST给SCSI中间层,该SCSI中层根据请求命令寻找目标设备的控制命令Command,然后将该控制命令Command的数据长度修改为0获得修改后的控制命令Command,然后发送修改后的控制命令Command给SCSI底层,该SCSI底层返回执行该命令的执行结果给SCSI中间层,在SCSI中间层将该执行结果更改为错误的执行结果,并根据该更改后的错误的执行结果获得错误信息发送给SCSI层;
无错误返回信息的模拟过程中的命令改写方法为:
SCSI上层发送请求命令REQUEST给SCSI中间层,在SCSI中间层根据所述请求命令REQUEST寻找目标设备的控制命令Command,然后不发送该控制命令给Command给SCSI底层,但提示给SCSI中间层该控制命令传送成功,SCSI中间层等待接收执行结果超时,并做超时处理,形成超时处理结果,并将该超时处理结果发送给SCSI上层,SCSI上层获得错误信息。
6.根据权利要求5所述的基于SCSI驱动层的故障注入工具,其特征在于,无错误返回信息的模拟故障有:总线挂起SCSI_HANG故障和延时故障SCSI_TIME_OUT故障,其中:
模拟总线挂起SCSI_HANG故障的方法是:什么都不做,直接将queuecommand的返回值设为DID_OK;
延时故障SCSI_TIME_OUT:将命令的serial_number添加到一个用来存放本来要在注入了延时故障的设备上执行命令的serial_number的数组中,等待设备abort后再执行。
7.根据权利要求5所述的基于SCSI驱动层的故障注入工具,其特征在于,有错误返回信息的模拟故障有:扇区故障SCSI_BAD_SECTOR、总线忙SCSI_BUS_BUSY故障、队列满SCSI_Q_FULL故障和磁盘掉线SCSI_DISK_OFFLINE故障,其中:
扇区故障SCSI_BAD_SECTOR的模拟方法为,将命令的返回状态改为CHECK_CONDITION,以表明命令执行发生异常进入检测状态,然后将sense_buffer域的第一个字节改为70H,表明为当前错误,将Sense_key字段,即错误类型字段填写为MEDIUM_ERROR,即介质错误;
总线忙SCSI_BUS_BUSY故障的模拟方法为,将命令返回信息中的SCSI的状态改写为BUSY,表明总线忙碌;
队列满SCSI_Q_FULL故障的模拟方法为,将命令返回信息中的SCSI状态改写为BUSY,表明队列已满;
磁盘掉线SCSI_DISK_OFFLINE故障的模拟方法为,如果SCSI命令的目标设备仍在线,则直接将其状态改为掉线。
CN2011102043718A 2011-07-21 2011-07-21 基于scsi驱动层的故障注入工具 Pending CN102270173A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102043718A CN102270173A (zh) 2011-07-21 2011-07-21 基于scsi驱动层的故障注入工具

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102043718A CN102270173A (zh) 2011-07-21 2011-07-21 基于scsi驱动层的故障注入工具

Publications (1)

Publication Number Publication Date
CN102270173A true CN102270173A (zh) 2011-12-07

Family

ID=45052481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102043718A Pending CN102270173A (zh) 2011-07-21 2011-07-21 基于scsi驱动层的故障注入工具

Country Status (1)

Country Link
CN (1) CN102270173A (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768642A (zh) * 2012-06-25 2012-11-07 浪潮电子信息产业股份有限公司 一种基于源码分析的linux内核可靠性评测系统及其方法
CN102929747A (zh) * 2012-11-05 2013-02-13 中标软件有限公司 基于龙芯服务器的Linux操作系统崩溃转储的处理方法
CN103543960A (zh) * 2013-10-12 2014-01-29 创新科存储技术有限公司 一种存储数据的方法
CN103645865A (zh) * 2013-12-26 2014-03-19 深圳市迪菲特科技股份有限公司 一种命令超时的处理方法
CN104331324A (zh) * 2014-11-04 2015-02-04 哈尔滨工业大学 MapReduce故障注入套件
CN105045691A (zh) * 2015-07-16 2015-11-11 浪潮(北京)电子信息产业有限公司 一种故障检测方法和系统
CN105550080A (zh) * 2015-11-26 2016-05-04 广州华多网络科技有限公司 一种基于Linux进行服务器程序故障注入方法、装置及系统
CN105630715A (zh) * 2015-12-18 2016-06-01 国云科技股份有限公司 一种基于Multipath的存储预警方法
CN106598797A (zh) * 2016-12-16 2017-04-26 郑州云海信息技术有限公司 一种多路径io的故障注入方法、系统及故障管理系统
CN106776178A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种cpu故障注入方法及其装置及故障管理系统
CN106776175A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种内存的故障管理方法、系统及故障管理系统
CN106776177A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种xfs的故障注入方法、系统及故障管理系统
CN106776180A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种pcie故障注入方法及其装置及故障管理系统
CN106776176A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种磁盘的故障注入方法、系统及故障管理系统
CN107145411A (zh) * 2017-05-02 2017-09-08 郑州云海信息技术有限公司 一种基于磁盘镜像软件drbd的坏盘模拟方法
CN107194044A (zh) * 2017-05-08 2017-09-22 天津大学 一种基于输入和输出数据操作的fir滤波器故障注入方法
CN107219843A (zh) * 2017-06-19 2017-09-29 哈尔滨工业大学 基于任意函数发生器的mil‑std‑1553b总线节点的故障信号模拟装置
CN109271306A (zh) * 2018-09-30 2019-01-25 深圳中广核工程设计有限公司 基于故障注入的寿命试验方法、装置、设备及介质
CN111800296A (zh) * 2020-06-30 2020-10-20 西安微电子技术研究所 实时系统网络数据捕获与分析方法、系统、设备及存储介质
CN111986707A (zh) * 2020-08-21 2020-11-24 苏州浪潮智能科技有限公司 一种磁盘链路错误注入方法、异常处理测试方法及装置
CN112002370A (zh) * 2020-07-23 2020-11-27 烽火通信科技股份有限公司 一种识别磁盘异常的方法、装置及分布式存储系统
CN113835755A (zh) * 2021-09-24 2021-12-24 天津津航计算技术研究所 一种无操作系统环境下串口控制台实现方法
CN114928550A (zh) * 2022-04-29 2022-08-19 杭州默安科技有限公司 一种数据库交互账户安全检测方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1952905A (zh) * 2006-11-29 2007-04-25 哈尔滨工业大学 容错计算机系统的搭接式故障注入装置及方法
CN101770417A (zh) * 2010-01-15 2010-07-07 哈尔滨工业大学 基于jtag的硬件故障注入系统及故障注入方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1952905A (zh) * 2006-11-29 2007-04-25 哈尔滨工业大学 容错计算机系统的搭接式故障注入装置及方法
CN101770417A (zh) * 2010-01-15 2010-07-07 哈尔滨工业大学 基于jtag的硬件故障注入系统及故障注入方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
潘清等: "《测试海量存储系统可用性的故障注入法》", 《计算机工程与应用》 *
陈宇龙等: "《基于SCSI的故障注入工具设计与实现》", 《计算机工程》 *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768642A (zh) * 2012-06-25 2012-11-07 浪潮电子信息产业股份有限公司 一种基于源码分析的linux内核可靠性评测系统及其方法
CN102768642B (zh) * 2012-06-25 2016-08-03 浪潮电子信息产业股份有限公司 一种基于源码分析的linux内核可靠性评测系统及其方法
CN102929747A (zh) * 2012-11-05 2013-02-13 中标软件有限公司 基于龙芯服务器的Linux操作系统崩溃转储的处理方法
CN102929747B (zh) * 2012-11-05 2015-07-01 中标软件有限公司 基于龙芯服务器的Linux操作系统崩溃转储的处理方法
CN103543960A (zh) * 2013-10-12 2014-01-29 创新科存储技术有限公司 一种存储数据的方法
CN103645865A (zh) * 2013-12-26 2014-03-19 深圳市迪菲特科技股份有限公司 一种命令超时的处理方法
CN103645865B (zh) * 2013-12-26 2016-08-24 深圳市迪菲特科技股份有限公司 一种命令超时的处理方法
CN104331324A (zh) * 2014-11-04 2015-02-04 哈尔滨工业大学 MapReduce故障注入套件
CN105045691A (zh) * 2015-07-16 2015-11-11 浪潮(北京)电子信息产业有限公司 一种故障检测方法和系统
CN105045691B (zh) * 2015-07-16 2018-06-22 浪潮(北京)电子信息产业有限公司 一种故障检测方法和系统
CN105550080A (zh) * 2015-11-26 2016-05-04 广州华多网络科技有限公司 一种基于Linux进行服务器程序故障注入方法、装置及系统
CN105630715A (zh) * 2015-12-18 2016-06-01 国云科技股份有限公司 一种基于Multipath的存储预警方法
CN106776176A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种磁盘的故障注入方法、系统及故障管理系统
CN106776175A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种内存的故障管理方法、系统及故障管理系统
CN106776177A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种xfs的故障注入方法、系统及故障管理系统
CN106776180A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种pcie故障注入方法及其装置及故障管理系统
CN106776178A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种cpu故障注入方法及其装置及故障管理系统
CN106598797A (zh) * 2016-12-16 2017-04-26 郑州云海信息技术有限公司 一种多路径io的故障注入方法、系统及故障管理系统
CN107145411A (zh) * 2017-05-02 2017-09-08 郑州云海信息技术有限公司 一种基于磁盘镜像软件drbd的坏盘模拟方法
CN107194044A (zh) * 2017-05-08 2017-09-22 天津大学 一种基于输入和输出数据操作的fir滤波器故障注入方法
CN107194044B (zh) * 2017-05-08 2020-08-18 天津大学 一种基于输入和输出数据操作的fir滤波器故障注入方法
CN107219843A (zh) * 2017-06-19 2017-09-29 哈尔滨工业大学 基于任意函数发生器的mil‑std‑1553b总线节点的故障信号模拟装置
CN109271306A (zh) * 2018-09-30 2019-01-25 深圳中广核工程设计有限公司 基于故障注入的寿命试验方法、装置、设备及介质
CN111800296A (zh) * 2020-06-30 2020-10-20 西安微电子技术研究所 实时系统网络数据捕获与分析方法、系统、设备及存储介质
CN111800296B (zh) * 2020-06-30 2023-03-24 西安微电子技术研究所 实时系统网络数据捕获与分析方法、系统、设备及存储介质
CN112002370A (zh) * 2020-07-23 2020-11-27 烽火通信科技股份有限公司 一种识别磁盘异常的方法、装置及分布式存储系统
CN112002370B (zh) * 2020-07-23 2022-04-15 烽火通信科技股份有限公司 一种识别磁盘异常的方法、装置及分布式存储系统
CN111986707A (zh) * 2020-08-21 2020-11-24 苏州浪潮智能科技有限公司 一种磁盘链路错误注入方法、异常处理测试方法及装置
CN111986707B (zh) * 2020-08-21 2021-12-21 苏州浪潮智能科技有限公司 一种磁盘链路异常处理测试方法及装置
CN113835755A (zh) * 2021-09-24 2021-12-24 天津津航计算技术研究所 一种无操作系统环境下串口控制台实现方法
CN113835755B (zh) * 2021-09-24 2023-08-22 天津津航计算技术研究所 一种无操作系统环境下串口控制台实现方法
CN114928550A (zh) * 2022-04-29 2022-08-19 杭州默安科技有限公司 一种数据库交互账户安全检测方法及系统
CN114928550B (zh) * 2022-04-29 2024-05-03 杭州默安科技有限公司 一种数据库交互账户安全检测方法及系统

Similar Documents

Publication Publication Date Title
CN102270173A (zh) 基于scsi驱动层的故障注入工具
US20120144110A1 (en) Methods and structure for storage migration using storage array managed server agents
CN104412228B (zh) 用于逻辑分区迁移的方法、计算机系统和存储介质
CN104238963B (zh) 一种数据存储方法、存储装置及存储系统
CN106933508B (zh) 应用容器的迁移方法及装置
US8296782B2 (en) System eliminating hardware duplication during application testing of an internal storage array across different operating systems
EP2843537B1 (en) Method and systems for simulating a workload of a storage system
US20070250302A1 (en) Simulated storage area network
US9880914B2 (en) Device, method and program for performing system testing
CN105516230B (zh) 一种数据处理方法及装置
CN102568522A (zh) 硬盘性能的测试方法和装置
CN110162516A (zh) 一种基于海量数据处理的数据治理的方法及系统
CN106095528A (zh) 一种检测虚拟机盘符的方法
US8874966B1 (en) Storage device error simulator tool
US20140164845A1 (en) Host computer and method for testing sas expanders
GB2538621A (en) Verification of storage media upon deployment
CN104809124A (zh) 云虚拟文件系统及其输入/输出请求处理方法
US20220229768A1 (en) Method and Apparatus for Generating Simulated Test IO Operations
CN107273251A (zh) 一种在生产环境下Rack机柜JBOD存储的测试方法
CN108228611B (zh) 单据信息抄写方法和装置
CN105607975A (zh) 一种测试磁盘阵列的方法、装置及系统
US20060129781A1 (en) Offline configuration simulator
US9690886B1 (en) System and method for a simulation of a block storage system on an object storage system
CN107402723A (zh) 读写数据的方法及存储系统
US9542120B2 (en) Systems and methods for processing instructions while repairing and providing access to a copied volume of data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111207