IP Library › Granted Patent US 10,942,808
Granted Patent B2
US 10,942,808 · App. 16/222,235 · Granted Mar 9, 2021

Adaptive data and parity placement using compression ratios of storage devices

Inventors: Roman Alexander Pletka (Uster, CH); Sasa Tomic (Kilchberg, CH); Timothy Fisher (Cypress, TX); Nikolaos Papandreou (Thalwil, CH); Nikolas Ioannou (Zurich, CH); Aaron Fry (Richmond, TX)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/1096G06F3/0619G06F3/0644G06F3/0653G06F3/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,942,808
App. No.
16/222,235
Granted
Mar 9, 2021
Kind
B2
Abstract

Embodiments for adaptive placement of parity information within Redundant Array of Independent Disks (RAID) stripes in a computer storage environment. A RAID controller periodically collects a physical capacity usage of each of a plurality of storage devices within the RAID. The RAID controller determines a placement of data and the parity information within at least one of the plurality of storage devices according to at least one of a plurality of factors associated with the physical capacity usage. The RAID controller writes the data and the parity information to the at least one of the plurality of storage devices according to the determined placement.

Claims (65)

1. A method for adaptive placement of parity information within a Redundant Array of Independent Disks (RAID), by a RAID controller, comprising:

periodically collecting, by the RAID controller, a physical capacity usage of each of a plurality of storage devices within the RAID;

determining, by the RAID controller, a placement of data and the parity information within at least one of the plurality of storage devices according to at least one of a plurality of factors associated with the physical capacity usage; and

writing the data and the parity information by the RAID controller to the at least one of the plurality of storage devices according to the determined placement.

2. The method of claim 1 , wherein the plurality of factors are selected from a list comprising the physical capacity usage, a current parity location of each stripe of a plurality of stripes within the RAID, and a current data location of each stripe.

3. The method of claim 2 , further including maintaining, by the RAID controller, a first table recording the physical capacity usage of each of the plurality of storage devices and a second table indicating the current parity location of each stripe; wherein the RAID controller references the first table and the second table when determining the placement of the data and the parity information.

4. The method of claim 3 , further including maintaining, by the RAID controller, a third table indicating the current data location of each stripe; wherein the RAID controller references the first table and the third table when determining the placement of the data and the parity information.

5. The method of claim 2 , further including, to reduce a stored amount of metadata associated with the parity information, performing:

increasing a granularity of a size of each stripe to a predefined size; and

using at least one of a plurality of parity placement schemes which implicitly define the placement of the parity information on respective storage devices of the plurality of storage devices according to a weighted bias.

6. The method of claim 5 , wherein:

the at least one of the plurality of parity placement schemes comprises storing the parity information using a round-robin model within each of the plurality of storage devices according to a predetermined compression ratio of the respective storage devices of the plurality of storage devices; and

the at least one of the parity placement schemes is globally applied to the RAID or selectively applied to particular ranges of logical address space; and further including:

determining, by the RAID controller, to switch from a first scheme to a second scheme of the plurality of parity placement schemes according to the predetermined compression ration of the respective storage devices of the plurality of storage devices, wherein, subsequent to switching from the first scheme and the second scheme of the plurality of parity placement schemes, the second scheme of the plurality of parity placement schemes is applied to writes on unmapped storage space only.

7. The method of claim 1 , wherein:

the placement of the data and the parity information is determined by the RAID controller upon receiving a write operation; or

the placement of the data and the parity information is determined by the RAID controller upon performing a RAID rebuild operation; wherein the RAID includes a distributed spare.

8. The method of claim 7 , further including:

pursuant to the RAID rebuild operation, withholding the parity information from being stored on certain storage devices of the plurality of storage devices until the physical capacity usage is rebalanced among the plurality of storage devices; and

updating the data and the parity information of existing data within respective storage devices of the plurality of storage devices as a background operation using an array-level read scrubber.

9. A system for adaptive placement of parity information within a Redundant Array of Independent Disks (RAID), the system comprising:

a RAID controller executing instructions stored in a memory, wherein the RAID controller:

periodically collects a physical capacity usage of each of a plurality of storage devices within the RAID;

determines a placement of data and the parity information within at least one of the plurality of storage devices according to at least one of a plurality of factors associated with the physical capacity usage; and

writes the data and the parity information to the at least one of the plurality of storage devices according to the determined placement.

10. The system of claim 9 , wherein the plurality of factors are selected from a list comprising the physical capacity usage, a current parity location of each stripe of a plurality of stripes within the RAID, and a current data location of each stripe.

11. The system of claim 10 , wherein the RAID controller maintains a first table recording the physical capacity usage of each of the plurality of storage devices and a second table indicating the current parity location of each stripe; wherein the RAID controller references the first table and the second table when determining the placement of the data and the parity information.

12. The system of claim 11 , wherein the RAID controller maintains a third table indicating the current data location of each stripe; wherein the RAID controller references the first table and the third table when determining the placement of the data and the parity information.

13. The system of claim 10 , wherein the RAID controller, to reduce a stored amount of metadata associated with the parity information, performs:

increasing a granularity of a size of each stripe to a predefined size; and

using at least one of a plurality of parity placement schemes which implicitly define the placement of the parity information on respective storage devices of the plurality of storage devices according to a weighted bias.

14. The system of claim 13 , wherein:

the at least one of the plurality of parity placement schemes comprises storing the parity information using a round-robin model within each of the plurality of storage devices according to a predetermined compression ratio of the respective storage devices of the plurality of storage devices;

the at least one of the parity placement schemes is globally applied to the RAID or selectively applied to particular ranges of logical address space; and wherein the RAID controller;

determines to switch from a first scheme to a second scheme of the plurality of parity placement schemes according to the predetermined compression ration of the respective storage devices of the plurality of storage devices, wherein, subsequent to switching from the first scheme and the second scheme of the plurality of parity placement schemes, the second scheme of the plurality of parity placement schemes is applied to writes on unmapped storage space only.

15. The system of claim 10 , wherein:

the placement of the data and the parity information is determined by the RAID controller upon receiving a write operation; or

the placement of the data and the parity information is determined by the RAID controller upon performing a RAID rebuild operation; wherein the RAID includes a distributed spare.

16. The system of claim 15 , wherein the RAID controller:

pursuant to the RAID rebuild operation, withholds the parity information from being stored on certain storage devices of the plurality of storage devices until the physical capacity usage is rebalanced among the plurality of storage devices; and

updates the data and the parity information of existing data within respective storage devices of the plurality of storage devices as a background operation using an array-level read scrubber.

17. A computer program product for adaptive placement of parity information within a Redundant Array of Independent Disks (RAID), by a RAID controller, the computer program product embodied on a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

an executable portion that periodically collects, by the RAID controller, a physical capacity usage of each of a plurality of storage devices within the RAID;

an executable portion that determines, by the RAID controller, a placement of data and the parity information within at least one of the plurality of storage devices according to at least one of a plurality of factors associated with the physical capacity usage; and

an executable portion that writes the data and the parity information by the RAID controller to the at least one of the plurality of storage devices according to the determined placement.

18. The computer program product of claim 17 , wherein the plurality of factors are selected from a list comprising the physical capacity usage, a current parity location of each stripe of a plurality of stripes within the RAID, and a current data location of each stripe.

19. The computer program product of claim 18 , further including an executable portion that maintains, by the RAID controller, a first table recording the physical capacity usage of each of the plurality of storage devices and a second table indicating the current parity location of each stripe; wherein the RAID controller references the first table and the second table when determining the placement of the data and the parity information.

20. The computer program product of claim 19 , further including an executable portion that maintains, by the RAID controller, a third table indicating the current data location of each stripe; wherein the RAID controller references the first table and the third table when determining the placement of the data and the parity information.

21. The computer program product of claim 18 , further including an executable portion that, to reduce a stored amount of metadata associated with the parity information, performs:

increasing a granularity of a size of each stripe to a predefined size; and

using at least one of a plurality of parity placement schemes which implicitly define the placement of the parity information on respective storage devices of the plurality of storage devices according to a weighted bias.

22. The computer program product of claim 21 , wherein:

the at least one of the plurality of parity placement schemes comprises storing the parity information using a round-robin model within each of the plurality of storage devices according to a predetermined compression ratio of the respective storage devices of the plurality of storage devices;

the at least one of the parity placement schemes is globally applied to the RAID or selectively applied to particular ranges of logical address space; and further including an executable portion that:

determines, by the RAID controller, to switch from a first scheme to a second scheme of the plurality of parity placement schemes according to the predetermined compression ration of the respective storage devices of the plurality of storage devices, wherein, subsequent to switching from the first scheme and the second scheme of the plurality of parity placement schemes, the second scheme of the plurality of parity placement schemes is applied to writes on unmapped storage space only.

23. The computer program product of claim 17 , wherein:

the placement of the data and the parity information is determined by the RAID controller upon receiving a write operation; or

the placement of the data and the parity information is determined by the RAID controller upon performing a RAID rebuild operation; wherein the RAID includes a distributed spare.

24. The computer program product of claim 23 , further including an executable portion that:

pursuant to the RAID rebuild operation, withholds the parity information from being stored on certain storage devices of the plurality of storage devices until the physical capacity usage is rebalanced among the plurality of storage devices; and

updates the data and the parity information of existing data within respective storage devices of the plurality of storage devices as a background operation using an array-level read scrubber.

25. A method for adaptive placement of parity information within a Redundant Array of Independent Disks (RAID) stripes within a plurality of storage devices, wherein each of the plurality of storage devices independently performs compression operations on data stored therein, by a RAID controller, comprising:

upon receiving a write operation, determining, by the RAID controller, a location to place data and the parity information within at least one of the plurality of storage devices according to a physical capacity usage of each of the plurality of storage devices;

writing update data and the parity information by the RAID controller to the at least one of the plurality of storage devices according to the determined location; and

updating the determined location of the placement of the data and the parity information within a parity placement table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2018
From: PLETKA, ROMAN ALEXANDER; TOMIC, SASA; FISHER, TIMOTHY; PAPANDREOU, NIKOLAOS; IOANNOU, NIKOLAS; FRY, AARON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047796/0503 →
Continuity (1)
Related Publication 20200192758A1 · Jun 18, 2020
Cited By (1)
US 12,379,842