IP Library Granted Patent US 11,301,162
Granted Patent B2
US 11,301,162 · App. 16/888,742 · Granted Apr 12, 2022

Balancing resiliency and performance by selective use of degraded writes and spare capacity in storage systems

Inventors: Rivka Matosevich (Zichron Ya'acov, IL); Yosef Shatsky (Karnei Shomron, IL); Doron Tal (Haifa, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0655G06F3/061G06F3/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 11,301,162
App. No.
16/888,742
Granted
Apr 12, 2022
Kind
B2
Abstract

Techniques are provided for processing user input/output (I/O) write requests in a fault-tolerant data storage system (e.g., a RAID storage system) by selecting between performing a degraded write operation or a write operation to spare capacity, when the fault-tolerant data storage system is operating in a degraded mode. A method includes receiving a user I/O write request comprising data to be written to a RAID array operating in a degraded mode, and determining whether spare capacity has been allocated for rebuilding missing data of an inaccessible storage device of the RAID array and whether a missing data block, which is associated with I/O write request, has been rebuilt to the spare capacity. A degraded write operation is performed without using the spare capacity, when the missing data block, which is associated with the data of the I/O write request, has not been rebuilt to the allocated spare capacity.

Claims (70)

1. A method, comprising:

receiving, by a storage control system, a user input/output (I/O) write request comprising data to be written to a RAID (redundant array of independent drives) array comprising a plurality of storage devices, which is managed by the storage control system;

determining, by the storage control system, whether the RAID array is operating in a degraded mode in which at least one storage device of the plurality of storage devices of the RAID array is inaccessible as a result of a failure; and

in response to determining that the RAID array is operating in a degraded mode, determining whether to perform a degraded write operation to write the data to the RAID array in the degraded mode, wherein determining whether to perform the degraded write operation comprises:

determining, by the storage control system, (i) whether spare capacity has been allocated to the RAID array for rebuilding missing data of the at least one inaccessible storage device of the RAID array and (ii) whether a missing data block, which is associated with the data of the I/O write request, has been rebuilt to the allocated spare capacity; and

processing, by the storage control system, the user I/O write request by performing the degraded write operation using remaining storage devices of the plurality of storage devices of the RAID array without using the spare capacity, in response to determining (i) that the spare capacity has been allocated to the RAID array but that the missing data block, which is associated with the data of the I/O write request, has not been rebuilt to the allocated spare capacity, and (ii) that a latency for performing a write operation to the spare capacity exceeds a latency threshold.

2. The method of claim 1 , wherein in response to determining that the RAID array is operating in a degraded mode, the method further comprising:

determining, by the storage control system, whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array;

performing, by the storage control system, the degraded write operation using the remaining storage devices of the plurality of storage devices of the RAID array without using the allocated spare capacity, in response determining that the remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array; and

processing, by the storage control system, the user I/O write request by performing a write operation using the allocated spare capacity and the remaining storage devices of the RAID array, in response to determining that the remaining level of resiliency of the RAID array is not sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array.

3. The method of claim 2 , wherein determining whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array, comprises:

determining, by the storage control system, a number of storage devices of the RAID array which are currently inaccessible;

determining, by the storage control system, that the remaining level of resiliency of the RAID array is sufficient in response to determining that the number of currently inaccessible storage devices is less than a maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance; and

determining, by the storage control system, that the remaining level of resiliency of the RAID array is not sufficient in response to determining that the number of currently inaccessible storage devices is equal to the maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance.

4. The method of claim 3 , wherein the RAID array is configured to provide fault tolerance against no less than two storage device failures.

5. The method of claim 2 , wherein determining whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array, comprises:

determining, by the storage control system, a number of storage devices of the RAID array which are currently inaccessible;

determining, by the storage control system, that the remaining level of resiliency of the RAID array is sufficient in response to determining that the number of currently inaccessible storage devices is less than a resiliency threshold value, wherein the resiliency threshold value is less than a maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance; and

determining, by the storage control system, that the remaining level of resiliency of the RAID array is not sufficient in response to determining that the number of currently inaccessible storage devices is equal to or greater than the resiliency threshold value.

6. The method of claim 1 , wherein determining that the latency for performing the write operation to the spare capacity exceeds the latency threshold, comprises determining that a latency of performing the degraded write operation is less than a latency associated with waiting for availability of the spare capacity to process the I/O write request.

7. The method of claim 1 , wherein in response to determining that the RAID array is operating in a degraded mode, the method further comprising:

requesting, by the storage control system, access to the allocated spare capacity to process the user I/O write request; and

performing, by the storage control system, a write operation using the allocated spare capacity and the remaining storage devices of the plurality of storage devices of the RAID array, in response to the request to access the allocated spare capacity being served before an expiration of a specified time period;

wherein the storage control system performs the degraded write operation using the remaining storage devices of the plurality of storage devices of the RAID array without using the allocated spare capacity, when the request to access the allocated spare capacity is not served before the expiration of the specified time period.

8. The method of claim 1 , wherein the RAID array configuration comprises a RAID level 1 configuration with a fault tolerance against no less than two storage device failures of the plurality of storage devices of the RAID array.

9. The method of claim 1 , wherein the RAID array configuration comprises a parity-based RAID configuration with a fault tolerance against no less than two storage device failures of the plurality of storage devices of the RAID array.

10. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method which comprises:

receiving, by a storage control system, a user input/output (I/O) write request comprising data to be written to a RAID (redundant array of independent drives) array comprising a plurality of storage devices, which is managed by the storage control system;

determining, by the storage control system, whether the RAID array is operating in a degraded mode in which at least one storage device of the plurality of storage devices of the RAID array is inaccessible as a result of a failure; and

in response to determining that the RAID array is operating in a degraded mode, determining whether to perform a degraded write operation to write the data to the RAID array in the degraded mode, wherein determining whether to perform the degraded write operation comprises:

determining, by the storage control system, (i) whether spare capacity has been allocated to the RAID array for rebuilding missing data of the at least one inaccessible storage device of the RAID array and (ii) whether a missing data block, which is associated with the data of the I/O write request, has been rebuilt to the allocated spare capacity; and

processing, by the storage control system, the user I/O write request by performing the degraded write operation using remaining storage devices of the plurality of storage devices of the RAID array without using the spare capacity, in response to determining (i) that the spare capacity has been allocated to the RAID array but that the missing data block, which is associated with the data of the I/O write request, has not been rebuilt to the allocated spare capacity, and (ii) that a latency for performing a write operation to the spare capacity exceeds a latency threshold.

11. The article of manufacture of claim 10 , wherein in response to determining that the RAID array is operating in a degraded mode, the method further comprising:

determining, by the storage control system, whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array;

performing, by the storage control system, the degraded write operation using the remaining storage devices of the plurality of storage devices of the RAID array without using the allocated spare capacity, in response determining that the remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array; and

processing, by the storage control system, the user I/O write request by performing a write operation using the allocated spare capacity and the remaining storage devices of the RAID array, in response to determining that the remaining level of resiliency of the RAID array is not sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array.

12. The article of manufacture of claim 11 , wherein determining whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array, comprises:

determining, by the storage control system, a number of storage devices of the RAID array which are currently inaccessible;

determining, by the storage control system, that the remaining level of resiliency of the RAID array is sufficient in response to determining that the number of currently inaccessible storage devices is less than a maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance; and

determining, by the storage control system, that the remaining level of resiliency of the RAID array is not sufficient in response to determining that the number of currently inaccessible storage devices is equal to the maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance.

13. The article of manufacture of claim 11 , wherein determining whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array, comprises:

determining, by the storage control system, a number of storage devices of the RAID array which are currently inaccessible;

determining, by the storage control system, that the remaining level of resiliency of the RAID array is sufficient in response to determining that the number of currently inaccessible storage devices is less than a resiliency threshold value, wherein the resiliency threshold value is less than a maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance; and

determining, by the storage control system, that the remaining level of resiliency of the RAID array is not sufficient in response to determining that the number of currently inaccessible storage devices is equal to or greater than the resiliency threshold value.

14. The article of manufacture of claim 10 , wherein determining that the latency for performing the write operation to the spare capacity exceeds the latency threshold, comprises determining that a latency of performing the degraded write operation is less than a latency associated with waiting for availability of the spare capacity to process the I/O write request.

15. The article of manufacture of claim 10 , wherein in response to determining that the RAID array is operating in a degraded mode, the method further comprising:

requesting, by the storage control system, access to the allocated spare capacity to process the user I/O write request; and

performing, by the storage control system, a write operation using the allocated spare capacity and the remaining storage devices of the plurality of storage devices of the RAID array, in response to the request to access the allocated spare capacity being served before an expiration of a specified time period;

wherein the storage control system performs the degraded write operation using the remaining storage devices of the plurality of storage devices of the RAID array without using the allocated spare capacity, when the request to access the allocated spare capacity is not served before the expiration of the specified time period.

16. A system, comprising:

at least one processor; and

a system memory configured to store program code, wherein the program code is executable by the at least one processor to implement a storage control system which is configured to:

receive a user input/output (I/O) write request comprising data to be written to a RAID (redundant array of independent drives) array comprising a plurality of storage devices, which is managed by the storage control system;

determine whether the RAID array is operating in a degraded mode in which at least one storage device of the plurality of storage devices of the RAID array is inaccessible as a result of a failure; and

in response to determining that the RAID array is operating in a degraded mode, the storage control system is configured to determine whether to perform a degraded write operation to write the data to the RAID array in the degraded mode, wherein in determining whether to perform the degraded write operation, the storage control system is configured to:

determine (i) whether spare capacity has been allocated to the RAID array for rebuilding missing data of the at least one inaccessible storage device of the RAID array and (ii) whether a missing data block, which is associated with the data of the I/O write request, has been rebuilt to the allocated spare capacity; and

process the user I/O write request by performing the degraded write operation using remaining storage devices of the plurality of storage devices of the RAID array without using the spare capacity, in response to determining (i) that the spare capacity has been allocated to the RAID array but that the missing data block, which is associated with the data of the I/O write request, has not been rebuilt to the allocated spare capacity, and (ii) that a latency for performing a write operation to the spare capacity exceeds a latency threshold.

17. The system of claim 16 , wherein in response to determining that the RAID array is operating in a degraded mode, the storage control system is configured to:

determine whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array;

perform the degraded write operation using the remaining storage devices of the plurality of storage devices of the RAID array without using the allocated spare capacity, in response determining that the remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array; and

process the user I/O write request by performing a write operation using the allocated spare capacity and the remaining storage devices of the RAID array, in response to determining that the remaining level of resiliency of the RAID array is not sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array.

18. The system of claim 16 , wherein in determining whether a remaining level of resiliency of the RAID array is sufficient to provide fault tolerance against at least one additional failure of the remaining storage devices of the RAID array, the storage control system is configured to:

determine a number of storage devices of the RAID array which are currently inaccessible;

determine that the remaining level of resiliency of the RAID array is sufficient, in response to determining that the number of currently inaccessible storage devices is less than a maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance; and

determine that the remaining level of resiliency of the RAID array is not sufficient in response to determining that the number of currently inaccessible storage devices is equal to the maximum number of storage device failures that the RAID array is configured to handle to provide fault tolerance.

19. The system of claim 16 , wherein determining that the latency for performing the write operation to the spare capacity exceeds the latency threshold, comprises determining that a latency of performing the degraded write operation is less than a latency associated with waiting for availability of the spare capacity to process the I/O write request.

20. The system of claim 16 , wherein in response to determining that the RAID array is operating in a degraded mode, the storage control system is configured to:

request access to the allocated spare capacity to process the user I/O write request; and

perform a write operation using the allocated spare capacity and the remaining storage devices of the plurality of storage devices of the RAID array, in response to the request to access the allocated spare capacity being served before an expiration of a specified time period;

wherein the storage control system performs the degraded write operation using the remaining storage devices of the plurality of storage devices of the RAID array without using the allocated spare capacity, when the request to access the allocated spare capacity is not served before the expiration of the specified time period.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: MATOSEVICH, RIVKA; SHATSKY, YOSEF; TAL, DORON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052800/0700 →
Continuity (1)
Related Publication 20210373796A1 · Dec 2, 2021
Cited By (5)
US 12,299,303 US 12,339,805 US 12,367,216 US 12,386,678 US 12,639,126