IP Library Granted Patent US 10,289,500
Granted Patent B2
US 10,289,500 · App. 15/398,651 · Granted May 14, 2019

Accelerated data recovery in a storage system

Inventor: Jonmichael P. Hands (Folsom, CA)
Assignee: Intel Corporation
G06F11/1662G06F11/2082G06F13/42G06F11/2094G06F2201/805G06F2201/82G06F2213/0036
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,289,500
App. No.
15/398,651
Granted
May 14, 2019
Kind
B2
Abstract

One embodiment provides a storage system. The storage system includes storage system control logic to identify at least one target storage device in response to detection of a failed storage device, request a state of a target device logical block address (LBA) from each of the at least one target storage device, and read data associated with a mapped device LBA from each target storage device and write the data to at least one replacement storage device. Another embodiment provides a storage device. The storage device includes device control logic to determine a state of a target device logical block address (LBA) in response to a request; a host interface to provide a reply to the request, the reply including a state indicator related to the state of the target device LBA; a map table including a plurality of device LBAs and respective state indicators; and non-volatile memory (NVM) including data related to at least one mapped LBA.

Claims (58)

1. One or more non-transitory computer-readable storage media having instructions stored thereon that when executed by at least one processor to cause the at least one processor of a first computing device to perform operations, comprising:

detect a failed storage device in a plurality of storage devices;

identify at least one target storage device of the plurality of storage devices;

identify mapped logical block addresses (LBAs) of the at least one target storage device, the at least one target storage device to have associated mapped and unmapped LBAs; and

responsive to the detection of the failed storage device:

without reading data associated with the unmapped LBAs, read data associated with the mapped LBAs from the at least one target storage device; and

without writing data associated with the unmapped LBAs, write the data associated with the mapped LBAs to at least one replacement storage device in the plurality of storage devices;

wherein at least one of the unmapped LBAs is an LBA that has not been written to or has been subject to an UNMAP command and has not been written to since the UNMAP command.

2. The one or more non-transitory computer-readable storage media of claim 1 , wherein at least one of the mapped LBAs is an LBA that has been subject to a write operation and has not been subject to an UNMAP command since the write operation.

3. The one or more non-transitory computer-readable storage media of claim 1 , wherein the UNMAP command is a TRIM command.

4. The one or more non-transitory computer-readable storage media of claim 1 , wherein the UNMAP command is a Small Computer System Interface (SCSI) command.

5. The one or more non-transitory computer-readable storage media of claim 1 , wherein the at least one target storage device is at least one solid state drive (SSD).

6. The one or more non-transitory computer-readable storage media of claim 1 , wherein the instructions, when executed by the at least one processor of the first computing device, result in additional operations comprising:

request an UNMAP command from a computing device to be provided to at least one target storage device.

7. The one or more non-transitory computer-readable storage media of claim 1 , wherein the instructions, when executed by the at least one processor of the first computing device, result in additional operations comprising:

identify a state of at least one LBA in the at least one target storage device, said state being mapped or unmapped.

8. The one or more non-transitory computer-readable storage media of claim 7 , wherein the instructions, when executed by the at least one processor of the first computing device, result in additional operations comprising:

identify a state of at least one target storage device LBA in a range of target storage device LBAs, said state being mapped or unmapped.

9. The one or more non-transitory computer-readable storage media of claim 8 , wherein the instructions, when executed by the at least one processor of the first computing device, result in additional operations comprising:

cause device control logic of the at least one storage device to provide a listing of mapped LBAs in at least one target storage device.

10. The one or more non-transitory computer-readable storage media of claim 9 , wherein the device control logic is further to unmap a device LBA in response to an UNMAP command.

11. A device, comprising:

storage device interface circuitry to communicate with a plurality of storage devices; and

storage system control logic to:

detect a failed storage device in the plurality of storage devices;

identify at least one target storage device of the plurality of storage devices;

identify mapped logical block addresses (LBAs) of the at least one target storage device, the at least one target storage device to have associated mapped and unmapped LBAs; and

responsive to the detection of the failed storage device:

without reading data associated with the unmapped LBAs, read data associated with the mapped LBAs from the at least one target storage device; and

without writing data associated with the unmapped LBAs, write the data associated with the mapped LBAs to at least one replacement storage device;

wherein at least one of the unmapped LBAs is an LBA that has not been written to or has been subject to an UNMAP command and has not been written to since the UNMAP command.

12. The device of claim 11 , wherein at least one of the mapped LBAs is an LBA that has been subject to a write operation and has not been subject to an UNMAP command since the write operation.

13. The device of claim 11 , wherein the UNMAP command is a TRIM command.

14. The device of claim 11 , wherein the UNMAP command is a Small Computer System Interface (SCSI) command.

15. The device of claim 11 , wherein the at least one target storage device is at least one solid state drive (SSD).

16. The device of claim 11 , wherein the storage system control logic is further to request an UNMAP command from a computing device to be provided to at least one target storage device.

17. The device of claim 11 , wherein the storage system control logic is further to identify a state of at least one LBA in the at least one target storage device, said state being mapped or unmapped.

18. The device of claim 17 , wherein the storage system control logic is further to identify a state of at least one target storage device LBA in a range of target storage device LBAs, said state being mapped or unmapped.

19. The device of claim 18 , wherein the storage system control logic is further to cause device control logic of at least one storage device to provide a listing of mapped LBAs in at least one target storage device.

20. The device of claim 19 , wherein the storage system control logic is further to unmap a device LBA in response to an UNMAP command.

21. A system, comprising:

a storage system, including:

a plurality of storage devices; and

storage system control logic to:

detect a failed storage device in the plurality of storage devices;

identify at least one target storage device of the plurality of storage devices;

identify mapped logical block addresses (LBAs) of the at least one target storage device, the at least one target storage device to have associated mapped and unmapped LBAs; and

responsive to the detection of the failed storage device:

without reading data associated with the unmapped LBAs, read data associated with the mapped LBAs from the at least one target storage device; and

without writing data associated with the unmapped LBAs, write the data associated with the mapped LBAs to at least one replacement storage device;

wherein at least one of the unmapped LBAs is an LBA that has not been written to or has been subject to an UNMAP command and has not been written to since the UNMAP command; and

a computing device, including:

a processor; and

chipset circuitry to couple the processor to the storage system.

22. The system of claim 21 , further comprising a display, wherein the chipset circuitry is further to couple the processor to the display.

23. The system of claim 21 , wherein the storage system control logic is further to identify a state of at least one LBA in the at least one target storage device, said state being mapped or unmapped.

24. The system of claim 23 , wherein the storage system control logic is further to identify a state of at least one target storage device LBA in a range of target storage device LBAs, said state being mapped or unmapped.

25. The system of claim 24 , wherein the storage system control logic is further to cause device control logic of at least one storage device to provide a listing of mapped LBAs in at least one target storage device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062702/0001 →
Continuity (2)
Continuation 14568417 · Dec 12, 2014
Related Publication 20170212814A1 · Jul 27, 2017
Cited By (2)
US 12,608,277 US 12,619,524