Storage system with prioritized raid rebuild
US-2021157695-A1 · May 27, 2021 · US
US11853618B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11853618-B2 |
| Application number | US-202117528551-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 17, 2021 |
| Priority date | Apr 22, 2021 |
| Publication date | Dec 26, 2023 |
| Grant date | Dec 26, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques for RAID reconstruction involve: determining, from a task list, multiple stripes in a RAID that are involved in a to-be-processed task within a current task window, the task list including an external I/O request task and an internal reconstruction I/O request task, and each stripe including data on a first number of data disks and data on a second number of parity disks; reading data from the multiple stripes into a read buffer; and if data of the first number of data disks in a stripe among the multiple stripes has already been read into the read buffer, performing the internal reconstruction I/O request task on the stripe. Such a technique helps to increase the processing power and efficiency of the data storage system to recover the reconstruction of RAID stripes while coping with external I/O requests.
Opening claim text (preview).
The invention claimed is: 1. A method for redundant array of independent disks (RAID) reconstruction, comprising: determining, from a task list, multiple stripes in a RAID that are involved in a to-be-processed task within a current task window, the task list including an external I/O request task and an internal reconstruction I/O request task, and each stripe including data on a first number of data disks and data on a second number of parity disks; reading data from the multiple stripes into a read buffer; and if data of the first number of data disks in a stripe among the multiple stripes has already been read into the read buffer, performing the internal reconstruction I/O request task on the stripe; wherein after the task list is initialized, to-be-processed tasks within task windows in the task list are executed in sequence; and wherein the method further comprises: destroying the task list if to-be-processed tasks within all task windows in the task list have been executed and the internal reconstruction I/O request task for the multiple stripes has been executed. 2. The method according to claim 1 , wherein data in the multiple stripes is read asynchronously into the read buffer, and wherein performing the internal reconstruction I/O request task on the stripe comprises: writing data in the stripe that is related to a failed disk to a write buffer; and asynchronously flushing data in the write buffer that is related to the failed disk to a hot spare disk. 3. The method according to claim 2 , further comprising: after the data in the stripe that is related to the failed disk has all been flushed to the hot spare disk, updating a relevant bit for the stripe in a reconstruction bitmap, and releasing all data of the stripe from the read buffer and the write buffer. 4. The method according to claim 1 , further comprising: if the to-be-processed tasks within the task windows in the task list have not all been executed, in response to receiving a new external I/O request task, inserting the new external I/O request task before the internal reconstruction I/O request task. 5. The method according to claim 1 , wherein the to-be-processed task within the current task window is determined by calculating heat values of the multiple stripes in the RAID. 6. The method according to claim 1 , further comprising: receiving an external I/O request during RAID reconstruction, and inserting the external I/O request before the task windows to prioritize processing of the external I/O request over reconstruction I/O requests. 7. An electronic device, comprising: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, wherein the instructions, when executed by the at least one processing unit, cause the electronic device to perform actions comprising: determining, from a task list, multiple stripes in a redundant array of independent disks (RAID) that are involved in a to-be-processed task within a current task window, the task list including an external I/O request task and an internal reconstruction I/O request task, and each stripe including data on a first number of data disks and data on a second number of parity disks; reading data from the multiple stripes into a read buffer; and if data of the first number of data disks in a stripe among the multiple stripes has already been read into the read buffer, performing the internal reconstruction I/O request task on the stripe; wherein after the task list is initialized, to-be-processed tasks within task windows in the task list are executed in sequence; and wherein the actions further comprise: destroying the task list if to-be-processed tasks within all task windows in the task list have been executed and the internal reconstruction I/O request task for the multiple stripes has been executed. 8. The electronic device according to claim 7 , wherein data in the multiple stripes is read asynchronously into the read buffer, and wherein performing the internal reconstruction I/O request task on the stripe comprises: writing data in the stripe that is related to a failed disk to a write buffer; and asynchronously flushing data in the write buffer that is related to the failed disk to a hot spare disk. 9. The electronic device according to claim 8 , wherein the actions further comprise: after the data in the stripe that is related to the failed disk has all been flushed to the hot spare disk, updating a relevant bit for the stripe in a reconstruction bitmap, and releasing all data of the stripe from the read buffer and the write buffer. 10. The electronic device according to claim 7 , wherein the actions further comprise: if the to-be-processed tasks within the task windows in the task list have not all been executed, in response to receiving a new external I/O request task, inserting the new external I/O request task before the internal reconstruction I/O request task. 11. The electronic device according to claim 7 , wherein the to-be-processed task within the current task window is determined by calculating heat values of the multiple stripes in the RAID. 12. The electronic device according to claim 7 , wherein the actions further comprise: receiving an external I/O request during RAID reconstruction, and inserting the external I/O request before the task windows to prioritize processing of the external I/O request over reconstruction I/O requests. 13. A computer program product having a non-transitory computer readable medium which stores a set of instructions to perform redundant array of independent disks (RAID) reconstruction; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of: determining, from a task list, multiple stripes in a RAID that are involved in a to-be-processed task within a current task window, the task list including an external I/O request task and an internal reconstruction I/O request task, and each stripe including data on a first number of data disks and data on a second number of parity disks; reading data from the multiple stripes into a read buffer; and if data of the first number of data disks in a stripe among the multiple stripes has already been read into the read buffer, performing the internal reconstruction I/O request task on the stripe; wherein after the task list is initialized, to-be-processed tasks within task windows in the task list are executed in sequence; and wherein the method further comprises: destroying the task list if to-be-processed tasks within all task windows in the task list have been executed and the internal reconstruction I/O request task for the multiple stripes has been executed. 14. The computer program product according to claim 13 , wherein data in the multiple stripes is read asynchronously into the read buffer, and wherein performing the internal reconstruction I/O request task on the stripe comprises: writing data in the stripe that is related to a failed disk to a write buffer; and asynchronously flushing data in the write buffer that is related to the failed disk to a hot spare disk. 15. The computer program product according to claim 14 , wherein the method further comprises: after the data in the stripe that is related to the failed disk has all been flushed to the hot spare disk, updating a relevant bit for the stripe in a reconstruction bitmap, and releasing all data of the stripe from the read buffer and the write buffer. 16. The compu
Disk arrays, e.g. RAID, JBOD · CPC title
in relation to throughput · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Data buffering arrangements · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.