IP Library › Granted Patent US 10,175,888
Granted Patent B2
US 10,175,888 · App. 15/291,440 · Granted Jan 8, 2019

Performance-balanced heterogeneous raid

Inventors: John P. Agombar (Winchester, GB); Ian Boden (Eastleigh, GB); Alastair Cooper (Winchester, GB); Gordon D. Hutchison (Eastleigh, GB)
Assignee: International Business Machines Corporation
G06F3/061G06F3/0631G06F3/0632G06F3/0689
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,175,888
App. No.
15/291,440
Granted
Jan 8, 2019
Kind
B2
Abstract

A method for balancing performance in a redundant array of independent disks (RAID) made up of heterogeneous storage drives is disclosed. In one embodiment, such a method includes implementing a RAID on a set of storage drives. The set of storage drives includes a lower-performing storage drive that underperforms other storage drives in the set. In order to balance performance in the RAID, the method stripes data across the set of storage drives such that the lower-performing storage drive participates in only a selected percentage of strides. In certain embodiments, this percentage is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set. A corresponding system and computer program product are also disclosed.

Claims (28)

1. A method for balancing performance in a redundant array of independent disks (RAID) made up of heterogeneous storage drives, the method comprising:

implementing a RAID on a set of storage drives, the set of storage drives comprising a lower-performing storage drive that underperforms other storage drives in the set; and

striping data across the set of storage drives such that the lower-performing storage drive participates in a smaller percentage of strides than the other storage drives in the set, wherein each stride comprises multiple strips stored on different storage drives of the set.

2. The method of claim 1 , wherein the percentage is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set.

3. The method of claim 1 , further comprising, for strides in which the lower-performing storage drive does not participate, storing data associated with the lower-performing storage drive in a distributed spare implemented on other storage drives in the set.

4. The method of claim 1 , further comprising, for each stride, providing a bitmap indicating which storage drives participate in the stride.

5. The method of claim 4 , wherein the bitmap is shared by multiple strides.

6. The method of claim 1 , wherein the lower-performing storage drive does not participate in every N th stride, where N is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set.

7. The method of claim 1 , wherein the lower-performing storage drive has at least one of: reduced I/O performance compared to other storage drives in the set; reduced RPM speed compared to other storage drives in the set; and less storage space than other storage drives in the set.

8. A computer program product for balancing performance in a redundant array of independent disks (RAID) made up of heterogeneous storage drives, the computer program product comprising a computer-readable medium having computer-usable program code embodied therein, the computer-usable program code configured to perform the following when executed by at least one processor:

implement a RAID on a set of storage drives, the set of storage drives comprising a lower-performing storage drive that underperforms other storage drives in the set; and

stripe data across the set of storage drives such that the lower-performing storage drive participates in a smaller percentage of strides than the other storage drives in the set, wherein each stride comprises multiple strips stored on different storage drives of the set.

9. The computer program product of claim 8 , wherein the percentage is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set.

10. The computer program product of claim 8 , wherein the computer-usable program code is further configured to, for strides in which the lower-performing storage drive does not participate, store data associated with the lower-performing storage drive in a distributed spare implemented on other storage drives in the set.

11. The computer program product of claim 8 , wherein the computer-usable program code is further configured to, for each stride, provide a bitmap indicating which storage drives participate in the stride.

12. The computer program product of claim 11 , wherein the bitmap is shared by multiple strides.

13. The computer program product of claim 8 , wherein the lower-performing storage drive does not participate in every Nth stride, where N is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set.

14. The computer program product of claim 8 , wherein the lower-performing storage drive has at least one of: reduced I/O performance compared to other storage drives in the set; reduced RPM speed compared to other storage drives in the set; and less storage space than other storage drives in the set.

15. A system for balancing performance in a redundant array of independent disks (RAID) made up of heterogeneous storage drives, the system comprising:

at least one processor;

at least one memory device coupled to the at least one processor and storing instructions for execution on the at least one processor, the instructions causing the at least one processor to:

implement a RAID on a set of storage drives, the set of storage drives comprising a lower-performing storage drive that underperforms other storage drives in the set; and

stripe data across the set of storage drives such that the lower-performing storage drive participates in a smaller percentage of strides than the other storage drives in the set, wherein each stride comprises multiple strips stored on different storage drives of the set.

16. The system of claim 15 , wherein the percentage is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set.

17. The system of claim 15 , wherein the instructions further cause the at least one processor to, for strides in which the lower-performing storage drive does not participate, store data associated with the lower-performing storage drive in a distributed spare implemented on other storage drives in the set.

18. The system of claim 15 , wherein the instructions further cause the at least one processor to, for each stride, provide a bitmap indicating which storage drives participate in the stride.

19. The system of claim 15 , wherein the lower-performing storage drive does not participate in every Nth stride, where N is selected based on an amount the lower-performing storage drive underperforms other storage drives in the set.

20. The system of claim 15 , wherein the lower-performing storage drive has at least one of: reduced I/O performance compared to other storage drives in the set; reduced RPM speed compared to other storage drives in the set; and less storage space than other storage drives in the set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2016
From: AGOMBAR, JOHN P.; BODEN, IAN; COOPER, ALASTAIR; HUTCHISON, GORDON D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039997/0449 →
Continuity (1)
Related Publication 20180101301A1 · Apr 12, 2018