SSD disk reliability verification method based on out-of-band testing and storage device
By employing a systematic out-of-band testing method, statistical analysis of SSD command sets and matching of verification units are conducted to simulate usage scenarios under different conditions. This approach addresses the incompleteness of traditional out-of-band testing and improves the reliability verification capabilities and robustness of SSDs.
Patent Information
- Application Number
- CN202511233441.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-29
- Publication Date
- 2025-11-04
- Estimated Expiration
- 2045-08-29
AI Technical Summary
Traditional out-of-band testing methods lack systematicity and comprehensive test scenario design, making it difficult to guarantee the reliability verification capability of SSDs.
By using an out-of-band testing-based SSD reliability verification method, the set of commands supported by the SSD is statistically analyzed, the test state is determined, and the corresponding verification units are matched according to the state, including protocol verification units, timing command verification units, and impact verification units. The associated test commands are executed to simulate usage under various application scenarios and improve test coverage.
It significantly improves out-of-band test coverage and device robustness, ensuring the reliability and responsiveness of SSDs under different conditions.
Smart Images

Figure CN120727078B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the field of testing of NVMe solid-state storage devices (SSDs), and in particular to a method for verifying the reliability of an SSD disk based on out-of-band testing and a storage device. BACKGROUND
[0002] With the rapid development of solid-state drive (SSD) technology, SSD products are increasingly widely used in data centers, cloud computing, artificial intelligence, and other fields. The reliability and stability of SSDs directly affect the performance and security of data storage systems. In the development and testing of NVMe SSD products, in-band testing is mainly relied on, that is, commands are sent through the host operating system to verify the functions and performance of the SSD. However, in-band testing has limitations in certain scenarios, such as when the operating system crashes or the SSD firmware is abnormal, effective testing cannot be performed. Out-of-band (OOB) testing interacts with the SSD through an independent communication channel (such as I2C, SMBus, or PCIe), which can manage and test the SSD when the host operating system is unavailable. Therefore, the reliability testing of out-of-band functions is very important.
[0003] However, traditional out-of-band testing methods are usually not systematic, the test scenario design is not comprehensive enough, and it is difficult to ensure the effectiveness and consistency of the test, so there is an urgent need for a systematic out-of-band testing method to improve the reliability verification capability of SSDs. SUMMARY
[0004] Therefore, it is necessary to solve the above technical problems, and the embodiments of the present disclosure provide a method for verifying the reliability of an SSD disk based on out-of-band testing and a storage device to solve the problem of poor reliability testing of out-of-band testing.
[0005] In a first aspect, the embodiments of the present disclosure provide a method for verifying the reliability of an SSD disk based on out-of-band testing, the method comprising:
[0006] counting a command set supported by the SSD disk and determining a to-be-tested state of the SSD disk, the command set including at least a command set supported by the SSD out-of-band;
[0007] determining corresponding verification units based on the to-be-tested state of the SSD disk and determining a test scenario for out-of-band testing, the verification units including one or more of three dimensions of a protocol verification unit, a timing command verification unit, and an impact verification unit, each verification unit being associated with a plurality of test commands in the command set;
[0008] According to the determined test scenario, the corresponding verification unit is matched, the SSD disk is switched to the to-be-tested state, and the test commands associated with the corresponding verification unit are executed.
[0009] In some embodiments of the present disclosure, the to-be-tested state comprises:
[0010] an Initial state, indicating that the SSD is in an initialization stage;
[0011] an Online state, indicating that the SSD has been normally started and is in a working mode;
[0012] an Offline state, indicating that the SSD is in an offline state or temporarily stops service;
[0013] a Shutdown state, indicating that the SSD is in a shutdown state;
[0014] wherein in the initial test, the to-be-tested state is switched to the Online state.
[0015] In some embodiments of the present disclosure, in the Online state, the SSD disk is subjected to concurrent stress testing.
[0016] The execution of the test command associated with the corresponding verification unit comprises:
[0017] starting an I / O load, executing the command combination of the verification unit under a high I / O load, and executing the test command; and / or,
[0018] When the SSD disk is switched from the Initial state to the Online state, the corresponding verification unit is determined to be a high-risk operation verification unit.
[0019] In some embodiments of the present disclosure, based on the to-be-tested state of the SSD disk, the corresponding verification unit is determined respectively, and the out-of-band testing scenario is determined, which comprises:
[0020] in response to the SSD disk being in any to-be-tested state, determining the verification unit corresponding to the to-be-verified out-of-band command;
[0021] configuring a corresponding test scenario, and verifying the response result and performance of the SSD disk to the out-of-band command under the test scenario.
[0022] In some embodiments of the present disclosure, when the state of the SSD disk is switched, the method further comprises:
[0023] triggering the switching of the SSD disk from the Initial state to the Online state, from the Online state to the Offline state, and from the Offline state to the Shutdown state in different test scenarios;
[0024] in each state, comparing the expected response and the actual response of the SSD disk to the to-be-verified out-of-band command according to the to-be-verified out-of-band command.
[0025] Record key time and error code during state transition process.
[0026] In some embodiments of the present disclosure, when the verification unit comprises the protocol verification unit, the executing the test command associated with the corresponding verification unit comprises:
[0027] Testing data read command under different protocols by executing data read type protocol verification unit in the protocol verification unit;
[0028] When the verification unit comprises the protocol verification unit, the executing the test command associated with the corresponding verification unit comprises:
[0029] Verifying SSD state monitoring command by executing state monitoring type protocol verification unit in the protocol verification unit;
[0030] When the verification unit comprises the protocol verification unit, the executing the test command comprises:
[0031] Verifying SSD configuration parameter setting by executing configuration management type protocol verification unit in the protocol verification unit;
[0032] When the verification unit comprises the protocol verification unit, the executing the test command comprises:
[0033] Testing instruction of SSD state by executing state control type protocol verification unit in the protocol verification unit.
[0034] In some embodiments of the present disclosure, when the verification unit comprises the timing command verification unit, the executing the test command comprises:
[0035] Testing command with average execution time between 0-10 ms by executing short timing command verification unit in the timing command verification unit;
[0036] Testing command with average execution time between 10 ms-100 ms by executing medium timing command verification unit in the timing command verification unit;
[0037] Testing command with average execution time greater than 100 ms by executing long timing command verification unit in the timing command verification unit.
[0038] In some embodiments of the present disclosure, when the verification unit comprises the influence verification unit, the executing the test command comprises:
[0039] By executing the lossless operation verification unit in the influence verification unit, operations involving only state query and data reading, without any changes to SSD data and physical state, are verified;
[0040] By executing the light weight operation verification unit in the influence verification unit, operations involving a small amount of data writing or configuration parameter modification are verified;
[0041] By executing the high risk operation verification unit in the influence verification unit, operations affecting the integrity of SSD data or the physical life of the device are verified.
[0042] In some embodiments of the present disclosure, the method further comprises:
[0043] Collecting test results, calculating coverage through tested state scenarios and verification units;
[0044] If the test results are the same as the expected results, it is determined that the verification unit test under the test scenario is successful, and the next verification unit to be tested is matched;
[0045] If the test results do not match the expected results, it is determined that the test fails;
[0046] If the test is successful, a log record is generated; if the test fails, an error is recorded, and the test is stopped, and all key times and error codes in the state conversion process are recorded.
[0047] In a second aspect, embodiments of the present disclosure also provide a storage device, comprising a memory and a processor, wherein the processor comprises a plurality of cores, and the memory stores a computer program, which, when executed by the processor, implements the above-mentioned SSD disk reliability verification method based on out-of-band testing.
[0048] The present disclosure provides an SSD disk reliability verification method based on out-of-band testing and a storage device, which at least brings the following beneficial effects:
[0049] By classifying and combining SSD out-of-band commands according to protocol dimensions, timing dimensions, and device influence dimensions, a systematic verification unit is formed, and command mapping and coverage statistics are supported; an in-band SSD running state model is established, and corresponding test scenarios and verification unit combinations are configured in combination with state characteristics. Through a three-dimensional verification system and a state-related test mechanism, test cases can be flexibly combined to simulate usage in various application scenarios, significantly improving the coverage of out-of-band testing and the robustness of the device.
[0050] It should be understood that the above general description and the following detailed description are only exemplary and explanatory, and cannot limit the present disclosure. BRIEF DESCRIPTION OF DRAWINGS
[0051] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description are only some embodiments of the present disclosure, and for those skilled in the art, other drawings can also be obtained from these drawings without creative labor.
[0052] Figure 1 The flow chart of the SSD disk reliability verification method based on out-of-band testing provided by the present disclosure.
[0053] Figure 2 The specific implementation flowchart of the out-of-band testing method provided by the present disclosure.
[0054] Figure 3 The test method flowchart provided by the first embodiment of the present disclosure.
[0055] Figure 4 The test method flowchart provided by the second embodiment of the present disclosure.
[0056] Figure 5 The structural diagram of an exemplary electronic device capable of implementing the embodiments of the present disclosure.
[0057] Figure 6 The structural diagram of a storage device provided by the embodiments of the present disclosure. DETAILED DESCRIPTION
[0058] In order to make the purposes, technical solutions and advantages of the present disclosure clearer, the present disclosure will be further described in detail below in combination with the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present disclosure and do not limit the present disclosure.
[0059] Based on the above-mentioned problems, the present disclosure configures corresponding test scenarios based on the characteristics of in-band disks under different operating states, in order to cover and verify the behavior, response and reliability of SSDs under various operating modes. The scheme of the present disclosure includes a state definition module, a test scenario configuration module and a state conversion and verification module. Among them:
[0060] The state definition module is used to determine the states of the in-band disk, including but not limited to:
[0061] The Initial state indicates that the SSD is in the initialization stage, and the execution of some commands will be limited;
[0062] The Online state indicates that the SSD has been normally started and is in a working operating mode, and various commands are normally responded;
[0063] The Offline status indicates that the SSD is offline or temporarily out of service.
[0064] The Shutdown state indicates that the SSD is powered off.
[0065] The test scenario configuration module is used to integrate the verification layer and verification unit to configure specific test scenarios for the aforementioned states, ensuring that the SSD's performance meets expectations under different states. Specifically, this includes whether the SSD's response to commands meets expectations. For example, when the disk is in a normal Online state, all commands can be responded to; in the initialization state, it is also expected that some commands cannot be responded to.
[0066] The state transition and verification module is used to control the state in the test environment and verify the SSD's data integrity, response time, and error recovery capabilities during state transitions. The test content includes:
[0067] The system triggers SSD state transitions from Initial to Online, Online to Offline, and Offline to Shutdown in different test scenarios, and monitors the device response. In each state, out-of-band commands are sent to the verification unit, and the expected and actual responses are compared to ensure the SSD can correctly process the commands during state transitions. The system determines whether the processing is correct based on the expected and actual responses. If correct, a log is generated, and the test continues; if incorrect, the error is recorded, and the test stops. All key times and error codes during each state transition are recorded to provide a basis for subsequent problem analysis.
[0068] like Figure 1 As shown in the figure, an SSD disk reliability verification method 100 based on out-of-band testing provided in this disclosure includes the following steps:
[0069] S101, count the command set supported by the SSD disk and determine the test status of the SSD disk, wherein the command set includes at least the command set supported by the SSD out-of-band.
[0070] S102, based on the test status of the SSD disk, determine the corresponding verification units and determine the scenarios that need to be tested out of band. The verification units include one or more of the following three dimensions: protocol verification unit, timing command verification unit, and impact verification unit. Each verification unit is associated with multiple test commands in the command set.
[0071] S103, Match the corresponding verification unit according to the determined test scenario, switch the SSD disk to the test state, and execute the test command associated with the corresponding verification unit.
[0072] In a further preferred embodiment, the to-be-tested state comprises:
[0073] an Initial state, indicating that the SSD is in an initialization phase;
[0074] an Online state, indicating that the SSD has been normally started and is in a working mode;
[0075] an Offline state, indicating that the SSD is in an offline state or temporarily stops service;
[0076] a Shutdown state, indicating that the SSD is in a shutdown state;
[0077] wherein in the initial test, the to-be-tested state is switched to the Online state.
[0078] In a further preferred embodiment, in the Online state, the SSD disk is subjected to concurrent stress testing.
[0079] The execution of the test command associated with the corresponding verification unit comprises:
[0080] starting an I / O load, executing the command combination of the verification unit under a high I / O load, and executing the test command.
[0081] By traversing the test scenarios and the verification units, the behavior, response and reliability of the SSD in various running modes are verified, so as to improve the coverage of the out-of-band testing.
[0082] In a further preferred embodiment, based on the to-be-tested state of the SSD disk, the corresponding verification unit is determined respectively, and the scenarios of the out-of-band testing are determined, which comprises:
[0083] in response to the SSD disk being in any to-be-tested state, determining the verification unit corresponding to the to-be-verified out-of-band command;
[0084] configuring a corresponding test scenario, and verifying the response result and performance of the SSD disk to the out-of-band command in the test scenario.
[0085] In a further preferred embodiment, when the state of the SSD disk is converted, the method further comprises:
[0086] triggering the conversion of the SSD disk from the Initial state to the Online state, from the Online state to the Offline state, and from the Offline state to the Shutdown state in different test scenarios;
[0087] in each state, comparing the expected response and the actual response of the SSD disk to the to-be-verified out-of-band command according to the to-be-verified out-of-band command;
[0088] Record key times and error codes during state transition processes.
[0089] Through the three-dimensional verification system and the state association test mechanism, the test cases are flexibly combined, various application scenarios are simulated, and the coverage of the out-of-band test and the robustness of the device are significantly improved.
[0090] In a further preferred embodiment, when the verification unit includes the protocol verification unit, the execution of the test command associated with the corresponding verification unit includes:
[0091] By executing a data read type protocol verification unit in the protocol verification unit, data read commands under different protocols are tested;
[0092] When the verification unit includes the protocol verification unit, the execution of the test command associated with the corresponding verification unit includes:
[0093] By executing a state monitoring type protocol verification unit in the protocol verification unit, an SSD state monitoring command is verified;
[0094] When the verification unit includes the protocol verification unit, the execution of the test command includes:
[0095] By executing a configuration management type protocol verification unit in the protocol verification unit, an SSD configuration parameter setting is verified;
[0096] When the verification unit includes the protocol verification unit, the execution of the test command includes:
[0097] By executing a state control type protocol verification unit in the protocol verification unit, an instruction for the SSD state is tested.
[0098] In a further preferred embodiment, when the verification unit includes the timing command verification unit, the execution of the test command includes:
[0099] By executing a short timing command verification unit in the timing command verification unit, a command with an average execution time of 0-10 ms is tested;
[0100] By executing a medium timing command verification unit in the timing command verification unit, a command with an average execution time of 10-100 ms is tested;
[0101] By executing a long timing command verification unit in the timing command verification unit, a command with an average execution time greater than 100 ms is tested.
[0102] In a further preferred embodiment, when the verification unit includes the influence verification unit, executing the test command includes:
[0103] By executing the non-destructive operation verification unit in the impact verification unit, operations that only involve status query and data reading, without changing the SSD data and physical state, are verified.
[0104] By executing the lightweight write operation verification unit in the impact verification unit, operations involving small amounts of data writing or configuration parameter modification are verified.
[0105] By executing the high-risk operation verification unit in the impact verification unit, operations that affect the integrity of SSD data or the physical lifespan of the device are verified.
[0106] In a further preferred embodiment, when the SSD disk changes from the Initial state to the Online state, the corresponding verification unit is identified as a high-risk operation verification unit.
[0107] In a further preferred embodiment, the method further includes:
[0108] Collect test results and calculate coverage using the tested state scenarios and verification units;
[0109] If the test result is the same as the expected result, the verification unit test in this test scenario is determined to be successful, and the next verification unit to be tested is matched.
[0110] If the test results do not match the expected results, the test is considered a failure.
[0111] In a further preferred embodiment, if the test is successful, a log record is generated; if the test fails, the error is recorded and the test is stopped, recording all key times and error codes during each state transition.
[0112] The above method will be described in detail below with reference to some specific embodiments. Figure 2 This is a schematic diagram illustrating the specific implementation process of the out-of-band testing method 200 provided in this disclosure. It includes the following steps:
[0113] S201: Statistics on the features and command set supported by SSDs.
[0114] Specifically, first, the management command set supported by the SSD is counted, such as device information query, log collection, firmware update, etc.; then the I / O command set supported is counted, such as Read, Write, Copy, etc. data read-write commands, which are used to impose I / O load, and the OOB commands supported by the SSD out-of-band are counted, including Control Primitive command, MCTP control command, management interface MI command, and Admin command.
[0115] S202: defining a verification unit.
[0116] Specifically, the disclosure designs a three-dimensional command verification system, including protocol dimension, timing dimension and influence dimension, that is, protocol verification unit, timing command verification unit and influence verification unit are defined respectively. Among them,
[0117] The protocol dimension ensures that the command conforms to the NVMe-MI / SMBus / MCTP protocol specification. The protocol verification unit is used to divide four types of data reading, state monitoring, configuration management, and state control, each type being associated with specific commands. The data reading protocol verification unit includes testing of data reading commands under different protocols, such as Block Read command under SMBus protocol, to ensure that the SSD accurately and efficiently reads data under various protocol specifications; the state monitoring protocol verification unit involves verification of SSD state monitoring commands, such as NVM Subsystem Health Status Poll; the configuration management protocol verification unit includes verification of SSD configuration parameter settings, such as Config Set; and the state control protocol verification unit tests instructions for SSD state, such as Reset, Shutdown.
[0118] In the timing dimension, the timing command verification unit is used to define three types of strategies according to response thresholds, namely short timing, medium timing and long timing. The short timing command verification unit involves testing commands with short execution time, with an average execution time of 0-10ms, such as Config Get; the medium timing command verification unit involves testing commands that require a certain execution time, with an average execution time of 10ms-100ms, such as VPD Write; and the long timing command verification unit involves testing commands that require a long execution time, with an average execution time of more than 100ms, such as Format, Sanitize.
[0119] In the impact dimension, the impact verification unit is divided into three levels of non-destructive operation, light weight write operation and high risk operation according to the destructiveness of the operation. The non-destructive operation verification unit is used for verifying only state query and data reading, and the operation without any change to SSD data and physical state, such as Config Get. The light weight write operation verification unit is used for verifying a small amount of data writing or configuration parameter modification, and the operation with extremely small impact on the overall life of the device and data integrity, such as VPD Write. The high risk operation verification unit is used for verifying the operation that may have a greater impact on the data integrity of the SSD or the physical life of the device, which belongs to the high risk test category, such as Format and Sanitize.
[0120] S203: The aggregation verification unit maps the command to the corresponding verification unit, for example, Health Status Poll is classified into the state monitoring protocol verification unit, the short time sequence command verification unit and the non-destructive operation verification unit.
[0121] S204: Define the test scene, and determine the scene to be tested according to the state that can be reached by the device.
[0122] S205: Scene matching verification unit, according to the test covered by the test scene, match the required verification unit.
[0123] S206: Perform the test, switch the SSD to the corresponding state according to the defined test scene, and execute the command combination of the verification unit.
[0124] S207: Collect the test results, and compare the returned test results with the expected results.
[0125] If the test results are the same as the expected results, the verification unit test in this scene is successful, then S205 is performed to match the next verification unit to be tested.
[0126] If the test results do not match the expected results, the verification unit test in this scene fails, and S208 is performed.
[0127] S208, exit the test and leave the scene, and perform subsequent analysis and debugging.
[0128] S209: Summarize the test results, and calculate the coverage rate through the tested state scene and the verification unit.
[0129] In this example, the behavior, response and reliability of the SSD in each running mode are verified by traversing the test scene and the verification unit, so as to improve the coverage rate of the out-of-band test.
[0130] The test method of the present disclosure is described in more detail as follows:
[0131] Embodiment 1
[0132] Figure 3 The flowchart shown is the concurrent stress test 300 in the Online state, and the specific steps are as follows:
[0133] S301: First determine the SSD state to be tested, and switch the SSD state to the Online state through the state transition and verification module.
[0134] S302: Then determine the verification unit in this state, and set the verification unit for this round of test to the data read protocol verification unit, the short sequence command verification unit, and the lossless operation verification unit through the test scenario configuration module. The example command can be the health Status Poll and Get Feature command, configure the I / O load and set the test time.
[0135] S303: Perform the test, start the I / O load, and execute the command combination of the verification unit under high I / O load. The high I / O load is an IOPS >= 70% of the nominal IOPS or a bandwidth >= 70% of the nominal sequential read-write bandwidth, and the I / O load lasts for more than 10 minutes.
[0136] S304: Compare the results of the out-of-band command response with the expected results, verify the data integrity, protocol consistency, and stability of the SSD state.
[0137] S305: Record the test results.
[0138] As shown in Embodiment 1, the response robustness of the out-of-band command is verified through the concurrent stress test in the Online state.
[0139] Embodiment 2
[0140] Figure 4 The flowchart shown is the high-risk operation test method 400 of the SSD from the Initial state to the Online state, which is used to verify the behavior, abnormal handling and recovery ability of the out-of-band command during the state transition process from the initialization to the normal working mode of the SSD. It includes the following steps:
[0141] S401: First determine the SSD state to be tested, and the test needs to switch the SSD from the Initial state to the Online state, and the state switching will be completed through the state transition and verification module.
[0142] S402: Then determine the verification unit in this state, and set the verification unit for this round of test to the high-risk operation verification unit through the test scenario configuration module. The example command can be the Format and Sanitize command.
[0143] S403: Perform test, trigger SSD state transition from Initial to Online, send command group of verification unit at the same time.
[0144] S404: Compare results, verify that SSD state transition result and out-of-band command execution result meet expectations.
[0145] S405: Record test results.
[0146] Based on the above method, by classifying and combining the SSD out-of-band commands according to the protocol dimension, the timing dimension, and the device influence dimension, a systematic verification unit is formed, and command mapping and coverage statistics are supported; an in-band SSD running state model is established, and corresponding test scenarios and verification unit combinations are configured in combination with state characteristics. Through the three-dimensional verification system and the state-related test mechanism, test cases can be flexibly combined, various application scenarios can be simulated, and the coverage rate of out-of-band testing and the robustness of the device can be significantly improved.
[0147] It should be understood that, although Figures 1-4 The steps in the flowchart of the method are displayed in sequence according to the direction of the arrows, but these steps are not necessarily executed in sequence according to the direction of the arrows. Unless otherwise specified in this document, the execution of these steps is not strictly limited in sequence, and these steps can be executed in other sequences. Moreover, Figures 1-4 At least part of the steps in the method can include multiple steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution sequence of these steps or stages is not necessarily sequential, but can be executed in rotation or alternation with at least part of other steps or steps or stages in other steps.
[0148] It can be understood that the same / similar parts of each embodiment of the above method in the specification can be referred to each other, and each embodiment focuses on the differences from other embodiments, and the related parts can be referred to the description of other method embodiments.
[0149] According to embodiments of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0150] Figure 5A block diagram of an exemplary electronic device capable of implementing embodiments of the present disclosure is shown. The electronic device 500 is intended to represent various forms of digital computers, such as laptops, desktops, tablets, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device 500 can also represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, wearable devices, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not intended to limit the implementations of the present disclosure described and / or claimed in this document.
[0151] As shown in Figure 5 The electronic device 500 can include a computing unit 501 that can perform various appropriate actions and processes in accordance with a computer program stored in a read-only memory (ROM) 502 or a computer program loaded into a random access memory (RAM) 503 from a storage unit 508. Various programs and data required for the operation of the electronic device 500 can also be stored in the RAM 503. The computing unit 501, the ROM 502, and the RAM 503 are connected to each other through a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.
[0152] Various components in the electronic device 500 are connected to the I / O interface 505, including an input unit 506, such as a keyboard, a mouse, etc.; an output unit 507, such as various types of displays, a speaker, etc.; a storage unit 508, such as a magnetic disk, an optical disk, etc.; and a communication unit 509, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 509 allows the electronic device 500 to exchange information / data with other devices through a computer network, such as the Internet, and / or various telecommunication networks.
[0153] The computing unit 501 can be various general and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 501 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 501 performs various methods and processes described above, such as the methods 100-400. For example, in some embodiments, the methods 100-400 can be implemented as a computer program product, including a computer program tangibly embodied in a computer-readable medium, such as the storage unit 508. In some embodiments, part or all of the computer program can be loaded and / or installed onto the electronic device 500 via the ROM 502 and / or the communication unit 509. When the computer program is loaded onto the RAM 503 and executed by the computing unit 501, one or more steps of the methods 100-400 described above can be performed. Alternatively, in other embodiments, the computing unit 501 can be configured to perform the methods 100-400 by any other appropriate means, such as by means of firmware. The various implementations described above can be implemented in digital electronic circuitry, integrated circuitry, a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a system on a chip (SOC), a programmable logic device (CPLD), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0154] Figure 6 is a structural schematic diagram of a storage device provided by an embodiment of the disclosure, as Figure 6 shown, the storage device can include a processor 610 and a memory 620, wherein the memory 620 stores a computer program, when the computer program is executed by the processor 610, the method provided by any of the above embodiments can be implemented, the execution manner and beneficial effects are similar, and details are not repeated here.
[0155] Of course, in order to simplify, Figure 6Only some of the components of the storage device that are relevant to the present application are shown, and components such as buses, input / output interfaces, input and output devices, etc. are omitted. In addition, the storage device can include any other appropriate components according to specific application cases.
[0156] Program code for carrying out methods of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program codes can be executed entirely on a machine, partially on a machine, partially on a machine as a stand-alone software package, and partially on a remote machine or server, or entirely on a remote machine or server.
[0157] In the context of the present disclosure, a computer readable medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. The computer readable medium can be a computer readable signal medium or a computer readable storage medium. The computer readable medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the above. More specific examples of the computer readable storage medium can include one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, compact disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above.
[0158] It should be noted that the present disclosure also provides a non-transitory computer readable storage medium storing computer instructions, wherein the computer instructions are used to make a computer execute a method and achieve the corresponding technical effects achieved by the embodiments of the present disclosure. For brevity, the description is not repeated here.
[0159] In addition, the present disclosure also provides a computer program product, which includes a computer program, and the computer program, when executed by a processor, implements a method.
[0160] To provide for interaction with a user, the above described embodiments can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0161] The above described embodiments can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0162] The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server is generally established using computer programs running on the respective computers and having a client-server relationship. The servers can be cloud servers, servers of a distributed system, or servers combined with a blockchain.
[0163] It should be understood that various forms of flow shown above can be used, re-ordered, added to, or deleted from without departing from the spirit of the present disclosure. For example, the steps recited in the present disclosure can be performed in parallel, in series, or in a different order, without departing from the desired results of the technical solutions disclosed in the present disclosure, and are not limited herein.
[0164] The specific embodiments described above are not intended to be limiting, and persons skilled in the art will appreciate that various modifications, combinations, sub-combinations and alternatives can be made to the specific embodiments without departing from the spirit and scope of the disclosure. Any modifications, equivalent substitutions, improvements, and the like, made within the spirit and principles of the disclosure should be included in the scope of the disclosure.
Claims
1. A method for verifying the reliability of SSDs based on out-of-band testing, characterized in that, The method includes: The command set supported by the SSD is counted, and the test status of the SSD is determined. The command set includes at least the out-of-band command set supported by the SSD. Based on the test status of the SSD disk, corresponding verification units are determined, and out-of-band test scenarios are determined. The verification units include one or more of the following three dimensions: protocol verification unit, timing command verification unit, and impact verification unit. Each verification unit is associated with multiple test commands in the command set. Based on the determined test scenario, the corresponding verification unit is matched, the SSD disk is switched to the test state, and the test command associated with the corresponding verification unit is executed.
2. The method according to claim 1, characterized in that, The states to be tested include: The Initial state indicates that the SSD is in the initialization phase; The Online status indicates that the SSD has started normally and is in working mode; The Offline status indicates that the SSD is offline or temporarily out of service. The Shutdown state indicates that the SSD is powered off. In the initial test, the state to be tested is switched to Online state.
3. The method according to claim 2, characterized in that, Also includes: Perform concurrent stress tests on the SSD in online mode; The execution of the test command associated with the corresponding verification unit includes: Initiate I / O load, execute the command combination of the verification unit under high I / O load, and execute test commands; And / or, When an SSD disk transitions from the Initial state to the Online state, the corresponding verification unit is identified as a high-risk operation verification unit.
4. The method according to claim 2, characterized in that, Based on the test state of the SSD, the corresponding verification units are determined, and the out-of-band test scenarios are determined, including: In response to the SSD being in any test state, determine the verification unit corresponding to the out-of-band command to be verified; Configure the corresponding test scenario and verify the SSD disk's response to out-of-band commands and its performance under the test scenario.
5. The method according to claim 2, characterized in that, When the state of the SSD disk changes, the method further includes: Trigger the transition of the SSD from Initial state to Online state, Online state to Offline state, and Offline state to Shutdown state in different test scenarios; In each state, based on the out-of-band command to be verified, compare the SSD's expected response to the out-of-band command with its actual response. Record key times and error codes during the state transition process.
6. The method according to claim 1, characterized in that, When the verification unit includes the protocol verification unit, the execution of the test command associated with the corresponding verification unit includes: By executing the data reading protocol verification unit in the protocol verification unit, data reading commands under different protocols are tested; When the verification unit includes the protocol verification unit, the execution of the test command associated with the corresponding verification unit includes: The SSD status monitoring command is verified by executing the status monitoring protocol verification unit in the protocol verification unit. When the verification unit includes the protocol verification unit, the execution of the test command associated with the corresponding verification unit includes: The SSD configuration parameter settings are verified by executing the configuration management class protocol verification unit in the protocol verification unit. When the verification unit includes the protocol verification unit, the execution of the test command associated with the corresponding verification unit includes: By executing the state control protocol verification unit in the protocol verification unit, tests are performed on instructions related to the SSD state.
7. The method according to claim 1, characterized in that, When the verification unit includes the timing command verification unit, the execution of the test command associated with the corresponding verification unit includes: By executing the short timing command verification unit in the timing command verification unit, commands with an average execution time between 0 and 10 ms are tested; By executing the intermediate timing command verification unit in the timing command verification unit, commands with an average execution time between 10ms and 100ms are tested; By executing the long-time command verification unit in the timing command verification unit, commands with an average execution time greater than 100ms are tested.
8. The method according to claim 1, characterized in that, When the verification unit includes the influence verification unit, the execution of the test command associated with the corresponding verification unit includes: By executing the non-destructive operation verification unit in the impact verification unit, operations that only involve status query and data reading, and do not change the SSD data or physical state, are verified. By executing the lightweight write operation verification unit in the impact verification unit, operations involving small amounts of data writing or configuration parameter modification are verified. By executing the high-risk operation verification unit in the impact verification unit, operations that affect the integrity of SSD data or the physical lifespan of the device are verified.
9. The method according to any one of claims 1-8, characterized in that, The method further includes: Collect test results and calculate coverage using the tested state scenarios and verification units; If the test result is the same as the expected result, the verification unit test in this test scenario is determined to be successful, and the next verification unit to be tested is matched. If the test results do not match the expected results, the test is considered a failure. If the test succeeds, a log entry is generated; if the test fails, the error is recorded and the test is stopped, recording all key times and error codes during each state transition.
10. A storage device, characterized in that, include: The system includes a memory and a processor, the processor comprising multiple cores, wherein the memory stores a computer program that, when executed by the processor, implements the SSD disk reliability verification method based on out-of-band testing as described in any one of claims 1-9.
Citation Information
Patent Citations
System and method for testing NVMe-MI function of solid state disk
CN114613418A
Solid state disk test verification method and device, computer equipment and storage medium
CN116189754A