IP Library Granted Patent US 9,830,110
Granted Patent B2
US 9,830,110 · App. 14/310,203 · Granted Nov 28, 2017

System and method to enable dynamic changes to virtual disk stripe element sizes on a storage controller

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,830,110
App. No.
14/310,203
Granted
Nov 28, 2017
Kind
B2
Abstract

A storage controller includes a storage controller memory to store virtual disk metadata including an original stripe size (OSS) field and a logical stripe size (LSS) field, and a cache memory having an OSS buffer and a LSS buffer. The storage controller stores a first block size in the OSS field, configures a RAID array to provide storage blocks of the first block size based on the OSS field, stores a second block size in the LSS field, receives a first data transaction that includes a first data block of the second block size based upon the LSS field, maps the first data block from the second block size to the first block size, and executes the first data transaction on the RAID array using the first block size.

Claims (74)

1. A storage controller comprising:

a storage controller memory operable to store virtual disk metadata including a first original stripe size (OSS) field that defines a first original stripe size for data associated with a first virtual disk that is stored on each storage device of a redundant array of independent drives (RAID) array, a second OSS field that defines a second original stripe size for data associated with a second virtual disk that is stored on each storage device of the RAID array, a first logical stripe size (LSS) field that identifies a first logical stripe size that is utilized by a first application that provides data transactions to the first virtual disk, and a second LSS field that identifies a second logical stripe size that is utilized by a second application that provides data transactions to the second virtual disk; and

a cache memory comprising a first OSS buffer, a second OSS buffer, a first LSS buffer, and a second LSS buffer, the storage controller to:

store first stripe size information in the first and second OSS fields;

configure the RAID array to provide stripe of a first stripe size based on the first stripe size information in the first and second OSS fields;

store second stripe size information in the first LSS field, wherein the second stripe size information defines a second stripe size that is smaller than the first stripe size;

store third stripe size information in the second LSS field, wherein the third stripe size information defines a third stripe size that is larger than the first stripe size;

receive a first data transaction from the first application, wherein the first data transaction includes a first data block of the second stripe size based upon the second stripe size information in the first LSS field;

map the first data block from the second stripe size to the first stripe size;

execute the first data transaction on the RAID array using the first stripe size;

receive a second data transaction from the second application, wherein the second data transaction includes a second data block of the third stripe size based upon the third stripe size information in the second LSS field;

map the second data block from the third stripe size to the first stripe size; and

execute the second data transaction on the RAID array using the first stripe size.

2. The storage controller of claim 1 , wherein the first stripe size is different from the second stripe size.

3. The storage controller of claim 2 , wherein the storage controller is further to:

store fourth stripe size information in the first LSS field;

receive a third data transaction, wherein the second data transaction includes a third data block of a fourth stripe size based upon the fourth stripe size information in the first LSS field;

map the third data block from the fourth stripe size to the first stripe size; and

execute the third data transaction on the RAID array using the first stripe size.

4. The storage controller of claim 3 , wherein the fourth stripe size is different from the first stripe size and the second stripe size.

5. The storage controller of claim 1 , wherein:

the virtual disk metadata further includes a RAID type field; and

the storage controller is further to:

store a RAID type in the RAID type field; and

configure the RAID array based on the RAID type field.

6. The storage controller of claim 5 , wherein the RAID type comprises one of RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, and RAID 6.

7. The storage controller of claim 1 , wherein the storage controller comprises at least one of a Serial-ATA controller, a FibreChannel controller, a Small Computer System Interface (SCSI) controller, a Serial Attached SCSI controller, and an Internet-SCSI controller.

8. A method comprising:

storing first stripe size information in a first original stripe size (OSS) field of a memory of a storage controller, wherein the first OSS field defines a first original stripe size for data associated with a first virtual disk that is stored on each storage device of a redundant array of independent drives (RAID) array;

storing the first stripe size information in a second OSS field of the memory wherein the second OSS field defines a second original stripe size for data associated with a second virtual disk that is stored on each storage device of the RAID array;

configuring the RAID array to provide stripes of a first stripe size based on the first stripe size information in the first OSS field;

storing second stripe size information in a first logical stripe size (LSS) field of the storage controller memory, wherein the first LSS field identifies a second stripe size that is utilized by a first application that provides data transactions with the first virtual disk, wherein the second stripe size is smaller than the first stripe size;

storing third stripe size information in a second LSS field of the storage controller memory, wherein the second LSS field identifies a third logical stripe size that is utilized by a second application that provides data transactions with the second virtual disk, wherein the third stripe size is larger than the first stripe size;

receiving, at the storage controller, a first data transaction from the first application, wherein the first data transaction includes a first data block of the second stripe size based upon the second stripe size information in the first LSS field;

mapping the first data block from the second stripe size to the first stripe size;

executing the first data transaction on the RAID array using the first stripe size;

receiving, at the storage controller, a second data transaction from the second application, wherein the second data transaction includes a second data block of the third stripe size based upon the third stripe size information in the second LSS field;

mapping the second data block from the third stripe size to the first stripe size; and

executing the second data transaction on the RAID array using the first stripe size.

9. The method of claim 8 , wherein the first stripe size is different from the second stripe size.

10. The method of claim 9 , further comprising:

storing fourth stripe size information in the first LSS field;

receiving a third data transaction from the first application, wherein the third data transaction includes a third data block of a fourth stripe size based upon the fourth stripe size information in the first LSS field;

mapping the third data block from the fourth stripe size to the first stripe size; and

executing the third data transaction on the RAID array using the first stripe size.

11. The method of claim 10 , wherein the fourth stripe size is different from the first stripe size and the second stripe size.

12. The method of claim 8 , further comprising:

storing a RAID type in a RAID type field of the storage controller memory; and

configuring the RAID array based on the RAID type field.

13. The method of claim 12 , wherein the RAID type comprises one of RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, and RAID 6.

14. The method of claim 8 , wherein the storage controller comprises at least one of a Serial-ATA controller, a FibreChannel controller, a Small Computer System Interface (SCSI) controller, a Serial Attached SCSI controller, and an Internet-SCSI controller.

15. A non-transitory computer-readable medium including code for performing a method, the method comprising:

storing first stripe size information in a first original stripe size (OSS) field of a storage controller memory, wherein the first OSS field defines a first original stripe size for data associated with a first virtual disk that is stored on each storage device of a redundant array of independent drives (RAID) array;

storing the first stripe size information in a second OSS field of the memory, wherein the second OSS field defines a second original stripe size for data associated with a second virtual disk that is stored on each storage device of the RAID array;

storing third stripe size information in a second LSS field of the storage controller memory, wherein the second LSS field identifies a third logical stripe size that is utilized by a second application that provides data transactions with the second virtual disk, wherein the third stripe size is larger than the first stripe size;

configuring the RAID array to provide stripes of the first stripe size based on the first stripe size information in the first OSS field;

storing second stripe size information in a first logical stripe size (LSS) field of the storage controller memory, wherein the first LSS field identifies a second stripe size that is utilized by an first application that provides data transactions with the first virtual disk, wherein the second stripe size is smaller than the first stripe size;

receiving, at the storage controller, a first data transaction from the first application, wherein the first data transaction includes a first data block of the second stripe size based upon the second stripe size information in the first LSS field;

mapping the first data block from the second stripe size to the first stripe size;

executing the first data transaction on the RAID array using the first stripe size

receiving, at the storage controller, a second data transaction from the second application, wherein the second data transaction includes a second data block of the third stripe size based upon the third stripe size information in the second LSS field;

mapping the second data block from the third stripe size to the first stripe size; and

executing the second data transaction on the RAID array using the first stripe size.

16. The computer-readable medium of claim 15 , wherein the first stripe size is different from the second stripe size.

17. The computer-readable medium of claim 16 , the method further comprising:

storing fourth stripe size information in the first LSS field;

receiving a third data transaction from the first application, wherein the third data transaction includes a third data block of the third stripe size based upon the third stripe size information in the first LSS field;

mapping the third data block from the third stripe size to the first stripe size; and

executing the third data transaction on the RAID array using the first stripe size.

18. The computer-readable medium of claim 17 , wherein the fourth stripe size is different from the first stripe size and the second stripe size.

19. The computer-readable medium of claim 15 , the method further comprising:

storing a RAID type in a RAID type field of the storage controller memory; and

configuring the RAID array based on the RAID type field.

20. The computer-readable medium of claim 15 , wherein the storage controller comprises at least one of a Serial-ATA controller, a FibreChannel controller, a Small Computer System Interface (SCSI) controller, a Serial Attached SCSI controller, and an Internet-SCSI controller.

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 033625 FRAME 0748 (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.
Reel/Frame 040027/0050 →
RELEASE OF REEL 033625 FRAME 0688 (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.
Reel/Frame 040027/0757 →
RELEASE OF REEL 033625 FRAME 0711 (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.
Reel/Frame 040016/0903 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 033625/0688 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033625/0748 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033625/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2014
From: PATEL, DHARMESH; HSIEH, JENWEI; ALI, RIZWAN; AHMADIAN, MAHMOUD B.
To: DELL PRODUCTS, LP
Reel/Frame 033148/0986 →