IP Library Granted Patent US 10,642,690
Granted Patent B1
US 10,642,690 · App. 15/848,330 · Granted May 5, 2020

Policy-driven raid rebuild

Inventors: Lei Tian (Sunnyvale, CA); Shobhit Dayal (San Francisco, CA); Amit Gud (San Jose, CA)
Assignee: Tintri by DDN, Inc.
G06F11/1092G06F3/061G06F3/0619G06F3/0689G06F11/1096
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,642,690
App. No.
15/848,330
Granted
May 5, 2020
Kind
B1
Abstract

A system for policy-driven RAID rebuild includes an interface to a group of devices each having stripe units. At least one of the devices is a spare device available to be used in the event of a failure of a device in the group of devices. The system further includes a processor coupled to the interface and configured to determine, based at least in part on an ordering criteria, an order in which to reconstruct stripe units to rebuild a failed device in the group of devices. The processor is further configured to rebuild the failed device including by reconstructing stripe units in the determined order using the spare device to overwrite stripe units as needed.

Claims (39)

1. A system comprising:

an interface to a group of devices each having stripe units, wherein at least one of the devices is a spare device available to be used in the event of a failure of a device in the group of devices, the group of devices services a Log-structured File System (LFS), and an ordering criteria includes a quantity of valid data and probability of overwrite of in-use segments; and

a processor coupled to the interface, the processor configured to:

determine, based at least in part on the ordering criteria, an order in which to reconstruct stripe units to rebuild a failed device in the group of devices; and

rebuild the failed device including by reconstructing stripe units in the determined order using the spare device to overwrite stripe units as needed.

2. The system of claim 1 , wherein the group of devices comprise a redundant array of independent disks (RAID) group.

3. The system of claim 1 , wherein the group of devices stores data according to one of RAID 5 protocol and RAID 6 protocol.

4. The system of claim 1 , wherein the ordering criteria includes workload dynamics in the group of devices.

5. The system of claim 1 , wherein the order criteria includes a performance specification indicated by a user.

6. The system of claim 1 , wherein the order criteria includes a weighted combination of a plurality of policies.

7. The system of claim 6 , wherein the weighted combination of a plurality of policies is updated dynamically.

8. The system of claim 6 , wherein the plurality of policies includes at least one of: rebuild time, user performance, and data availability.

9. The system of claim 1 , wherein the ordering criteria includes a frequency of access of data associated with a location in the group of devices.

10. The system of claim 1 , wherein the ordering criteria includes a frequency of access of a stripe unit.

11. The system of claim 1 , wherein the determination of an order includes scoring stripe units with respect to the ordering criteria.

12. The system of claim 11 , wherein the scoring includes combining at least one of a rebuild time score, a user performance score, and a data availability score.

13. The system of claim 1 , wherein the determined order is based at least in part on a weighted combination of scores.

14. A system comprising:

an interface to a group of devices each having stripe units, wherein at least one of the devices is a spare device available to be used in the event of a failure of a device in the group of devices;

a processor coupled to the interface, the processor configured to:

determine, based at least in part on an ordering criteria, an order in which to reconstruct stripe units to rebuild a failed device in the group of devices; and

rebuild the failed device including by reconstructing stripe units in the determined order using the spare device to overwrite stripe units as needed; and

a cache adapted to store at least one of: reads and writes, and the ordering criteria includes importance of data and recoverability of data based at least in part on content of the cache.

15. The system of claim 14 , wherein the importance of data is based at least in part on filesystem metadata.

16. The system of claim 14 , wherein the importance of data is based at least in part on a type of data.

17. A system comprising:

an interface to a group of devices each having stripe units, wherein at least one of the devices is a spare device available to be used in the event of a failure of a device in the group of devices; and

a processor coupled to the interface, the processor configured to:

determine, based at least in part on an ordering criteria, an order in which to reconstruct stripe units to rebuild a failed device in the group of devices; and

rebuild the failed device including by reconstructing stripe units in the determined order using the spare device to overwrite stripe units as needed, wherein a rebuild locality score is based at least in part on likelihood of overwriting a stripe unit as indicated by a ranking of an in-use segment in a LFS in-use segment list.

18. The system of claim 17 , wherein the rebuild locality score corresponds to a locality of data to be rebuilt and indicates how long it takes to rebuild a stripe unit at the corresponding locality.

19. The system of claim 17 , wherein the rebuild locality score prioritizes those stripe units closer to a stripe currently being rebuilt over those strip units farther away from a stripe currently being rebuilt.

20. The system of claim 17 , wherein the rebuild locality score prioritizes those stripe units with a lower likelihood of overwriting for rebuilding earlier over those strip units with a higher likelihood of overwriting.

21. A method comprising:

determining, based at least in part on an ordering criteria including a quantity of valid data and probability of overwrite of in-use segments, an order in which to reconstruct stripe units to rebuild a failed device in a group of devices, wherein the group of devices each has stripe units, at least one of the devices is a spare device available to be used in the event of a failure of a device in the group of devices, and the group of devices services a Log-structured File System (LFS); and

rebuilding the failed device including by reconstructing stripe units in the determined order using the spare device to overwrite stripe units as needed.

22. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

determining, based at least in part on an ordering criteria including a quantity of valid data and probability of overwrite of in-use segments, an order in which to reconstruct stripe units to rebuild a failed device in a group of devices, wherein the group of devices each has stripe units, at least one of the devices in the group of devices is a spare device available to be used in the event of a failure of a device in the group of devices, and the group of devices services a Log-structured File System (LFS); and

rebuilding the failed device including by reconstructing stripe units in the determined order using the spare device to overwrite stripe units as needed.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2018
From: TIAN, LEI; DAYAL, SHOBHIT; GUD, AMIT
To: TINTRI INC.
Reel/Frame 045307/0223 →
Continuity (1)
Provisional Application 62436994 · Dec 20, 2016