Disk falling instruction processing method and device of disk array card and disk array card

By using timer pool and multi-timer polling in the RAID card system, timeout detection of Admin and IO instructions is solved, the problem of low efficiency of timer polling is improved, the system flexibility and performance is improved, and the challenge of increasing the number of SSDs and queues is adapted.

CN120353391APending Publication Date: 2025-07-22SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510454387.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-11
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

When the existing RAID card system handles Admin and IO instructions, the timer polling method has problems such as low efficiency and inability to adapt to the increase in the number of SSDs and queues, which affects the system performance and flexibility and is difficult to meet the high reliability and performance requirements of cloud computing and big data applications.

Method used

Using the timer pool setting, a timer is applied for the Admin instruction, and a separate timer is set for each hard disk for the IO instruction. Timeout detection is performed through variable timer and multi-timer polling to improve monitoring accuracy and response speed.

Benefits of technology

It improves the flexibility and performance of the RAID card system, enhances the monitoring accuracy of the hard disk and the stability of the system, and adapts to the high-performance needs of different scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120353391A_ABST
    Figure CN120353391A_ABST
Patent Text Reader

Abstract

The invention discloses a disk falling instruction processing method and device of a disk array card and the disk array card, and relates to the technical field of storage, and the method comprises the following steps: obtaining a host submission instruction, and putting the host submission instruction into a corresponding submission queue; issuing a host submission instruction in the current submission queue, and detecting whether the issued host submission instruction is overtime in processing or not according to a timer corresponding to the current submission queue; wherein the timer is a timer corresponding to a control submission queue in a timer pool or a timer corresponding to a target hard disk; if yes, performing timeout processing on the current submission queue; according to the RAID card system, the timer pool is arranged, one timer can be applied for the control instruction, one timer corresponding to each hard disk can be applied for the input and output instruction, and therefore timeout detection can be conducted on the control instruction and the input and output instruction through the corresponding timers, and the flexibility and performance of the RAID card system are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of storage technology, and particularly to a method and device for processing disk drop instructions of a disk array card, and a disk array card. Background Art

[0002] In the field of computer storage, RAID (Redundant Arrays of Independent Disks) technology is designed to improve the reliability and performance of data storage. RAID technology relies on a RAID card (also known as a disk array controller) to manage complex operations of multiple disks, including data striping, parity check calculation, and disk health monitoring.

[0003] Currently, disk dropping of a RAID card usually adopts a method of periodic polling by a timer to monitor whether it times out. In this method, the RAID card queries the status of each disk queue SQE (a submission instruction of the NVMe protocol) at fixed time intervals to ensure a CQE (a completion instruction of the NVMe protocol) response from the SSD within the expected time; in some related art solutions, a timer is applied for each queue, and more often there is only a single timer polling all queues. Although the existing polling-based timing detection is still effective in many scenarios, its adaptability in different scenarios is different; when the number of hard disks and the number of IO (Input / Output) queues of each hard disk are large, the bottleneck of the existing timer timeout detection and processing method for high-performance requirements is obvious. Moreover, with the rise of cloud computing and big data applications, the amount of data that the storage system needs to store has increased greatly, and the requirements for its reliability and performance are getting higher and higher. The existing single-timer polling mechanism has been difficult to meet these needs.

[0004] Therefore, how to solve the problems in the related art that the timeout detection scheme of the timer in a fixed polling manner is not fully applicable to both Admin (control) and IO instructions, has low efficiency when the number of SSDs and queues increases, and affects system performance, and improve the flexibility and performance of the RAID card system is an urgent problem to be solved today. Summary of the Invention

[0005] The purpose of the present invention is to provide a method and device for processing disk drop instructions of a disk array card, and a disk array card, so as to perform timeout detection on both Admin and IO instructions by using corresponding timers, and improve the flexibility and performance of the RAID card system.

[0006] To solve the above technical problems, the present invention provides a method for processing disk drop instructions of a disk array card, including:

[0007] Obtain the host submission instruction and put the host submission instruction into the corresponding submission queue; wherein, the host submission instruction includes a control submission instruction and an input / output submission instruction, and the submission queue includes a control submission queue and an input / output submission queue;

[0008] Dispatch the host submission instruction in the current submission queue, and detect whether the dispatched host submission instruction times out according to the timer corresponding to the current submission queue; wherein, the current submission queue is any one of the submission queues, and the timer is a timer corresponding to the control submission queue in the timer pool or a timer corresponding to the target hard disk, and the target hard disk is the hard disk connected to the disk array card corresponding to the current submission queue;

[0009] If so, perform timeout processing on the current submission queue.

[0010] On the other hand, when the current submission queue is the control submission queue, detecting whether the dispatched host submission instruction times out according to the timer corresponding to the current submission queue includes:

[0011] Judge whether the completion instruction corresponding to the earliest submission instruction is received within the timing duration of the timer; wherein, the earliest submission instruction includes the uncompleted host submission instruction that is earliest dispatched in the control submission queue;

[0012] If received, update the timing duration of the timer according to the reception time of the completion instruction and the dispatch time of the target submission instruction; wherein, the target submission instruction includes the uncompleted host submission instruction that is earliest dispatched after the earliest submission instruction in the control submission queue;

[0013] If not received, perform the step of performing timeout processing on the current submission queue.

[0014] On the other hand, the updating the timing duration of the timer according to the reception time of the completion instruction and the dispatch time of the target submission instruction includes:

[0015] Calculate the difference between the reception time of the completion instruction and the dispatch time of the target submission instruction to obtain a first difference;

[0016] Calculate the difference between the preset timing duration of the timer and the first difference to obtain a second difference;

[0017] Update the timing duration of the timer to the second difference.

[0018] On the other hand, when the current submission queue is the input / output submission queue, detecting whether the dispatched host submission instruction times out according to the timer corresponding to the current submission queue includes:

[0019] Detect at intervals of the timing duration of the timer whether the head submission instructions of each target input / output submission queue have not timed out; wherein, the target input / output submission queue is the input / output submission queue corresponding to the target hard disk, and the head submission instruction is the input / output submission instruction at the head of the target input / output submission queue;

[0020] If there is a head submission instruction that has timed out, execute the step of performing timeout processing on the current submission queue.

[0021] On the other hand, putting the host submission instruction into the corresponding submission queue includes:

[0022] When the current host submission instruction is the control submission instruction, determine whether the control submission queue corresponding to the current host submission instruction is empty;

[0023] If it is not empty, insert the current host submission instruction into the tail of the corresponding control submission queue, record the sending time of the current host submission instruction, and notify the corresponding hard disk;

[0024] If it is empty, insert the current host submission instruction into the head of the corresponding control submission queue, and when all other control submission queues are empty, apply for and start a timer from the timer pool; wherein, the timing duration of the timer is a preset timing duration;

[0025] Record the sending time of the current host submission instruction, and notify the corresponding hard disk.

[0026] On the other hand, the method further includes:

[0027] When the disk array card is initialized in the system, create the timer pool; wherein, the number of timers in the timer pool is greater than the number of hard disks connected to the disk array card.

[0028] On the other hand, when the current submission queue is the input / output submission queue, performing timeout processing on the current submission queue includes:

[0029] Stop receiving and sending the input / output submission instructions corresponding to the target hard disk, and add all the unprocessed input / output submission instructions in the input / output submission queue corresponding to the target hard disk to the timeout queue;

[0030] Perform a reset operation on the target hard disk;

[0031] If the reset is successful, retry the input / output submission instructions in the timeout queue and obtain the retry result;

[0032] If the reset fails or the retry result is a retry failure, mark the target hard disk as a bad disk and send the corresponding bad disk information to the host device.

[0033] On the other hand, when the current submission queue is the control submission queue, timeout processing is performed on the current submission queue, including:

[0034] Stop receiving and issuing control submission instructions corresponding to the current submission queue, and add all unprocessed control submission instructions in the current submission queue to the control timeout queue;

[0035] Perform a reset operation on the timeout hard disk; wherein, the timeout hard disk is the hard disk corresponding to the control submission instruction for which the timeout occurs;

[0036] If the reset is successful, retry the control submission instructions in the control timeout queue to obtain a control retry result;

[0037] If the reset fails or the control retry result is a retry failure, mark the timeout hard disk as a bad disk and send corresponding bad disk information to the host device.

[0038] The present invention also provides a device for processing disk drop instructions of a disk array card, including:

[0039] An acquisition module, configured to acquire a host submission instruction and put the host submission instruction into a corresponding submission queue; wherein, the host submission instruction includes a control submission instruction and an input / output submission instruction, and the submission queue includes a control submission queue and an input / output submission queue;

[0040] A timeout detection module, configured to issue the host submission instructions in the current submission queue and detect whether the issued host submission instructions are timed out according to a timer corresponding to the current submission queue; wherein, the current submission queue is any one of the submission queues, and the timer is a timer corresponding to the control submission queue in the timer pool or a timer corresponding to a target hard disk, and the target hard disk is the hard disk connected to the disk array card corresponding to the current submission queue;

[0041] A timeout processing module, configured to perform timeout processing on the current submission queue if the processing is timed out.

[0042] In addition, the present invention also provides a disk array card, including:

[0043] A memory, configured to store a computer program;

[0044] A processor, configured to implement the steps of the method for processing disk drop instructions of the disk array card as described above when executing the computer program.

[0045] A method for processing disk drop commands of a disk array card provided by the present invention includes: obtaining a host submission command and putting the host submission command into a corresponding submission queue; wherein, the host submission command includes a control submission command and an input / output submission command, and the submission queue includes a control submission queue and an input / output submission queue; issuing the host submission command in the current submission queue, and detecting whether the issued host submission command times out according to the timer corresponding to the current submission queue; wherein, the current submission queue is any submission queue, and the timer is a timer corresponding to the control submission queue in the timer pool or a timer corresponding to the target hard disk, and the target hard disk is the hard disk connected to the disk array card corresponding to the current submission queue; if so, perform timeout processing on the current submission queue.

[0046] It can be seen that by setting the timer pool, the present invention can apply for a timer for the control command and a timer corresponding to each hard disk for the input / output command. Thus, by detecting whether the issued host submission command times out according to the timer corresponding to the current submission queue, timeout detection can be performed on the control command and the input / output command using the corresponding timer, improving the flexibility and performance of the RAID card system. BRIEF DESCRIPTION OF THE DRAWINGS

[0047] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only the embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained according to the provided drawings.

[0048] Figure 1 It is a schematic diagram of the connection between the RAID card, the host, and the hard disk in the related art;

[0049] Figure 2 It is a schematic diagram of the queue corresponding to the SSD in the RAID card in the related art;

[0050] Figure 3 It is a flowchart of a method for processing disk drop commands of a disk array card provided by an embodiment of the present invention;

[0051] Figure 4 It is a flowchart of another method for processing disk drop commands of a disk array card provided by an embodiment of the present invention;

[0052] Figure 5 It is a schematic flowchart of a method for processing the RAID card for the Admin command provided by an embodiment of the present invention;

[0053] Figure 6Schematic diagram of a normal scenario for timeout detection and processing of Admin instructions provided by an embodiment of the present invention;

[0054] Figure 7 Schematic diagram of a timeout scenario for timeout detection and processing of Admin instructions provided by an embodiment of the present invention;

[0055] Figure 8 Flowchart of another method for processing disk drop instructions of a disk array card provided by an embodiment of the present invention;

[0056] Figure 9 Schematic diagram of a process for a RAID card to process IO instructions provided by an embodiment of the present invention;

[0057] Figure 10 Schematic diagram of a normal scenario for timeout detection and processing of IO instructions provided by an embodiment of the present invention;

[0058] Figure 11 Schematic diagram of a timeout scenario for timeout detection and processing of IO instructions provided by an embodiment of the present invention;

[0059] Figure 12 Structural block diagram of a device for processing disk drop instructions of a disk array card provided by an embodiment of the present invention;

[0060] Figure 13 Schematic diagram of the structure of a disk array card provided by an embodiment of the present invention. Detailed implementation manners

[0061] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are some but not all of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0062] Such as Figure 1As shown, the RAID (Redundant Array of Independent Disks) card acts as a bridge between the host device and the hard disk. By optimizing data transmission, providing fault tolerance protection, and managing the disk array, etc., it ensures the safe, reliable, and efficient storage of data. During the interaction between the RAID card and the hard disk (such as the solid-state drive SSD), the control layer will interact through Admin (control) instructions, and the data layer will interact through IO instructions. The Admin instruction can be a command for the host to manage and control the SSD according to the NVMe (Non-Volatile Memory Express) protocol, usually involving management tasks such as configuring the RAID array, monitoring the disk status, performing reconstruction and recovery operations, etc. The IO instruction involves daily data read and write operations. The correct execution of these instructions is crucial for ensuring data integrity and availability. The interaction of Admin instructions and IO instructions between the RAID card and the hard disk is completed through SQ (Submission Queue) and CQ (Completion Queue). The number of queues supported by each hard disk can be as Figure 2 shown, including an Admin SQ (control submission queue) and an Admin CQ (control completion queue) as well as multiple IO_SQ (input / output submission queues) and multiple IO_CQ (input / output completion queues), such as up to 64k.

[0063] In the related art, the disk drop of a RAID card usually uses the method of periodic polling by a timer to monitor whether it times out. This method involves the RAID card querying the status of each disk queue SQE at fixed time intervals to ensure that a CQE (Completion Instruction) response from the hard disk is obtained within the expected time; some solutions apply a timer for each queue, and more solutions use only a single timer to poll all queues. Although the existing polling-based timing detection is still effective in many scenarios, its adaptability in different scenarios is different. The number of Admin commands at the control level is usually small and not frequent, while the IO commands at the data level may be very frequent; using the same timeout detection method will result in more commands needing to be retried, leading to poor performance. When the number of SSDs and the number of IO queues per SSD are large, the bottleneck of the existing timer timeout detection and processing method for high-performance requirements is obvious. In addition, with the rise of cloud computing and big data applications, the amount of data that the storage system needs to store has increased significantly, and the requirements for its reliability and performance are getting higher and higher. The single-timer polling mechanism has difficulty meeting these needs. Although this method is simple and easy to implement, there are still the following problems: 1. As the scale of the storage system expands, the increase in the number of hard disks will further reduce the efficiency of the polling mechanism and it is difficult to meet the requirements of large-scale storage systems. 2. The single timer with a fixed polling interval is not suitable for all scenarios. For example, some applications require faster response times, while other applications may tolerate longer delays; 3. If a timer is used for each queue, when the number of queues is large, too many resources are required.

[0064] Therefore, in view of the problems that when the timer performs timeout detection in a fixed polling manner in the related art, it is not fully applicable to both Admin and IO instructions, has low efficiency when the number of SSDs and queues increases, and affects system performance, etc., this embodiment proposes a method for processing disk drop instructions of a disk array card, which can effectively improve the flexibility and performance of the RAID card system.

[0065] Specifically, please refer to Figure 3 , Figure 3 which is a flowchart of a method for processing disk drop instructions of a disk array card provided by an embodiment of the present invention. The method may include:

[0066] Step 101: Obtain a host submission instruction and put the host submission instruction into a corresponding submission queue; wherein, the host submission instruction includes a control submission instruction and an input / output submission instruction, and the submission queue includes a control submission queue and an input / output submission queue.

[0067] It can be understood that the host submission instruction in this step can be a command sent by the host device for interacting with the hard disks connected to the RAID card. The host submission instruction can include a control (Admin) submission command and an input / output (IO) submission instruction.

[0068] Correspondingly, after obtaining the host submission instruction in this step, the RAID card can put the host submission instruction into the corresponding submission queue (SQ). For the specific method of the RAID card in this step to put the host submission instruction into the corresponding submission queue, it can be set by the designer according to the practical scenario and user requirements. For example, it can be set in the same or similar way as the processing method of the host submission instruction (such as Admin SQE and IO SQE) in the related technology in the corresponding submission queue (such as Admin SQ and IO SQ). For example, when the submission queue corresponding to the current host submission instruction is empty, insert the current host submission instruction into the head of the corresponding control submission queue; when the submission queue corresponding to the current host submission instruction is not empty, insert the current host submission instruction into the tail of the corresponding control submission queue.

[0069] It should be noted that in this embodiment, by setting the timer pool, a timer can be applied for the Admin instruction (such as the control submission instruction), and a separate timer can be applied for each hard disk for the IO instruction (such as the input / output submission instruction), so as to perform timeout detection on the Admin instruction and the IO instruction using the corresponding timer. Since the number of Admin instructions is small and the response speed requirement is higher, a variable timer can be used in this embodiment to perform timeout detection on the Admin instruction; for the large number of IO instructions, a timeout detection process of multi-timer polling can be used, and a separate timer is set for each hard disk (such as SSD), which improves the monitoring accuracy of the hard disk and enhances the stability and reliability of the system.

[0070] Correspondingly, when using a variable timer to detect the timeout of Admin instructions, when the current host submits an instruction as a control submission instruction, the process of putting the host submission instruction into the corresponding submission queue may include: when the current host submission instruction is a control submission instruction, determining whether the control submission queue corresponding to the current host submission instruction is empty; if not, inserting the current host submission instruction into the tail of the corresponding control submission queue, recording the issuance time of the current host submission instruction, and notifying the corresponding hard disk; if it is empty, inserting the current host submission instruction into the head of the corresponding control submission queue, and when all other control submission queues are empty, applying for and starting a timer from the timer pool; wherein, the timing duration of the timer is a preset timing duration; recording the issuance time of the current host submission instruction, and notifying the corresponding hard disk. That is to say, a timer corresponding to an Admin instruction can be applied for and started from the timer pool when a control submission instruction is added to the control submission queue.

[0071] Among them, the method provided in this embodiment may further include the process of the RAID card creating a timer pool during system initialization; wherein, the number of timers in the timer pool is greater than the number of hard disks connected to the disk array card. Correspondingly, in the case of using multi-timer polling timeout detection processing for IO instructions, after creating the timer pool, the RAID card can also apply for a timer corresponding to each hard disk from the timer pool, and the timing durations of these timers can be the same preset duration or different preset durations, such as the preset durations corresponding to each hard disk.

[0072] Step 102: Issue the host submission instruction in the current submission queue, and detect whether the issued host submission instruction times out according to the timer corresponding to the current submission queue; if so, enter Step 103.

[0073] Among them, the current submission queue is any submission queue, the timer is a timer corresponding to the control submission queue in the timer pool or a timer corresponding to the target hard disk, and the target hard disk is the hard disk (such as an SSD) connected to the disk array card corresponding to the current submission queue.

[0074] It can be understood that this embodiment takes the timeout detection of the host submission instruction issued in any non-empty submission queue as an example for display. For the timeout detection of the host submission instruction in other submission queues, it can be implemented in the same or similar manner as the method provided in this embodiment, and this embodiment does not make any restrictions on this.

[0075] Correspondingly, for the specific manner of issuing the host submission instruction in the current submission queue in this step, it can be set by the designer himself. For example, it can be implemented in the same or similar manner as the instruction issuing method of the submission queue (such as Admin SQ and IO SQ) in the related technology. For example, the RAID card can notify the hard disk that a new command or data has been added to the queue by writing a corresponding notification (Doorbell, DB), that is, the RAID card can write the notification of the current submission queue (such as ASQ_DB or IO SQ_DB) to issue the host submission instruction in the current submission queue.

[0076] Among them, for the specific manner in which the RAID card in this step detects whether the issued host submission instruction times out according to the timer corresponding to the current submission queue, it can be set by the designer according to the practical scenario and user requirements. For example, in this embodiment, a variable timer can be used to detect the timeout of the Admin instruction, and a multi-timer polling timeout detection process can be used for the IO instruction, so as to adopt different timeout detection methods for the Admin instruction and the IO instruction, which can more precisely control and manage the hard disks under the RAID card and further improve the overall performance. For example, when the current submission queue is the control submission queue, the RAID card in this step can determine whether the completion instruction corresponding to the earliest submission instruction is received within the timing duration of the timer; if received, it is determined that the control submission instruction issued by the control submission queue has not timed out, and the timing duration of the timer can be updated according to the reception time of the completion instruction and the issuance time of the target submission instruction, so as to continue to detect the timeout of the control submission instruction when the control submission queue is not empty; if not received, it is determined that the control submission instruction issued by the control submission queue has timed out, and step 103 can be entered to execute the corresponding timeout processing process. Among them, the earliest submission instruction can include the uncompleted host submission instruction earliest issued in the control submission queue; the target submission instruction can include the uncompleted host submission instruction earliest issued after the earliest submission instruction in the control submission queue;

[0077] Correspondingly, when the current submission queue is the input / output submission queue, the RAID card in this step can detect at intervals of the timing duration of the timer whether the head submission instructions of each target input / output submission queue have not timed out; if there is a head submission instruction that times out, it is determined that the input / output submission instruction issued by the input / output submission queue has timed out, and step 103 can be entered to execute the corresponding timeout processing process. Among them, the target input / output submission queue is the input / output submission queue corresponding to the target hard disk, and the head submission instruction is the input / output submission instruction at the head of the target input / output submission queue.

[0078] Correspondingly, in some other embodiments, the same timeout detection method can also be adopted for Admin instructions and IO instructions. For example, both adopt the timeout detection method of timer polling, that is, using a timer corresponding to the Admin instruction, and adopting a processing method corresponding to the timer polling process of the above IO submission instruction to perform timeout detection processing of the Admin instruction by timer polling; or both can adopt the timeout detection method of variable timers, that is, using a timer corresponding to each hard disk, and respectively adopting a processing method corresponding to the process of adjusting the timing duration of the timer of the above Admin submission instruction to perform timeout detection processing of the IO submission instructions in the IO submission queue corresponding to each hard disk by variable timers.

[0079] It should be noted that for the situation where the host submission instruction issued and detected by the timer corresponding to the current submission queue in this embodiment has not timed out, this process can be ended or the timeout detection of the subsequent host submission instructions issued to the current submission queue can continue. This embodiment does not make any restrictions on this.

[0080] Step 103: Perform timeout processing on the current submission queue.

[0081] Among them, in this step, when there is a host submission instruction with a timeout in the host submission instructions issued to the current submission queue, the RAID card can automatically repair or report problems of the corresponding hard disk by performing timeout processing on the current submission queue.

[0082] Correspondingly, for the specific method of performing timeout processing on the current submission queue in this step, it can be set by the designer himself. For example, it can be implemented in the same or similar way as the processing method after detecting a host submission instruction with a timeout in the related technology. For example, it can directly report an error of the corresponding hard disk to the host device, or first perform a reset operation on the corresponding hard disk. After the reset fails or still cannot process the host submission instruction on time after the reset is successful, mark the corresponding hard disk as a bad disk and report it to the host device. This embodiment does not make any restrictions on this.

[0083] For example, in some embodiments, when the current submission queue is an input / output submission queue, in this step, the RAID card can stop receiving and issuing input / output submission instructions corresponding to the target hard disk, and add all unprocessed input / output submission instructions in the input / output submission queue corresponding to the target hard disk to the timeout queue; perform a reset operation on the target hard disk; if the reset is successful, retry the input / output submission instructions in the timeout queue to obtain a retry result; if the reset fails or the retry result is a retry failure, mark the target hard disk as a bad disk and send corresponding bad disk information to the host device.

[0084] In some other embodiments, when the current submission queue is the control submission queue, timeout processing is performed on the current submission queue, including: stopping receiving and issuing the control submission instructions corresponding to the current submission queue, and adding all unprocessed control submission instructions in the current submission queue to the control timeout queue; performing a reset operation on the timeout hard disk; where the timeout hard disk is the hard disk corresponding to the processed timeout control submission instruction; if the reset is successful, retry the control submission instructions in the control timeout queue to obtain the control retry result; if the reset fails or the control retry result is a retry failure, mark the timeout hard disk as a bad disk and send the corresponding bad disk information to the host device.

[0085] In this embodiment, by setting the timer pool in the embodiment of the present invention, a timer can be applied for the control instruction, and a timer corresponding to each hard disk can be applied for the input / output instruction. Thus, by detecting whether the issued host submission instruction times out according to the timer corresponding to the current submission queue, timeout detection can be performed on the control instruction and the input / output instruction using the corresponding timer, improving the flexibility and performance of the RAID card system.

[0086] Based on the above embodiment, in this embodiment, a variable timer is used to perform timeout detection on the Admin instruction, further accelerating the response speed to the Admin instruction. Specifically, please refer to Figure 4 , Figure 4 which is a flowchart of another method for processing the disk dropping instruction of the disk array card provided by the embodiment of the present invention. The method may include:

[0087] Step 201: Obtain the control submission instruction and put the control submission instruction into the corresponding control submission queue.

[0088] Among them, in this step, the RAID card receives the control submission instruction (such as the ASQE in Figure 5 ) issued by the host device and puts the control submission instruction into the corresponding control submission queue (such as the ASQ in Figure 5 ), such as a control submission queue corresponding to a hard disk (such as an SSD) corresponding to the control submission instruction, or a control submission queue corresponding to all hard disks. That is to say, in this embodiment, one or more control submission queues corresponding to each hard disk can be set in the RAID card; or a control submission queue can be set to store the control submission instructions corresponding to each hard disk. This embodiment does not make any restrictions on this.

[0089] Correspondingly, for the specific method of putting the control submission instruction into the corresponding control submission queue in this step, it can be set by the designer according to the practical scenario and user requirements. For example, when setting the respective control submission queues for each hard disk in the RAID card, the RAID card can determine whether the control submission queue corresponding to the current control submission instruction is empty; if it is not empty, the current host submission instruction is inserted into the end of the corresponding control submission queue, the issuance time of the current host submission instruction is recorded (such as the reception time of the RAID card or the transmission time of the host device), and the corresponding hard disk is notified; if it is empty, the current host submission instruction is inserted into the head of the corresponding control submission queue, and when all other control submission queues are empty, a timer is applied for and started from the timer pool; the issuance time of the current host submission instruction is recorded, and the corresponding hard disk is notified; among them, the timing duration of the timer is the preset timing duration.

[0090] Correspondingly, when setting a control submission queue in the RAID card, such as Figure 5 As shown, the RAID card can determine whether the ASQ is empty; if it is, a timer is applied for and started from the timer pool, the current host submission instruction (ASQE) is inserted into the head of the corresponding control submission queue, the issuance time of the current host submission instruction is recorded, and the ASQ_DB is written to notify the corresponding hard disk; if not, the current host submission instruction is inserted into the end of the corresponding control submission queue, the issuance time of the current host submission instruction is recorded, and the ASQ_DB is written to notify the corresponding hard disk.

[0091] It should be noted that in this embodiment, the RAID card can initialize and create a timer pool during system initialization for each module to use, such as timeout detection processing, etc.

[0092] Step 202: Issue the control submission instructions in the control submission queue.

[0093] Step 203: Determine whether the completion instruction corresponding to the earliest submission instruction is received within the timing duration of the timer corresponding to the control submission queue; if so, go to Step 204; if not, go to Step 205.

[0094] Among them, the earliest submission instruction includes the uncompleted host submission instruction that is the earliest issued in the control submission queue.

[0095] It can be understood that in this step, after issuing the control submission instructions in the control submission queue, the RAID card can determine whether the completion instruction corresponding to the earliest submission instruction is received within the timing duration of the timer (such as Figure 5In ACEQ), it is determined whether the issued control submission instruction has timed out; thus, when the completion instruction corresponding to the earliest submission instruction is received, it is determined that the issued control submission instruction has not timed out, and step 204 can be entered to adjust the timing duration of the timer to continue detecting subsequent issued control submission instructions; when the completion instruction corresponding to the earliest submission instruction is not received when the timing duration of the timer is reached, it is determined that the earliest issued submission instruction has timed out, and step 205 can be entered for corresponding timeout processing.

[0096] Correspondingly, as Figure 5 shown, in this step, it can be determined whether the completion instruction corresponding to the earliest submission instruction or the timer interrupt output when the timer reaches the timing duration is received; if the completion instruction corresponding to the earliest submission instruction is received, step 204 can be entered; if the timer interrupt is received, step 205 can be entered.

[0097] Step 204: Update the timing duration of the timer according to the reception time of the completion instruction and the issuance time of the target submission instruction; where the target submission instruction includes the earliest uncompleted host submission instruction issued after the earliest submission instruction in the control submission queue.

[0098] It can be understood that in this step, the RAID card can, when it is determined that the issued control submission instruction has not timed out, adjust the timing duration of the timer according to the reception time of the completion instruction corresponding to the earliest submission instruction and the issuance time of the target submission instruction to ensure the accuracy of the next timeout detection.

[0099] Correspondingly, for the specific method of the RAID card in this step to update the timing duration of the timer according to the reception time of the completion instruction and the issuance time of the target submission instruction, the designer can set it according to the practical scenario and user requirements. For example, the RAID card can calculate the difference between the reception time of the completion instruction and the issuance time of the target submission instruction to obtain the first difference (i.e., the waiting time); calculate the difference between the preset timing duration of the timer and the first difference to obtain the second difference; update the timing duration of the timer to the second difference. Correspondingly, after or at the same time of updating the timing duration of the timer, the timer can also be reset to zero for the next timeout detection, waiting for the completion instruction (ACQE) corresponding to the next earliest submission instruction or the timer interrupt.

[0100] Correspondingly, as Figure 5As shown, in this step, the RAID card can update the timing duration of the timer according to the receiving time of the completion instruction and the issuing time of the target submission instruction when the ASQ is not empty, that is, there are uncompleted host submission instructions issued in the entire control submission queue; when the ASQ is empty, that is, there are no uncompleted host submission instructions issued in the entire control submission queue, stop the timer and release the timer, and continue to wait for the arrival of a new ASQE to apply for the timer again.

[0101] For example, as Figure 6 shown in the normal scenario of the timeout detection process of the Admin instruction, apply for a timer from the timer pool during initialization. When the first Admin submission instruction (Admin SQE_1) is issued, record the issuing time T_S1 and start the timer, and set the timing duration of the timer to the preset timing duration (T). When the second Admin submission instruction (Admin SQE_2) is received at T_S2 and issued to the end of the Admin SQ queue, when the completion instruction (Admin CQE_1) corresponding to Admin SQE_1 is received at T_C1, at this time Admin SQE_1 has not timed out, and the timer duration needs to be changed to T-(T_C1-T_S2) for Admin SQE_2. When Admin SQE_3 is received at T_S3 and issued to the end of the Admin SQ queue, when Admin CQE_2 is received at T_C2, then Admin SQE_2 has not timed out, and the timer duration is changed to T=T-(T_C2-T_S3) for Admin SQE_3. When Admin CQE_3 is received at T_C3, Admin SQE_3 has not timed out, and there are no unprocessed Admin SQEs in the Admin SQ queue, so stop the timer and release the timer, and wait to receive a new Admin SQE to apply for the timer again.

[0102] Step 205: Stop receiving and issuing the control submission instructions corresponding to the target submission queue, and add all the unprocessed control submission instructions in the target submission queue to the control timeout queue.

[0103] Among them, the target submission queue is the control submission queue corresponding to the timeout hard disk. When the number of control submission queues corresponding to the timeout hard disk is 1, the target submission queue can be the control submission queue for issuing the control submission instructions for processing timeout.

[0104] Step 206: Perform a reset operation on the timeout hard disk; among them, the timeout hard disk is the hard disk corresponding to the control submission instruction for processing timeout.

[0105] Step 207: If the reset is successful, retry the control submission instructions in the control timeout queue to obtain the control retry result.

[0106] Step 208: If the reset fails or the control retry result is a retry failure, mark the timeout hard disk as a bad disk and send the corresponding bad disk information to the host device.

[0107] It can be understood that, as Figure 5 shown, in this embodiment, the RAID card can stop receiving and issuing new ASQEs corresponding to the timeout hard disk when it determines that the issued control submission instruction times out, that is, when receiving a timer interrupt, put all the unprocessed ASQEs of the timeout hard disk in the ASQ into the timeout queue (i.e., the control timeout queue), perform a reset operation on the SSD (i.e., the timeout hard disk), and after the reset is successful, retry the ASQEs in the timeout queue (such as retrying at most N times). After the retry is successful, continue to wait for receiving new ASQEs; if the reset fails or the retry fails (such as failing N times in a row), mark the SSD as a bad disk and report it to the host device.

[0108] For example, as Figure 7 shown in the timeout scenario of the timeout detection and processing of the Admin instruction, apply for a timer from the timer pool during initialization. When the first Admin submission instruction (Admin SQE_1) is issued, record the issue time T_S1 for this instruction and start the timer, and set the timing duration of the timer to the preset timing duration (T). Until T_S1 + T and Admin CQE_1 has not been received, Admin SQE_1 times out. At this time, put Admin SQE_1 into the timeout queue, stop the timer and release the timer. After waiting for the reset of the SSD to complete, reprocess Admin SQE_1. When receiving the retried Admin SQE_1 at T_S1_new, apply for and start the timer, and set the timing duration of the timer to the preset timing duration (T). When receiving Admin SQE_2 at T_S2, put it at the end of the Admin SQ queue. When receiving Admin CQE_1 at T_C1_new, the retry is successful, and change the timing duration of the timer to T - (T_C1_new - T_S2). When receiving Admin CQE_2 at T_C2, it means that Admin SQE_2 has not timed out until there are no unprocessed Admin SQEs in the Admin SQ.

[0109] In this embodiment, the embodiment of the present invention can update the timing duration of the timer according to the receiving time of the completion instruction and the issue time of the target submission instruction, can perform timeout detection on the Admin instruction at the control level by using a variable timer, can flexibly set the timeout time according to the instruction characteristics, and speeds up the response speed to the Admin instruction.

[0110] Based on the above embodiments, in this embodiment, multiple timers are used to detect the timeout of IO instructions. A separate timer is set for each hard disk, which improves the monitoring accuracy of the hard disk and enhances the stability and reliability of the system. Specifically, please refer to Figure 8 , Figure 8 which is a flowchart of another method for processing the disk drop instruction of the disk array card provided by the embodiment of the present invention. The method may include:

[0111] Step 301: Obtain an IO submission instruction.

[0112] Among them, in this step, the RAID card receives the IO submission instruction (such as the IO_SQE in Figure 9 ) sent by the host device and places the IO submission instruction into the corresponding IO submission queue (such as the IO_SQ in Figure 9 ), such as any one of the IO submission queues corresponding to the hard disk (such as SSD) corresponding to the IO submission instruction.

[0113] It should be noted that in this embodiment, the RAID card can initialize and create a timer pool during the system initialization process for each module to use, such as timeout detection processing. As shown in Figure 9 , after the timer pool is initialized and created, the hard disk can be initialized, and a timer with a preset duration (T) corresponding to the timing duration is started for each hard disk.

[0114] Step 302: Place the IO submission instruction into the corresponding IO submission queue and issue the IO submission instruction in the current IO submission queue.

[0115] Correspondingly, for the specific method of placing the IO submission instruction into the corresponding IO submission queue in this step, it can be set by the designer according to the practical scenario and user requirements. As shown in Figure 9 , when the corresponding IO submission queue is empty, the current IO submission instruction (IO_SQE) can be inserted into the head of the corresponding control submission queue, and IO_SQ_DB is written to notify the corresponding hard disk; when the corresponding IO submission queue is not empty, the current IO submission instruction is inserted into the tail of the corresponding control submission queue, and IO_SQ_DB is written to notify the corresponding hard disk.

[0116] Step 303: Detect at the timing duration interval of the timer corresponding to the current IO submission queue whether the head submission instructions of each target IO submission queue have not timed out; if not, go to Step 304.

[0117] Among them, the target IO submission queue includes all IO submission queues corresponding to the target hard disk, the target hard disk is the hard disk corresponding to the current IO submission queue, and the head submission instruction is the IO submission instruction at the head of the target IO submission queue.

[0118] It can be understood that in this step, after the RAID card issues the IO submission instructions in the current IO submission queue, it can determine whether the IO submission instructions corresponding to the target hard disk issued are timed out by detecting whether the head submission instructions of each target IO submission queue are not timed out at intervals of the timing duration of the timer corresponding to the current IO submission queue; thus, when there is an IO submission command with a timed-out head submission instruction in each target IO submission queue, it can enter step 304 for corresponding timeout processing. As Figure 9 shown, in this step, when the RAID card receives a timer interrupt sent by the timer corresponding to the target hard disk, it can determine whether the head submission instructions of each target IO submission queue are not timed out; if not, it enters step 304; if so, it ends this process or returns to step 303 to wait for the next timer interrupt to continue the timeout detection.

[0119] For example, as Figure 10 shown in the normal scenario of the timeout detection and processing of IO instructions, when initializing, a timer corresponding to the SSD (i.e., the target hard disk) is applied from the timer pool. When the SSD status is present (normal), the timer starts, and the timing duration is the preset duration (T), that is, every T, the head elements of all IO SQs (i.e., target IO submission queues) of the target hard disk are polled and detected. If the T_C (receiving time of the corresponding completion instruction) - T_S (issuing time) corresponding to each IO SQE (IO submission instruction) is less than T, then no timeout occurs, and this mechanism runs continuously until the SSD status changes to non-present.

[0120] Step 304: Stop receiving and issuing the IO submission instructions corresponding to the target hard disk, and add all the unprocessed IO submission instructions in the IO submission queue corresponding to the target hard disk to the timeout queue.

[0121] Step 305: Perform a reset operation on the target hard disk.

[0122] Step 306: If the reset is successful, retry the IO submission instructions in the timeout queue and obtain the retry result.

[0123] Step 307: If the reset fails or the retry result is a retry failure, mark the target hard disk as a bad disk and send the corresponding bad disk information to the host device.

[0124] It can be understood that, as Figure 9As shown in the figure, when the RAID card receives a timer interrupt from a certain SSD, it polls the IO SQEs at the head of each IO SQ of the SSD; determines whether it times out based on the current time and the issue time of the IO SQE at the head of the queue. If none of them time out, it continues to wait for the corresponding IO CQE or the next timer interrupt; if the head element of an IO SQ times out, it stops the SSD from receiving and issuing new IO SQEs corresponding to the SSD, puts all unprocessed SQEs in the IO SQ of the SSD into the timeout queue, and performs a reset operation on the SSD; after the reset is successful, it retries all IO SQEs in the timeout queue (e.g., retries at most N times), and continues to wait for new IO SQEs after the retry is successful. If the reset fails or the retry fails (e.g., all N retries fail), it marks the SSD as a bad disk and reports it to the host device.

[0125] For example, Figure 11 In the timeout scenario of the timeout detection and processing of the IO instruction as shown in the figure, when initializing, a timer corresponding to the SSD (i.e., the target hard disk) is applied from the timer pool. When the SSD status is present, the timer starts, and the timing duration is the preset duration (T), that is, every T, the head elements of all IO SQs of the SSD are polled and detected. Obviously, T_C1 - T_S1 < T, so the IO SQE_1 (IO SQE_1) does not time out. When the second T detection duration arrives and T_C2 has not been received yet, and the time obtained by subtracting T_S2 from the current time at this time is greater than T, then the head IO SQE_2 (IO SQE_1) has timed out at this time. All unprocessed IO SQEs in the IO SQ of the SSD are put into the timeout queue (such as IO SQE_2); and the timer can be stopped and released. After waiting for the SSD reset to be successful and the SSD status to be normal (present), a new timer is applied and started, and the IO SQE_2 in the timeout queue is retried. If IO CQE_2 is received within the T time, the retry is successful, and the subsequent process is similar to the normal scenario.

[0126] In this embodiment, the embodiment of the present invention can perform timeout detection on IO instructions by using multiple timers and set a separate timer for each hard disk by detecting whether the head submission instructions of each target IO submission queue have not timed out according to the timing duration interval of the timer corresponding to the current IO submission queue, improving the monitoring accuracy of the hard disk and enhancing the stability and reliability of the system.

[0127] Corresponding to the above method embodiment, the embodiment of the present invention also provides a device for processing the disk drop instruction of a disk array card. The device for processing the disk drop instruction of a disk array card described below can be mutually corresponding and referred to with the method for processing the disk drop instruction of a disk array card described above.

[0128] Please refer to Figure 12 , Figure 12 which is a structural block diagram of a disk array card's disk drop instruction processing device provided by an embodiment of the present invention. The device may include:

[0129] An obtaining module 10, configured to obtain a host submission instruction and place the host submission instruction into a corresponding submission queue; wherein, the host submission instruction includes a control submission instruction and an input / output submission instruction, and the submission queue includes a control submission queue and an input / output submission queue;

[0130] A timeout detection module 20, configured to issue the host submission instruction in the current submission queue and, according to a timer corresponding to the current submission queue, detect whether the issued host submission instruction times out; wherein, the current submission queue is any submission queue, and the timer is a timer corresponding to the control submission queue in a timer pool or a timer corresponding to a target hard disk, and the target hard disk is a hard disk connected to the disk array card corresponding to the current submission queue;

[0131] A timeout processing module 30, configured to perform a timeout process on the current submission queue if a timeout occurs.

[0132] On the other hand, when the current submission queue is a control submission queue, the timeout detection module 20 may include:

[0133] A control judgment sub-module, configured to judge whether a completion instruction corresponding to the earliest submission instruction is received within the timing duration of the timer; if not, send a start signal to the timeout processing module 30; wherein, the earliest submission instruction includes an uncompleted host submission instruction that is the earliest issued in the control submission queue;

[0134] A timing adjustment sub-module, configured to, if received, update the timing duration of the timer according to the reception time of the completion instruction and the issue time of the target submission instruction; wherein, the target submission instruction includes an uncompleted host submission instruction that is the earliest issued after the earliest submission instruction in the control submission queue;

[0135] On the other hand, the timing adjustment sub-module may specifically be configured to calculate a difference between the reception time of the completion instruction and the issue time of the target submission instruction to obtain a first difference; calculate a difference between a preset timing duration of the timer and the first difference to obtain a second difference; and update the timing duration of the timer to the second difference.

[0136] On the other hand, when the current submission queue is an input / output submission queue, the timeout detection module 20 may include:

[0137] An input / output judgment sub-module is used to detect at intervals of the timing duration of a timer whether the head submission instructions of each target input / output submission queue have not timed out; if there is a timed-out head submission instruction, a start signal is sent to the timeout processing module 30; wherein, the target input / output submission queue is the input / output submission queue corresponding to the target hard disk, and the head submission instruction is the input / output submission instruction at the head of the target input / output submission queue.

[0138] On the other hand, the acquisition module 10 may include:

[0139] A queue judgment sub-module is used to judge whether the control submission queue corresponding to the current host submission instruction is empty when the current host submission instruction is a control submission instruction;

[0140] A first insertion sub-module is used to, if it is not empty, insert the current host submission instruction into the tail of the corresponding control submission queue, record the sending time of the current host submission instruction, and notify the corresponding hard disk;

[0141] A second insertion sub-module is used to, if it is empty, insert the current host submission instruction into the head of the corresponding control submission queue, and when all other control submission queues are empty, apply for and start a timer from the timer pool; wherein, the timing duration of the timer is a preset timing duration;

[0142] A record notification sub-module is used to record the sending time of the current host submission instruction and notify the corresponding hard disk.

[0143] On the other hand, the device may further include:

[0144] A creation module is used to create a timer pool when the disk array card is initialized in the system; wherein, the number of timers in the timer pool is greater than the number of hard disks connected to the disk array card.

[0145] On the other hand, when the current submission queue is an input / output submission queue, the timeout processing module 30 may include:

[0146] A first queue control sub-module is used to stop receiving and sending the input / output submission instructions corresponding to the target hard disk, and add all the unprocessed input / output submission instructions in the input / output submission queue corresponding to the target hard disk to the timeout queue;

[0147] A first reset sub-module is used to perform a reset operation on the target hard disk;

[0148] A first retry sub-module is used to, if the reset is successful, retry the input / output submission instructions in the timeout queue and obtain a retry result;

[0149] The first reporting sub-module is used to mark the target hard disk as a bad disk if the reset fails or the retry result is a retry failure, and send the corresponding bad disk information to the host device.

[0150] On the other hand, when the current submission queue is a control submission queue, the timeout processing module 30 may include:

[0151] The second queue control sub-module is used to stop receiving and issuing the control submission instructions corresponding to the current submission queue, and add all the unprocessed control submission instructions in the current submission queue to the control timeout queue;

[0152] The second reset sub-module is used to perform a reset operation on the timeout hard disk; wherein, the timeout hard disk is the hard disk corresponding to the control submission instruction with a processing timeout;

[0153] The second retry sub-module is used to retry the control submission instructions in the control timeout queue if the reset is successful, and obtain the control retry result;

[0154] The second reporting sub-module is used to mark the timeout hard disk as a bad disk if the reset fails or the control retry result is a retry failure, and send the corresponding bad disk information to the host device.

[0155] In this embodiment, the embodiment of the present invention can apply for a timer for the control instruction and a timer corresponding to each hard disk for the input / output instruction by using the setting of the timer pool. Thus, the timeout detection module 20 can detect whether the host submission instruction issued is timed out according to the timer corresponding to the current submission queue, and can perform timeout detection on the control instruction and the input / output instruction by using the corresponding timer, improving the flexibility and performance of the RAID card system.

[0156] Corresponding to the above method embodiment, the embodiment of the present invention also provides a disk array card. The disk array card described below can be correspondingly referred to the disk array card's disk drop instruction processing method described above.

[0157] Please refer to Figure 13 , Figure 13 which is a schematic structural diagram of a disk array card provided by the embodiment of the present invention. The device may include:

[0158] A memory D1 for storing computer programs;

[0159] A processor D2 for implementing the steps of the disk array card's disk drop instruction processing method provided by the above method embodiment when executing the computer program.

[0160] Corresponding to the above method embodiments, an embodiment of the present invention further provides a computer program product. A computer program product described below can be correspondingly referred to with a disk array card's disk drop instruction processing method described above.

[0161] A computer program product includes computer programs / instructions. When the computer programs / instructions are executed by a processor, the steps of the disk array card's disk drop instruction processing method provided in the above method embodiments are implemented.

[0162] Corresponding to the above method embodiments, an embodiment of the present invention further provides a computer-readable storage medium. A computer-readable storage medium described below can be correspondingly referred to with a disk array card's disk drop instruction processing method described above.

[0163] A computer-readable storage medium has a computer program stored thereon. When the computer program is executed by a processor, the steps of the disk array card's disk drop instruction processing method in the above method embodiments are implemented.

[0164] Specifically, the computer-readable storage medium can be various readable storage media such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc that can store program codes.

[0165] The embodiments in the specification are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. The same or similar parts among the embodiments can be referred to each other. For the devices, disk array cards, computer program products, and computer-readable storage media disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the descriptions are relatively simple. For the relevant parts, refer to the description in the method section.

[0166] The above has introduced in detail a disk array card's disk drop instruction processing method, device, and disk array card provided by the present invention. Specific examples are used herein to elaborate on the principle and implementation manner of the present invention. The description of the above embodiments is only used to help understand the method and its core idea of the present invention. It should be noted that for those of ordinary skill in the art, without departing from the principle of the present invention, several improvements and modifications can be made to the present invention, and these improvements and modifications also fall within the protection scope of the present invention.

Claims

1. A method for processing the disk insertion instruction of a disk array card, characterized in that, Including: Obtain a host submission instruction and place the host submission instruction into a corresponding submission queue; wherein, the host submission instruction includes a control submission instruction and an input / output submission instruction, and the submission queue includes a control submission queue and an input / output submission queue; Dispatch the host submission instruction in the current submission queue, and detect whether the dispatched host submission instruction times out according to the timer corresponding to the current submission queue; wherein, the current submission queue is any one of the submission queues, and the timer is a timer corresponding to the control submission queue in the timer pool or a timer corresponding to a target hard disk, and the target hard disk is a hard disk connected to a disk array card corresponding to the current submission queue; If so, perform timeout processing on the current submission queue.

2. The method for processing the disk drop instruction of the disk array card according to claim 1, wherein, When the current submission queue is the control submission queue, detecting whether the dispatched host submission instruction times out according to the timer corresponding to the current submission queue includes: Determine whether a completion instruction corresponding to the earliest submission instruction is received within the timing duration of the timer; wherein, the earliest submission instruction includes an uncompleted host submission instruction that is earliest dispatched in the control submission queue; If received, update the timing duration of the timer according to the reception time of the completion instruction and the dispatch time of the target submission instruction; wherein, the target submission instruction includes an uncompleted host submission instruction that is earliest dispatched after the earliest submission instruction in the control submission queue; If not received, execute the step of performing timeout processing on the current submission queue.

3. The method for processing the disk drop instruction of the disk array card according to claim 2, wherein, The updating the timing duration of the timer according to the reception time of the completion instruction and the dispatch time of the target submission instruction includes: Calculate the difference between the reception time of the completion instruction and the dispatch time of the target submission instruction to obtain a first difference; Calculate the difference between the preset timing duration of the timer and the first difference to obtain a second difference; Update the timing duration of the timer to the second difference.

4. The method for processing the disk dropping instruction of the disk array card according to claim 1, wherein, When the current submission queue is the input / output submission queue, detecting whether the dispatched host submission instruction times out according to the timer corresponding to the current submission queue includes: Detect at intervals of the timing duration of the timer whether the head submission instructions of all target input / output submission queues have not timed out; wherein, the target input / output submission queue is the input / output submission queue corresponding to the target hard disk, and the head submission instruction is the input / output submission instruction at the head of the target input / output submission queue; If there is a head submission instruction that times out, execute the step of performing timeout processing on the current submission queue.

5. The method for processing the disk drop instruction of the disk array card according to claim 1, wherein Placing the host submission instruction into the corresponding submission queue includes: When the current host submission instruction is the control submission instruction, determine whether the control submission queue corresponding to the current host submission instruction is empty; If not empty, insert the current host submission instruction into the tail of the corresponding control submission queue, record the dispatch time of the current host submission instruction, and notify the corresponding hard disk; If it is empty, insert the current host submission instruction into the head of the corresponding control submission queue, and when all other control submission queues are empty, apply for and start a timer from the timer pool; wherein, the timing duration of the timer is a preset timing duration; Record the sending time of the current host submission instruction and notify the corresponding hard disk.

6. The method for processing the disk dropping instruction of the disk array card according to claim 1, wherein It further includes: When the disk array card is initialized in the system, create the timer pool; wherein, the number of timers in the timer pool is greater than the number of hard disks connected to the disk array card.

7. The method for processing the disk dropping instruction of the disk array card according to any one of claims 1 to 6, characterized in that, When the current submission queue is the input / output submission queue, perform timeout processing on the current submission queue, including: Stop receiving and sending the input / output submission instructions corresponding to the target hard disk, and add all the unprocessed input / output submission instructions in the input / output submission queue corresponding to the target hard disk to the timeout queue; Perform a reset operation on the target hard disk; If the reset is successful, retry the input / output submission instructions in the timeout queue and obtain the retry result; If the reset fails or the retry result is a retry failure, mark the target hard disk as a bad disk and send the corresponding bad disk information to the host device.

8. The method for processing the disk dropping instruction of the disk array card according to any one of claims 1 to 6, characterized in that, When the current submission queue is the control submission queue, perform timeout processing on the current submission queue, including: Stop receiving and sending the control submission instructions corresponding to the current submission queue, and add all the unprocessed control submission instructions in the current submission queue to the control timeout queue; Perform a reset operation on the timeout hard disk; wherein, the timeout hard disk is the hard disk corresponding to the control submission instruction with timeout processing; If the reset is successful, retry the control submission instructions in the control timeout queue and obtain the control retry result; If the reset fails or the control retry result is a retry failure, mark the timeout hard disk as a bad disk and send the corresponding bad disk information to the host device.

9. A device for processing the disk dropping instruction of a disk array card, characterized in that, It includes: An acquisition module, configured to acquire a host submission instruction and put the host submission instruction into the corresponding submission queue; wherein, the host submission instruction includes a control submission instruction and an input / output submission instruction, and the submission queue includes a control submission queue and an input / output submission queue; A timeout detection module, configured to send the host submission instruction in the current submission queue and detect whether the sent host submission instruction times out according to the timer corresponding to the current submission queue; wherein, the current submission queue is any one of the submission queues, the timer is a timer corresponding to the control submission queue in the timer pool or a timer corresponding to the target hard disk, and the target hard disk is the hard disk connected to the disk array card corresponding to the current submission queue; A timeout processing module, configured to perform timeout processing on the current submission queue if it times out.

10. A disk array card, characterized in that, It includes: A memory, configured to store a computer program; A processor, configured to implement the steps of the disk array card disk dropping instruction processing method according to any one of claims 1 to 8 when executing the computer program.