CN111694684A - 存储设备的异常构造方法、装置、电子设备及存储介质 - Google Patents

存储设备的异常构造方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111694684A
CN111694684A CN201910197454.5A CN201910197454A CN111694684A CN 111694684 A CN111694684 A CN 111694684A CN 201910197454 A CN201910197454 A CN 201910197454A CN 111694684 A CN111694684 A CN 111694684A
Authority
CN
China
Prior art keywords
abnormal
storage device
exception
operation function
program
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
Application number
CN201910197454.5A
Other languages
English (en)
Other versions
CN111694684B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910197454.5A priority Critical patent/CN111694684B/zh
Publication of CN111694684A publication Critical patent/CN111694684A/zh
Application granted granted Critical
Publication of CN111694684B publication Critical patent/CN111694684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种存储设备的异常构造方法、装置、电子设备及存储介质,所述方法包括:响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;向所述被测程序反馈所述存储设备异常操作信息;其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。本发明实施例的异常构造生效快,无需人工参与,不受设备类型的限制,而且异常构造精确。

Description

存储设备的异常构造方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种存储设备的异常构造方法、装置、电子设备及存储介质。
背景技术
随着云计算、大数据、移动互联和社交媒体等的迅猛发展,各行业产生的数据量都在呈几何级数增长,诸如分布式存储系统等用于实现数据存储与管理的系统具有高性能和高可靠性等特点,在很多行业得到了广泛的应用。
这些分布式存储系统通常会搭建在存储设备上,例如磁盘,而磁盘故障是最常见的硬件故障之一,对其的容错处理就成为分布式存储系统的核心设计点之一,因此,对存储设备异常场景的自动化测试,是分布式存储系统的质量保证工作中的重要一环。
然而,现有存储设备异常的构造方案中,有的耗费时间长,有的只对部分设备生效,有的直接影响设备的使用寿命,有的异常构造不精确,而且大部分都还需要借助人工。因此,目前尚未有一种能解决上述问题的自动化构造方案。
发明内容
本发明实施例提供了一种存储设备的异常构造方法、装置、电子设备及存储介质,以解决现有技术中构造异常时存在的耗时长、受存储设备类型限制、异常构造不精确等技术问题。
第一方面,本发明实施例提供了一种存储设备的异常构造方法,包括:
响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。
第二方面,本发明实施例还提供了一种存储设备的异常构造装置,包括:
异常参数获取模块,用于响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
异常操作信息获取模块,用于从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
第一反馈模块,用于向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的存储设备的异常构造方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的存储设备的异常构造方法。
本发明实施例提供的一种存储设备的异常构造方法、装置、电子设备及存储介质,基于预加载库的启动方式启动被测程序,让被测程序调用预加载库中的目标重写操作函数,而预加载库中包括的多个重写操作函数是基于系统应用层的存储设备操作函数进行重写得到,目的是让目标重写操作函数响应被测程序的调用,获取测试人员预先指定的存储设备的异常参数,并从中获取与目标重写操作函数对应的存储设备异常操作信息并反馈给被测程序,由此实现存储设备的异常构造,由于无需耗费大量的准备时间,使得异常构造生效快,而且无需人工参与。此外,由于构造过程是对系统的操作函数生效,与底层存储设备的类型无关,因此不受设备类型的限制,而且可以根据测试需求,通过异常参数来精确构造异常,并精确控制异常影响的范围。
附图说明
图1是本发明实施例一提供的一种存储设备的异常构造方法的流程示意图;
图2是本发明实施例二提供的一种存储设备的异常构造方法的流程示意图;
图3是本发明实施例三提供的一种存储设备的异常构造装置的结构示意图;
图4是本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种存储设备的异常构造方法的流程图,本实施例可适用于对分布式存储系统进行测试时构造存储设备异常的情况,该方法可以由相应的存储设备的异常构造装置执行,该装置可以采用软件和/或硬件的方式实现,并可配置于电子设备上,例如计算机终端或服务器。
如图1所示,本发明实施例中提供的存储设备的异常构造方法可以包括:
S110、响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数。
其中,被测程序是指被测系统中的任一程序,被测系统可以是任何需要与存储设备进行数据读取等操作的系统,例如分布式系统。且被测程序是基于预加载库的方式启动,即被测程序启动时自动加载预加载库,并调用预加载库中的函数。
通常,在Linux环境中,应用层会使用一系列的系统函数,例如存储设备操作函数,来实际操作存储设备。示例性的,系统函数creat用于创建文件,系统函数open用于打开文件句柄,系统函数众多且与实际业务相关,因此这里不再一一介绍。而所述预加载库中则包括多个重写操作函数,每个重写操作函数是基于所述存储设备操作函数进行重写得到,目的是让重写操作函数响应被测程序的调用去获取存储设备的异常参数。
优选的,所述重写操作函数是利用HOOK机制对应用层的存储设备操作函数进行重写得到的与所述存储设备操作函数相对应的HOOK系统函数。HOOK即钩子,是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。通过HOOK机制,可以实现让重写操作函数响应被测程序的调用去获取存储设备的异常参数并完成异常构造。
异常参数是针对业务场景和测试需求预先设定的。异常参数中至少可以包括异常构造条件和与所述存储设备操作函数相关的至少一种存储设备异常操作信息。例如在一个具体的业务场景中,需要被测分布式系统中的不同程序来处理,那么根据测试需求,例如可以指定对哪个或哪些程序构造异常,构造异常时对应的具体场景,也即满足什么条件时才构造异常,以及对谁构造异常等条件信息,这些信息可以构成所述异常构造条件。示例性的,可以按照“异常函数的名称-异常概率-异常错误码或操作夯住时间”或“异常函数的名称-inode剩余百分比或存储空间剩余百分比”编写异常参数。
常见的存储设备异常包括容量满、inode(index node,索引节点)耗尽、读写失败、读写的数据错误、读写慢等,因此可针对不同的测试需求编写不同的异常参数,同一类型的存储设备操作函数也可以对应多个异常操作信息,其中,异常操作信息即是指反馈给被测程序的异常信息,例如,与存储设备操作函数open相关的存储设备异常操作信息可以包括打开文件错误和打开文件夯住两种。优选的,还可以将其编写成JSON格式的异常参数。
在一种实施方式中,异常参数可以通过HTTP服务器写入到电子设备本地的共享内存中,重写操作函数响应被测程序的调用,从该共享内存中获取异常参数。这种方式操作简便,且便于集成到自动化测试中。
具体的,所述从共享内存中获取存储设备的异常参数,包括:
获取所述共享内存的文件锁,其中,所述文件锁用于锁定除目标重写操作函数以外的程序对共享内存的读操作和写操作;
从所述共享内存中获取存储设备的异常参数;
释放所述文件锁。
这里需要说明的是,异常参数通过HTTP服务器写入共享内存的过程,与目标重写操作函数从共享内存中获取异常参数的过程,在时间上存在同时发生的可能。因此,为了确保异常构造的有序性,需要依据文件锁的方式,在获取异常参数时,先锁定除目标重写操作函数以外的程序对共享内存的读操作和写操作,然后在从共享内存中读取异常参数,之后释放该文件锁,以便可以继续通过HTTP服务器将其他异常参数写入共享内存。
S120、从异常参数中获取与目标重写操作函数对应的存储设备异常操作信息。
示例性的,目标重写操作函数为重写的read函数,则从异常参数中获取与其对应的存储设备异常操作信息,例如读文件错误(read_error)与错误代码5,或读文件夯住(read_hung)与夯住时间0.2s;若目标重写操作函数为重写的statfs函数,则从异常参数中获取与其对应的存储设备异常操作信息,例如存储设备的存储空间剩余百分比和inode剩余百分比。其中目标重写操作函数为重写的read、重写的statfs仅是示例,也可以是其他与基于应用层的存储设备操作函数相对应的重写操作函数,在此不做具体限定。
S130、向被测程序反馈存储设备异常操作信息。
示例性的,将S120获取的与目标重写操作函数对应的存储设备异常操作信息反馈给被测程序,由此实现针对被测程序的存储设备异常构造。
这里需要说明的是,现有技术中构造异常的方法有:利用Linux dd或fio命令写入大量的大文件、小文件以构造磁盘满和Inode耗尽;用工具对磁盘进行小文件的随机大并发IO操作将磁盘变得非常繁忙以构造磁盘IO高;通过对Linux系统的scsi设备操作,模拟磁盘被热插拔的效果;对于坏盘导致的读写的数据错误,可以通过人工或脚本的方式修改文件内容、以构造真实的数据异常。此外,Linux内核集成了1个Fault-Injection,默认实现6种异常注入,其中包括fail_io_timeout错误、以实现对IO处理完成blk_complete_request函数进行故障注入,但该方法要求特定内核版本。
然而,上述现有存储设备异常的构造方案,主要存在以下几个问题:(1)耗费时间长,以目前常见的4T Sata盘为例,按照100MB/S的速度写满磁盘、需要11个小时以上;(2)只对部分设备生效,scsi命令只对scsi设备生效,对PCIE接口的SSD等无效,且只能对整盘构造异常、无法对该盘的部分分区构造异常,Fault-Injection要求特定的内核版本;(3)影响较大,因SSD盘的高随机IO特性,对其构造IO繁忙需耗费较多CPU资源、且大量擦写次数直接影响其使用寿命,scsi操作可能导致出现盘符漂移;(4)异常构造不精确,构造随机小文件的IO操作无法精确控制磁盘的繁忙程度;(5)大部分操作需借助人工,不利于自动化测试。
相比于上述现有的构造异常的方法,本发明实施例的技术方案基于预加载库的启动方式启动被测程序,让被测程序调用预加载库中的目标重写操作函数,而预加载库中包括的多个重写操作函数是基于系统应用层的存储设备操作函数进行重写得到,目的是让目标重写操作函数响应被测程序的调用,获取测试人员预先指定的存储设备的异常参数,并从中获取与目标重写操作函数对应的存储设备异常操作信息并反馈给被测程序,由此实现存储设备的异常构造,由于无需耗费大量的准备时间,使得异常构造生效快,而且无需人工参与。此外,由于构造过程是对系统的操作函数生效,与底层存储设备的类型无关,因此不受设备类型的限制,而且可以根据测试需求,通过异常参数来精确构造异常,并精确控制异常影响的范围。
实施例二
图2为本发明实施例二提供的一种存储设备的异常构造方法的流程示意图。本实施例以上述实施例为基础进行优化,如图2所示,本发明实施例中提供的存储设备的异常构造方法可以包括:
S210、响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数。
本发明实施例中,异常参数中除了包括与存储设备操作函数相关的至少一种存储设备异常操作信息外,还包括异常构造条件。在一个具体的业务场景中,需要很多程序来处理,因此可通过异常构造条件判断多个程序中需要异常构造的目标程序。其中,异常构造条件包括异常生效的程序标识或者异常生效的程序名与程序路径,以及异常操作类型、异常文件列表和异常发生概率。其中,异常生效的程序标识优选为程序ID,由于程序ID可唯一标识一个程序,因此可用程序ID指定需要构造异常的程序;异常生效的程序名与程序路径可共同标识一个程序,因此也可通过异常生效的程序名与程序路径指定需要构造异常的程序;异常操作类型包括写失败、写慢、读失败等;异常文件列表用于存储需要当前程序异常处理的文件,可根据实际测试需求进行设置。
S220、根据异常参数判断被测程序是否满足异常构造条件,若满足则执行S230-S240,否则执行S250。
根据异常参数判断被测程序是否满足异常构造条件,可通过判断被测程序依次与异常生效的程序标识或者异常生效的程序名与程序路径,以及异常操作类型、异常文件列表和异常发生概率是否匹配。
具体的,可按如下判断流程进行判定:
S1、获取被测程序的程序ID或被测程序的程序名与程序路径,并将其与异常生效的程序标识或者异常生效的程序名与程序路径进行匹配,若匹配成功,则表明当前被测程序是要构造异常的目标程序,并继续执行S2,若匹配失败,则表明当前被测程序不需要异常构造,直接执行S250。
S2、判断异常操作类型是否匹配,例如,当前被测程序执行的操作是读操作,而通过异常生效的程序标识或者异常生效的程序名与程序路匹配的异常操作类型是写失败,则两者不匹配,执行S250;若异常操作类型匹配,则继续执行S3。
S3、判断被测程序所要操作的存储设备中的文件是否位于异常文件列表中,若是,则继续执行S4,否则执行S250。
S4、判断异常发生概率是否满足参数设定,例如异常发生概率或存储空间剩余百分比等。若是,则确定被测程序满足异常构造条件,执行S230-S240以完成异常的构造,否则执行S250。
S230、从异常参数中获取与目标重写操作函数对应的存储设备异常操作信息。
S240、向被测程序反馈存储设备异常操作信息。
S250、向被测程序反馈与目标重写操作函数对应的存储设备正常操作信息。
若判断被测程序不满足异常构造条件,则将与目标重写操作函数对应的存储设备正常操作信息反馈给被测程序,例如,被测程序读取存储设备中的某一文件,则将该文件对应的详细信息反馈给被测程序。
本发明实施例的技术方案,通过判断被测程序是否满足异常构造条件,可以在异常构造过程中,精确控制影响范围,可以实现对指定的被测业务反馈异常信息,对操作系统、硬件或同一机器上的其他服务无任何影响,且被测程序无需做任何改动。
实施例三
图3是本发明实施例三提供的一种存储设备的异常构造装置的结构示意图。如图3所示,该装置包括:
异常参数获取模块310,用于响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
异常操作信息获取模块320,用于从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
第一反馈模块330,用于向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。
被测程序调用预加载库中目标重写操作函数时,异常操作信息获取模块从异常参数获取模块中获取与目标重写操作函数对应的存储设备异常操作信息,并通过第一反馈模块反馈给被测程序,由此完成异常参数到被测进程的传输,继而实现相应的异常构造。如此构造的异常精确、生效快,同时异常构造过程不受设备类型限制、也无需人工参与。
上述实施例的基础上,所述重写操作函数是利用HOOK机制对应用层的存储设备操作函数进行重写得到的与所述存储设备操作函数相对应的HOOK系统函数。
上述实施例的基础上,所述异常参数获取模块包括:
获取单元,用于从共享内存中获取存储设备的异常参数,其中,所述异常参数是通过HTTP服务器写入到所述共享内存。
上述实施例的基础上,所述获取单元具体用于:
获取所述共享内存的文件锁,其中,所述文件锁用于锁定除目标重写操作函数以外的程序对共享内存的读操作和写操作;
从所述共享内存中获取存储设备的异常参数;
释放所述文件锁。
上述实施例的基础上,所述异常参数中至少包括异常构造条件和与所述存储设备操作函数相关的至少一种存储设备异常操作信息;
相应的,所述异常操作信息获取模块包括:
判断单元,用于根据所述异常参数判断所述被测程序是否满足所述异常构造条件;
异常操作信息获取单元,用于在所述判断单元确定满足异常构造条件时,从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息。
上述实施例的基础上,所述异常构造条件至少包括异常生效的程序标识或者异常生效的程序名与程序路径,以及异常操作类型、异常文件列表和异常发生概率。
上述实施例的基础上,其特征在于,所述装置还包括:
第二反馈模块,在所述判断单元确定不满足异常构造条件时,向所述被测程序反馈与目标重写操作函数对应的存储设备正常操作信息。
本发明实施例所提供的存储设备的异常构造装置可执行本发明任意实施例所提供的存储设备的异常构造方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的电子设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图4显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理器16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的存储设备的异常构造方法,包括:
响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。
实施例五
本发明实施例中提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种存储设备的异常构造方法,该方法包括:
响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到
当然,本发明实施例中所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例中所提供的存储设备的异常构造方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (16)

1.一种存储设备的异常构造方法,其特征在于,所述方法包括:
响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。
2.根据权利要求1所述的方法,其特征在于,所述重写操作函数是利用HOOK机制对应用层的存储设备操作函数进行重写得到的与所述存储设备操作函数相对应的HOOK系统函数。
3.根据权利要求1或2所述的方法,其特征在于,所述获取存储设备的异常参数,包括:
从共享内存中获取存储设备的异常参数,其中,所述异常参数是通过HTTP服务器写入到所述共享内存。
4.根据权利要求3所述的方法,其特征在于,所述从共享内存中获取存储设备的异常参数,包括:
获取所述共享内存的文件锁,其中,所述文件锁用于锁定除目标重写操作函数以外的程序对共享内存的读操作和写操作;
从所述共享内存中获取存储设备的异常参数;
释放所述文件锁。
5.根据权利要求1或2所述的方法,其特征在于,所述异常参数中至少包括异常构造条件和与所述存储设备操作函数相关的至少一种存储设备异常操作信息;
相应的,从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息,包括:
根据所述异常参数判断所述被测程序是否满足所述异常构造条件;
如果满足,则从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息。
6.根据权利要求5所述的方法,其特征在于,所述异常构造条件至少包括异常生效的程序标识或者异常生效的程序名与程序路径,以及异常操作类型、异常文件列表和异常发生概率。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果不满足所述异常构造条件,则向所述被测程序反馈与目标重写操作函数对应的存储设备正常操作信息。
8.一种存储设备的异常构造装置,其特征在于,所述装置包括:
异常参数获取模块,用于响应被测程序对预加载库中目标重写操作函数的调用,获取存储设备的异常参数;
异常操作信息获取模块,用于从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息;
第一反馈模块,用于向所述被测程序反馈所述存储设备异常操作信息;
其中,所述被测程序是基于预加载库的方式启动,所述预加载库中包括多个重写操作函数,每个重写操作函数是基于应用层的存储设备操作函数进行重写得到。
9.根据权利要求8所述的装置,其特征在于,所述重写操作函数是利用HOOK机制对应用层的存储设备操作函数进行重写得到的与所述存储设备操作函数相对应的HOOK系统函数。
10.根据权利要求8或9所述的装置,其特征在于,所述异常参数获取模块包括:
获取单元,用于从共享内存中获取存储设备的异常参数,其中,所述异常参数是通过HTTP服务器写入到所述共享内存。
11.根据权利要求10所述的装置,其特征在于,所述获取单元具体用于:
获取所述共享内存的文件锁,其中,所述文件锁用于锁定除目标重写操作函数以外的程序对共享内存的读操作和写操作;
从所述共享内存中获取存储设备的异常参数;
释放所述文件锁。
12.根据权利要求8或9所述的装置,其特征在于,所述异常参数中至少包括异常构造条件和与所述存储设备操作函数相关的至少一种存储设备异常操作信息;
相应的,所述异常操作信息获取模块包括:
判断单元,用于根据所述异常参数判断所述被测程序是否满足所述异常构造条件;
异常操作信息获取单元,用于在所述判断单元确定满足异常构造条件时,从所述异常参数中获取与目标重写操作函数对应的存储设备异常操作信息。
13.根据权利要求12所述的装置,其特征在于,所述异常构造条件至少包括异常生效的程序标识或者异常生效的程序名与程序路径,以及异常操作类型、异常文件列表和异常发生概率。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二反馈模块,在所述判断单元确定不满足异常构造条件时,向所述被测程序反馈与目标重写操作函数对应的存储设备正常操作信息。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的存储设备的异常构造方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的存储设备的异常构造方法。
CN201910197454.5A 2019-03-15 2019-03-15 存储设备的异常构造方法、装置、电子设备及存储介质 Active CN111694684B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910197454.5A CN111694684B (zh) 2019-03-15 2019-03-15 存储设备的异常构造方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910197454.5A CN111694684B (zh) 2019-03-15 2019-03-15 存储设备的异常构造方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111694684A true CN111694684A (zh) 2020-09-22
CN111694684B CN111694684B (zh) 2023-07-04

Family

ID=72475922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910197454.5A Active CN111694684B (zh) 2019-03-15 2019-03-15 存储设备的异常构造方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111694684B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112700112A (zh) * 2020-12-28 2021-04-23 京北方信息技术股份有限公司 Rpa流程调整方法、装置、电子设备及存储介质
CN113434324A (zh) * 2021-06-29 2021-09-24 苏州科达科技股份有限公司 异常信息获取方法、系统、设备及存储介质
CN116069638A (zh) * 2023-01-19 2023-05-05 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072798A (ja) * 2008-09-17 2010-04-02 Ricoh Co Ltd 電子装置の制御部、電子装置、画像形成装置、電子装置の制御方法、プログラムおよび記録媒体
CN106709346A (zh) * 2016-11-25 2017-05-24 腾讯科技(深圳)有限公司 文件处理方法及装置
CN106708643A (zh) * 2016-11-14 2017-05-24 武汉斗鱼网络科技有限公司 异常信息处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072798A (ja) * 2008-09-17 2010-04-02 Ricoh Co Ltd 電子装置の制御部、電子装置、画像形成装置、電子装置の制御方法、プログラムおよび記録媒体
CN106708643A (zh) * 2016-11-14 2017-05-24 武汉斗鱼网络科技有限公司 异常信息处理方法及装置
CN106709346A (zh) * 2016-11-25 2017-05-24 腾讯科技(深圳)有限公司 文件处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BINBIN QU等: "Memory Leak Dynamic Monitor Based On HOOK Technique", 《2009 INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SOFTWARE ENGINEERING》 *
张建松: "基于行为特征分析的恶意代码检测系统研究与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112700112A (zh) * 2020-12-28 2021-04-23 京北方信息技术股份有限公司 Rpa流程调整方法、装置、电子设备及存储介质
CN112700112B (zh) * 2020-12-28 2023-11-14 京北方信息技术股份有限公司 Rpa流程调整方法、装置、电子设备及存储介质
CN113434324A (zh) * 2021-06-29 2021-09-24 苏州科达科技股份有限公司 异常信息获取方法、系统、设备及存储介质
CN116069638A (zh) * 2023-01-19 2023-05-05 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法
CN116069638B (zh) * 2023-01-19 2023-09-01 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法

Also Published As

Publication number Publication date
CN111694684B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
US10437703B2 (en) Correlation of source code with system dump information
US9262283B2 (en) Method for reading kernel log upon kernel panic in operating system
CN111274154A (zh) 一种自动化测试的方法、装置、设备及存储介质
CN111694684B (zh) 存储设备的异常构造方法、装置、电子设备及存储介质
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
WO2022068316A1 (zh) 数据对账方法、装置、设备及存储介质
CN110659210A (zh) 一种信息获取方法、装置、电子设备及存储介质
US8984333B2 (en) Automatic computer storage medium diagnostics
CN111796978A (zh) 一种接口检测方法、装置、系统、设备及存储介质
CN111818145A (zh) 一种文件传输方法、装置、系统、设备及存储介质
CN110990346A (zh) 基于区块链的文件数据处理方法、装置、设备及存储介质
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
CN111694724B (zh) 分布式表格系统的测试方法、装置、电子设备及存储介质
US11861214B2 (en) Memory device forensics and preparation
CN108197041B (zh) 一种确定子进程的父进程的方法、设备及其存储介质
CN112463574A (zh) 软件测试方法、装置、系统、设备和存储介质
CN115878400A (zh) 测试方法、装置、计算机设备、存储介质和程序产品
US10216525B1 (en) Virtual disk carousel
CN114138367A (zh) 一种自助设备上的业务实现方法、装置、设备及存储介质
US20160210139A1 (en) Managing a code load
US20200167152A1 (en) Identification of a partial code to be refactored within a source code
CN113760631A (zh) 页面加载时长确定方法、装置、设备和存储介质
CN116820946B (zh) 一种对目标软件兼容性进行自动化测试的方法和装置
CN111240928B (zh) 设备驱动自动化检测方法、装置、设备及存储介质
CN112783683B (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
GR01 Patent grant
GR01 Patent grant