IP Library › Granted Patent US 9,921,913
Granted Patent B2
US 9,921,913 · App. 15/153,491 · Granted Mar 20, 2018

Flushing host cache data before rebuilding degraded redundant virtual disk

Inventors: Deepu Syam Sreedhar M. (Calicut, IN); Sandeep Agarwal (Bangalore, IN); Krishna Kumar P. K. (Bangalore, IN); Sujoy Sen (Beaverton, OR); Somashekar Ajjampur Manjunatha (Bangalore, IN)
Assignee: Dell Products L.P.
G06F11/1092G06F11/1084G06F12/0833G06F12/0868G06F12/128G06F2211/1009G06F2212/224G06F2212/621G06F2212/69
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,921,913
App. No.
15/153,491
Filed
May 12, 2016
Granted
Mar 20, 2018
Kind
B2
Art Unit
2113
USPC
714/6.23
Abstract

A storage management method includes receiving a degrade signal indicating a degraded state of a virtual disk associated with a host system. Rebuild-flush operations may be performed. The operations may include writing, to the virtual disk and also to a hot spare drive (HSP) associated with the virtual disk, valid-modified data, stored in a host storage cache, associated with the virtual disk. In contrast, valid-unmodified storage cache data associated with the virtual disk, may be written to the HSP only. After the rebuild-flush completes, the virtual disk may be rebuilt. During rebuild, however, any cached-LBA may be skipped where traditional RAID rebuild operations are performed for un-cached LBAs only.

Claims (100)

1. A storage management method, comprising:

receiving, by a host, a degrade signal indicating a DEGRADED state of a virtual disk associated with the host;

responsive to receiving the degrade signal, performing rebuild-flush operations comprising:

writing, to the virtual disk and to a hot spare drive (HSP) associated with the virtual disk, valid-modified data, stored in a host storage cache, associated with the virtual disk; and

writing, to the HSP, valid-unmodified data, stored in the host storage cache, associated with the virtual disk; and

rebuilding the virtual disk, said rebuilding including, for each virtual disk logical block address (LBA):

responsive to determining that the virtual disk LBA corresponds to valid cache data in the host storage cache, skipping to a next virtual disk LBA; and

responsive to determining that the virtual disk LBA does not correspond to valid cache data in the host storage cache:

regenerating user data associated with the LBA; and

storing rebuilt user data resulting from said regenerating to the HSP.

2. The method of claim 1 , further comprising:

maintaining hash table data indicating virtual disk LBAs cached in the host storage cache.

3. The method of claim 2 , wherein maintaining the hash table data includes:

maintaining a valid-unmodified hash table indicating virtual disk LBAs having corresponding valid-unmodified entries in the host storage cache; and

maintaining a valid-modified hash table indicating virtual disk LBAs having corresponding valid-modified entries in the host storage cache.

4. The method of claim 3 , wherein performing the rebuild-flush operations comprises:

locking storage cache lines associated with the virtual disk to prevent eviction; and

generating a rebuild-flush I/O request corresponding to the virtual disk LBAs, said generating including:

setting, in an I/O structure corresponding to the rebuild-flush I/O request, a rebuild-flush flag indicating whether a corresponding virtual disk LBA is a valid-unmodified LBA; and

submitting the rebuild-flush I/O request.

5. The method of claim 4 , further comprising:

processing, by a storage driver, the rebuild-flush I/O request in accordance with the flush-rebuild flag, said processing including:

writing valid-unmodified virtual disk LBAs to the HSP; and

writing valid-modified virtual disk LBAs to the virtual disk and to the HSP.

6. The method of claim 2 , further comprising:

handling, while said rebuilding is in progress, an I/O transaction targeting an I/O transaction LBA, said handling comprising:

determining whether an LBA associated with the I/O transaction maps to a completed rebuild region of the virtual disk, a current rebuild region of the virtual disk, or a pending rebuild region of the virtual disk;

responsive to determining that the I/O transaction LBA maps to a completed rebuild region, executing the I/O transaction; and

responsive to determining that the I/O transaction LBA corresponds to a current rebuild region, queuing the I/O transaction to execute when rebuilding of the current rebuild region completes.

7. The method of claim 6 , wherein handling the I/O transaction further comprises:

responsive to determining that the I/O transaction LBA corresponds to a pending rebuild region, determining whether the I/O transaction LBA matches an LBA in the hash table data;

responsive to determining that the I/O transaction LBA matches a hash table LBA, processing the I/O transaction by accessing:

hard disk drives associated with the virtual disk; and

the HSP; and

responsive to determining that the I/O transaction LBA does not match a hash table LBA, regenerating a stripe associated with the I/O transaction before processing the I/O transaction.

8. An information handling system, comprising:

a central processing unit (CPU);

a storage cache device for use in providing a host storage cache for a virtual disk;

a memory including processor-executable storage instructions, that, when executed by the CPU, cause the CPU to perform operations comprising:

receiving a degrade signal indicating a DEGRADED state of the virtual disk associated with the host storage cache;

responsive to receiving the degrade signal, performing rebuild-flush operations comprising:

writing, to the virtual disk and to a hot spare drive (HSP) associated with the virtual disk, valid-modified data stored in a host storage cache and associated with the virtual disk; and

writing valid-unmodified data associated with the virtual disk to the HSP; and

rebuilding the virtual disk, said rebuilding including, for each virtual disk logical block address (LBA):

responsive to determining that the virtual disk LBA does not correspond to valid cache data in the host storage cache:

regenerating user data associated with the LBA; and

storing rebuilt user data resulting from said regenerating to the HSP.

9. The information handling system of claim 8 , wherein the host storage cache comprises a solid state drive storage cache device and storage cache metadata and wherein the virtual disk is a RAID virtual disk implemented on a group of hard disk drives.

10. The information handling system of claim 9 , wherein the operations include:

maintaining a valid-unmodified hash table indicating virtual disk LBAs having corresponding valid-unmodified entries in the host storage cache; and

maintaining a valid-modified hash table indicating virtual disk LBAs having corresponding valid-modified entries in the host storage cache.

11. The information handling system of claim 10 , wherein performing the rebuild-flush operations comprises:

locking storage cache lines associated with the virtual disk to prevent eviction; and

generating a rebuild-flush I/O request corresponding to the virtual disk LBAs, said generating including:

setting, in an I/O structure corresponding to the rebuild-flush I/O request, a rebuild-flush flag indicating whether a corresponding virtual disk LBA is a valid-unmodified LBA; and

submitting the rebuild-flush I/O request.

12. The information handling system of claim 11 , wherein the operations include:

processing, by a storage driver, the rebuild-flush operation in accordance with the flush-rebuild flag, said processing including:

writing valid-unmodified virtual disk LBAs to the HSP; and

writing valid-modified virtual disk LBAs to the virtual disk and the HSP.

13. The information handling system of claim 12 , wherein the operations include:

handling an I/O transaction while said rebuilding is in progress, said handling comprising:

determining whether an LBA associated with the I/O transaction maps to a completed rebuild region of the virtual disk, a current rebuild region of the virtual disk, or a pending rebuild region of the virtual disk;

responsive to determining that the I/O transaction LBA maps to a completed rebuild region, executing the I/O transaction; and

responsive to determining that the I/O transaction LBA corresponds to a current rebuild region, queuing the I/O transaction to execute when rebuilding of the current rebuild region completes.

14. The information handling system of claim 13 , wherein handling the I/O transaction further comprises:

responsive to determining that the I/O transaction LBA corresponds to a pending rebuild region, determining whether the I/O transaction LBA matches an LBA in either of the hash tables;

responsive to determining that the I/O transaction LBA matches a hash table, LBA processing the I/O transaction by accessing:

hard disk drives associated with the virtual disk; and

the HSP;

responsive to determining that the I/O transaction LBA does not match a hash table LBA, regenerating a stripe associated with the I/O transaction before processing the I/O transaction.

15. An information handling platform, comprising:

a logical unit number (LUN) comprising:

a plurality of hard disk drives; and

a storage controller configured to expose a virtual disk;

an information handling system, comprising:

a central processing unit (CPU);

a storage cache device for use in providing a host storage cache for the virtual disk; and

a memory including processor-executable storage instructions, that, when executed by the CPU, cause the CPU to perform operations comprising:

receiving a degrade state signal indicating a DEGRADED state of the virtual disk;

responsive to receiving the degrade signal, performing rebuild-flush operations comprising:

writing, to the virtual disk and to a hot spare drive (HSP) associated with the virtual disk, valid-modified data, in the host storage cache, associated with the virtual disk; and

writing valid-unmodified data, in the host storage cache, associated with the virtual disk to the HSP;

rebuilding the virtual disk, said rebuilding including, for each virtual disk logical block address (LBA):

skipping to a next virtual disk LBA responsive to determining that a current virtual disk LBA is cached in the host storage cache; and

regenerating a stripe corresponding to the virtual disk LBA responsive to determining that the current virtual disk LBA is not cached in the host storage cache.

16. The information handling platform of claim 15 , wherein the storage controller is configured to expose a RAID LUN to the host.

17. The information handling platform of claim 16 , wherein the RAID LUN comprises a RAID 5 LUN including N HDDs where N is an integer greater than 2.

18. The information handling platform of claim 17 , further comprising:

maintaining a valid-unmodified hash table indicating virtual disk LBAs having corresponding valid-unmodified entries in the host storage cache;

maintaining a valid-modified hash table indicating virtual disk LBAs having corresponding valid-modified entries in the host storage cache; and

locking storage cache lines associated with the virtual disk to prevent eviction.

19. The information handling platform of claim 15 , further comprising:

generating a rebuild-flush I/O request corresponding to the virtual disk LBAs, said generating including:

setting, in an I/O structure corresponding to the rebuild-flush I/O request, a rebuild-flush flag indicating whether a corresponding virtual disk LBA is a valid-unmodified LBA; and

submitting the rebuild-flush I/O request.

20. The information handling platform of claim 19 ,

processing, by a RAID storage driver, the rebuild-flush I/O request in accordance with the flush-rebuild flag, said processing including:

writing valid-unmodified virtual disk LBAs to the HSP; and

writing valid-modified virtual disk LBAs to the virtual disk and the HSP.

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 SEC. INT. IN PATENTS (NOTES) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040026/0710 →
RELEASE OF SEC. INT. IN PATENTS (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0329 →
RELEASE OF SEC. INT. IN PATENTS (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040013/0733 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039643/0953 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 039719/0889 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 039644/0084 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: SREEDHAR M, DEEPU SYAM; AGARWAL, SANDEEP; P.K., KRISHNA KUMAR; SEN, SUJOY; MANJUNATHA, SOMASHEKAR AJJAMPUR
To: DELL PRODUCTS L.P.
Reel/Frame 038637/0586 →
Continuity (1)
Related Publication 20170329674A1 · Nov 16, 2017