IP Library Granted Patent US 9,811,282
Granted Patent B2
US 9,811,282 · App. 14/640,157 · Granted Nov 7, 2017

Efficient rebuild of storage devices in a redundant array of independent disks (RAID)

Inventors: Ashokan Vellimalai (Bangalore, IN); Deepu Syam Sreedhar M (Calicut, IN); Sandeep Agarwal (Bangalore, IN); Anup Atluri (Bangalore, IN)
Assignee: Dell Products L.P.
G06F3/0634G06F3/0605G06F3/0607G06F3/0617G06F3/0632G06F3/0689G06F11/00
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 9,811,282
App. No.
14/640,157
Filed
Mar 6, 2015
Granted
Nov 7, 2017
Kind
B2
Art Unit
2132
USPC
711/114
Abstract

Methods and systems for efficient rebuild of storage devices in a RAID may include generating a data-modified map of a storage device. The data-modified map may be updated when a RAID virtual device associated with the storage device is degraded to indicate write operations. The data-modified map may be used to rebuild selective portions of the storage device, instead of performing a full rebuild. The data-modified map may also be used to perform a full rebuild of the storage device.

Claims (81)

1. A method comprising:

detecting a storage device added to a redundant array of independent disks (RAID) storage array controlled by a RAID controller;

determining whether the storage device was previously used in the RAID storage array;

determining, dependent on a data-modified map indicating modified portions of the storage device, whether to perform a rebuild of only selective portions of the storage device or a full rebuild of the storage device, wherein values of elements of the data-modified map are dependent on whether the storage device was previously used in the RAID storage array; and

performing the determined rebuild.

2. The method of claim 1 , wherein:

the method further comprises:

when the storage device was not previously used in the RAID storage array:

generating the data-modified map for the storage device; and

setting values of elements of the data-modified map to indicate full rebuild of the storage device; and

determining whether to perform a rebuild of only selective portions of the storage device or a full rebuild of the storage device comprises:

determining, based on the data-modified map, that a full rebuild of the storage device is to be performed.

3. The method of claim 2 , wherein generating the data-modified map includes:

generating a plurality of stripe maps respectively associated with RAID stripe sets used in the storage device, wherein each of the stripe maps includes a plurality of stripe units corresponding in number to a number of the RAID stripe sets;

generating a leaf array corresponding to the plurality of stripe maps, wherein each element in the leaf array indicates a change in a respective stripe map;

generating a first upper level array corresponding to at least some elements in a lower level array selected from the leaf array, wherein each element in the first upper level array indicates a change in elements of the lower level array;

generating a second upper level array; and

generating a top level array having one element, the element in the top level array indicating a change in the storage device.

4. The method of claim 2 , further comprising:

activating the storage device in the RAID storage array; and

after the activating of the storage device in the RAID storage array:

determining whether a RAID virtual device associated with the storage device was degraded, wherein a degraded RAID virtual device does not have access to at least one RAID stripe set; and

when the RAID virtual device is degraded, updating the data-modified map in response to receiving a write instruction for the RAID virtual device, wherein the data-modified map is updated based on the write instruction.

5. The method of claim 1 , wherein the storage device is selected from a rotating-media storage device and a solid state storage device.

6. The method of claim 1 , wherein the identifying the data-modified map includes identifying the data-modified map in a memory accessible to the RAID controller.

7. The method of claim 1 , wherein the RAID controller controls a plurality of storage devices, including the storage device, and further comprising:

generating a plurality of data-modified maps respectively corresponding to the plurality of storage devices.

8. The method of claim 1 , wherein:

the method further comprises, when the storage device was previously used in the RAID storage array:

identifying the data-modified map as previously generated for the storage device; and

determining whether to perform a rebuild of only selective portions of the storage device or a full rebuild of the storage device comprises:

determining, based on the data-modified map, that a rebuild of only the modified portions of the storage device is to be performed.

9. An information handling system, comprising a redundant array of independent disks (RAID) controller, the RAID controller further comprising:

a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:

detect a storage device added to a RAID storage array controlled by the RAID controller;

determine whether the storage device was previously used in the RAID storage array;

when the storage device was previously used in the RAID storage array, identify a data-modified map previously generated for the storage device, the data-modified map indicating modified portions of the storage device; and

when the storage device was not previously used in the RAID storage array:

generate the data-modified map for the storage device; and

set the data-modified map to indicate full rebuild of the storage device, wherein all portions of the storage device are indicated as modified portions in the data-modified map; and

based on the data-modified map, rebuild the modified portions of the storage device.

10. The information handling system of claim 9 , wherein the instructions to generate the data-modified map include instructions to:

generate a plurality of stripe maps respectively associated with RAID stripe sets used in the storage device, wherein each of the stripe maps includes a plurality of stripe units corresponding in number to a number of the RAID stripe sets;

generate a leaf array corresponding to the plurality of stripe maps, wherein each element in the leaf array indicates a change in a respective stripe map;

generate a first upper level array corresponding to at least some elements in a lower level array selected from the leaf array, wherein each element in the first upper level array indicates a change in elements of the lower level array;

generate a second upper level array; and

generate a top level array having one element, the element in the top level array indicating a change in the storage device.

11. The information handling system of claim 9 , further comprising instructions to:

activate the storage device in the RAID storage array; and

after activation of the storage device in the RAID storage array:

determine whether a RAID virtual device associated with the storage device was degraded, wherein a degraded RAID virtual device does not have access to at least one RAID stripe set; and

when the RAID virtual device is degraded, update the data-modified map in response to receiving a write instruction for the RAID virtual device, wherein the data-modified map is updated based on the write instruction.

12. The information handling system of claim 9 , wherein the storage device is selected from a rotating-media storage device and a solid state storage device.

13. The information handling system of claim 9 , wherein the instructions to identify the data-modified map include instructions to identify the data-modified map in a memory accessible to the RAID controller.

14. The information handling system of claim 9 , wherein the RAID controller controls a plurality of storage devices, including the storage device, and further comprising instructions to:

generate a plurality of data-modified maps respectively corresponding to the plurality of storage devices.

15. A redundant array of independent disks (RAID) controller comprising:

a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:

detect a storage device added to a RAID storage array controlled by the RAID controller;

determine whether the storage device was previously used in the RAID storage array;

when the storage device was previously used in the RAID storage array:

identify a data-modified map previously generated for the storage device, the data-modified map indicating modified portions of the storage device;

when the storage device was not previously used in the RAID storage array:

generate the data-modified map for the storage device;

set the data-modified map to indicate full rebuild of the storage device, wherein all portions of the storage device are indicated as modified portions in the data-modified map; and

based on the data-modified map, rebuild the modified portions of the storage device.

16. The RAID controller of claim 15 , wherein the instructions to generate the data-modified map include instructions to:

generate a plurality of stripe maps respectively associated with RAID stripe sets used in the storage device, wherein each of the stripe maps includes a plurality of stripe units corresponding in number to a number of the RAID stripe sets;

generate a leaf array corresponding to the plurality of stripe maps, wherein each element in the leaf array indicates a change in a respective stripe map;

generate a first upper level array corresponding to at least some elements in a lower level array selected from the leaf array, wherein each element in the first upper level array indicates a change in elements of the lower level array;

generate a second upper level array; and

generate a top level array having one element, the element in the top level array indicating a change in the storage device.

17. The RAID controller of claim 15 , further comprising instructions to:

activate the storage device in the RAID storage array; and

after activation of the storage device in the RAID storage array:

determine whether a RAID virtual device associated with the storage device was degraded, wherein a degraded RAID virtual device does not have access to at least one RAID stripe set; and

when the RAID virtual device is degraded, update the data-modified map in response to receiving a write instruction for the RAID virtual device, wherein the data-modified map is updated based on the write instruction.

18. The RAID controller of claim 15 , wherein the storage device is selected from a rotating-media storage device and a solid state storage device.

19. The RAID controller of claim 15 , wherein the instructions to identify the data-modified map include instructions to identify the data-modified map in a memory accessible to the RAID controller.

20. The RAID controller of claim 15 , wherein the RAID controller controls a plurality of storage devices, including the storage device, and further comprising instructions to:

generate a plurality of data-modified maps respectively corresponding to the plurality of storage devices.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 035860 FRAME 0797 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040028/0551 →
RELEASE OF REEL 035860 FRAME 0878 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040027/0158 →
RELEASE OF REEL 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035858/0612 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035860/0797 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035860/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2015
From: VELLIMALAI, ASHOKAN; SREEDHAR M, DEEPU SYAM; AGARWAL, SANDEEP; ATLURI, ANUP
To: DELL PRODUCTS L.P.
Reel/Frame 035100/0367 →
Continuity (1)
Related Publication 20160259588A1 · Sep 8, 2016