IP Library › Granted Patent US 9,983,795
Granted Patent B1
US 9,983,795 · App. 14/674,131 · Granted May 29, 2018

Techniques for determining a storage configuration

Inventors: Amnon Naamad (Brookline, MA); Kuram T. Narayana (Cupertino, CA); Ron Bigman (Holon, IL); Anurag S. Maunder (Fremont, CA)
Assignee: EMC IP Holding Company LLC
G06F3/061G06F3/0629G06F3/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 9,983,795
App. No.
14/674,131
Filed
Mar 31, 2015
Granted
May 29, 2018
Kind
B1
Art Unit
2139
USPC
711/170
Abstract

Described are techniques for determining data storage system configurations. Inputs are provided to a data storage system configuration generator. The inputs include first inputs and second inputs. The first inputs include a performance objective, a storage capacity, and input(s) characterizing an I/O workload. The second inputs characterize performance of data storage system components and costs of the data storage system components. First processing is performed by the data storage system configuration generator in accordance with the inputs to determine a set of one or more candidate data storage system configurations. The data storage system configuration selects, in accordance with one or more criteria, a first candidate data storage system configuration from the set.

Claims (67)

1. A method of determining data storage system configurations comprising:

providing, using a processor, inputs to a data storage system configuration generator, said inputs including first inputs and second inputs, said first inputs including a performance objective, a storage capacity denoting the total amount of user storage capacity of the logical address space associated with the logical storage devices, and one or more inputs characterizing an I/O workload, said one or more inputs including a ratio or percentage of read and write operations in the I/O workload and including skew graph or function characterizing a distribution of the I/O workload across the logical address space associated with the storage capacity, said one or more inputs including a locality of reference function for the I/O workload characterizing a change in cache hits and misses at various cache sizes for the I/O workload, said second inputs characterizing performance of data storage system components and costs of the data storage system components;

performing first processing, by said data storage system configuration generator using a processor and in accordance with said inputs, to determine a set of one or more candidate data storage system configurations, said first processing including modeling the I/O workload using each candidate data storage system configuration of the set, wherein each candidate data storage system configuration of the set achieves the performance objective for the I/O workload and includes a cache size, a number of front end processors that receive incoming data storage system requests, and a number of back end processors that access data on physical storage devices, wherein one candidate configuration of the set is an initial candidate configuration and the cache size of the initial candidate configuration is a first size determined in accordance with the storage capacity denoting the total amount of user storage capacity of the logical address space associated with the logical storage devices, and wherein the locality of reference function is used in said first processing to estimate a first cache hit ratio of the initial candidate configuration when modeling the I/O workload in the initial candidate configuration and wherein said first processing includes:

determining, for the initial candidate configuration and in accordance with the first cache hit ratio and the ratio or percentage of read and write operations in the I/O workload, an estimated portion of the I/O workload serviced using the physical storage devices of the initial candidate configuration;

selecting, by said data storage system configuration generator using a processor and in accordance with one or more criteria, a first candidate data storage system configuration from the set; and

storing data of the logical address space associated with the logical storage devices in a data storage system having the first candidate data storage system configuration.

2. The method of claim 1 , wherein the one or more criteria include selecting a candidate data storage system configuration from the set which has a minimum associated cost of all candidate data storage configurations of the set.

3. The method of claim 1 , wherein said data storage system components include any of physical storage devices, a disk adapter, a front end adapter, cache memory, a processor used to read and write data to physical storage devices, a processor that processes I/O requests received at a data storage system from a data storage system client, a port of a front end adapter that received I/O requests from data storage system clients, and a port of a back end adapter that accesses physical storage devices.

4. The method of claim 1 , wherein the performance objective is a service level objective indicating a minimum level of expected I/O performance in terms of I/O response time.

5. The method of claim 1 , wherein the first inputs include I/O workload characteristics characterizing the I/O workload, the I/O workload characteristics including any of:

one or more I/O processing rates;

a prefetch rate;

an average size of an I/O operation;

a future expected rate of change in the I/O workload; and

a future expected rate of change in the storage capacity.

6. The method of claim 1 , wherein said first processing is performed to determine a first candidate data storage configuration of said set, said first processing including:

determining a first cache size as the cache size for the first candidate data storage configuration;

determining a cache hit ratio for the first cache size using the locality of reference function included in said inputs;

determining a first physical device configuration that meets the performance objective for the I/O workload;

determining a physical device workload estimate directed to physical storage devices of the first physical device configuration;

determining a front end workload estimate directed to front end adapters; and

determining a first number of disk adapters based on the physical device workload estimate and a second number of front end adapters based on the front end workload estimate.

7. The method of claim 6 , wherein determining the first physical device configuration that meets the performance objective for the I/O workload further comprises:

determining a backend I/O workload directed to physical storage devices, said backend I/O workload being determined in accordance with the cache hit ratio and additional I/O operations, said additional I/O operations including any of read operations to prefetch data, read operations to read data from physical storage used in parity calculations for a RAID configuration of physical devices of the first physical device configuration, and write operations to write parity information to physical storage in accordance with a RAID configuration of physical devices of the first physical device configuration;

modeling performance of the backend I/O workload in the first physical device configuration using the skew graph or function characterizing a distribution of the I/O workload across a logical address space associated with the storage capacity; and

determining whether modeled performance of the backend I/O workload meets the performance objective.

8. The method of claim 7 , wherein the skew graph or function used in said modeling is a cumulative skew graph or function.

9. The method of claim 7 , wherein the skew graph or function used in said modeling is a non-cumulative skew graph or function.

10. The method of claim 6 , wherein the first processing includes:

determining an initial data storage system configuration; and

modifying the initial data storage system configuration in accordance with any of a user preference and a configuration rule.

11. The method of claim 6 , wherein said first processing is repeated a plurality of times and determines a plurality of candidate data storage system configurations whereby said set includes said plurality of candidate data storage system configurations.

12. The method of claim 6 , wherein said locality of reference function for the I/O workload denotes a change in cache miss ratio when cache size is doubled.

13. A system comprising:

a processor; and

a memory comprising code stored therein, that when executed, performs a method of determining data storage system configurations comprising:

providing, using a processor, inputs to a data storage system configuration generator, said inputs including first inputs and second inputs, said first inputs including a performance objective, a storage capacity denoting the total amount of user storage capacity of the logical address space associated with the logical storage devices, and one or more inputs characterizing an I/O workload, said one or more inputs including a ratio or percentage of read and write operations in the I/O workload and including skew graph or function characterizing a distribution of the I/O workload across the logical address space associated with the storage capacity, said one or more inputs including a locality of reference function for the I/O workload characterizing a change in cache hits and misses at various cache sizes for the I/O workload, said second inputs characterizing performance of data storage system components and costs of the data storage system components;

performing first processing, by said data storage system configuration generator using a processor and in accordance with said inputs, to determine a set of one or more candidate data storage system configurations, said first processing including modeling the I/O workload using each candidate data storage system configuration of the set, wherein each candidate data storage system configuration of the set achieves the performance objective for the I/O workload and includes a cache size, a number of front end processors that receive incoming data storage system requests, and a number of back end processors that access data on physical storage devices, wherein one candidate configuration of the set is an initial candidate configuration and the cache size of the initial candidate configuration is a first size determined in accordance with the storage capacity denoting the total amount of user storage capacity of the logical address space associated with the logical storage devices, and wherein the locality of reference function is used in said first processing to estimate a first cache hit ratio of the initial candidate configuration when modeling the I/O workload in the initial candidate configuration and wherein said first processing includes:

determining, for the initial candidate configuration and in accordance with the first cache hit ratio and the ratio or percentage of read and write operations in the I/O workload, an estimated portion of the I/O workload serviced using the physical storage devices of the initial candidate configuration;

selecting, by said data storage system configuration generator using a processor and in accordance with one or more criteria, a first candidate data storage system configuration from the set; and

storing data of the logical address space associated with the logical storage devices in a data storage system having the first candidate data storage system configuration.

14. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of determining data storage system configurations comprising:

providing, using a processor, inputs to a data storage system configuration generator, said inputs including first inputs and second inputs, said first inputs including a performance objective, a storage capacity denoting the total amount of user storage capacity of the logical address space associated with the logical storage devices, and one or more inputs characterizing an I/O workload, said one or more inputs including a ratio or percentage of read and write operations in the I/O workload and including skew graph or function characterizing a distribution of the I/O workload across the logical address space associated with the storage capacity, said one or more inputs including a locality of reference function for the I/O workload characterizing a change in cache hits and misses at various cache sizes for the I/O workload, said second inputs characterizing performance of data storage system components and costs of the data storage system components;

performing first processing, by said data storage system configuration generator using a processor and in accordance with said inputs, to determine a set of one or more candidate data storage system configurations, said first processing including modeling the I/O workload using each candidate data storage system configuration of the set, wherein each candidate data storage system configuration of the set achieves the performance objective for the I/O workload and includes a cache size, a number of front end processors that receive incoming data storage system requests, and a number of back end processors that access data on physical storage devices, wherein one candidate configuration of the set is an initial candidate configuration and the cache size of the initial candidate configuration is a first size determined in accordance with the storage capacity denoting the total amount of user storage capacity of the logical address space associated with the logical storage devices, and wherein the locality of reference function is used in said first processing to estimate a first cache hit ratio of the initial candidate configuration when modeling the I/O workload in the initial candidate configuration and wherein said first processing includes:

determining, for the initial candidate configuration and in accordance with the first cache hit ratio and the ratio or percentage of read and write operations in the I/O workload, an estimated portion of the I/O workload serviced using the physical storage devices of the initial candidate configuration;

selecting, by said data storage system configuration generator using a processor and in accordance with one or more criteria, a first candidate data storage system configuration from the set; and

storing data of the logical address space associated with the logical storage devices in a data storage system having the first candidate data storage system configuration.

15. The non-transitory computer readable medium of claim 14 , wherein the one or more criteria include selecting a candidate data storage system configuration from the set which has a minimum associated cost of all candidate data storage configurations of the set.

16. The non-transitory computer readable medium of claim 14 , wherein said data storage system components include any of physical storage devices, a disk adapter, a front end adapter, cache memory, a processor used to read and write data to physical storage devices, a processor that processes I/O requests received at a data storage system from a data storage system client, a port of a front end adapter that received I/O requests from data storage system clients, and a port of a back end adapter that accesses physical storage devices.

17. The non-transitory computer readable medium of claim 14 , wherein the performance objective is a service level objective indicating a minimum level of expected I/O performance in terms of I/O response time.

18. The non-transitory computer readable medium of claim 14 , wherein the first inputs include I/O workload characteristics characterizing the I/O workload, the I/O workload characteristics including any of:

one or more I/O processing rates;

a prefetch rate;

an average size of an I/O operation;

a future expected rate of change in the I/O workload; and

a future expected rate of change in the storage capacity.

19. The non-transitory computer readable medium of claim 14 , wherein said first processing is performed to determine a first candidate data storage configuration of said set, said first processing including:

determining a first cache size as the cache size for the first candidate data storage configuration;

determining a cache hit ratio for the first cache size using the locality of reference function included in said inputs;

determining a first physical device configuration that meets the performance objective for the I/O workload;

determining a physical device workload estimate directed to physical storage devices of the first physical device configuration;

determining a front end workload estimate directed to front end adapters; and

determining a first number of disk adapters based on the physical device workload estimate and a second number of front end adapters based on the front end workload estimate.

20. The non-transitory computer readable medium of claim 19 , wherein determining the first physical device configuration that meets the performance objective for the I/O workload further comprises:

determining a backend I/O workload directed to physical storage devices, said backend I/O workload being determined in accordance with the cache hit ratio and additional I/O operations, said additional I/O operations including any of read operations to prefetch data, read operations to read data from physical storage used in parity calculations for a RAID configuration of physical devices of the first physical device configuration, and write operations to write parity information to physical storage in accordance with a RAID configuration of physical devices of the first physical device configuration;

modeling performance of the backend I/O workload in the first physical device configuration using the skew graph or function characterizing a distribution of the I/O workload across a logical address space associated with the storage capacity; and

determining whether modeled performance of the backend I/O workload meets the performance objective.

Assignments (13)
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 →
EMPLOYMENT AGREEMENT INCLUDING ASSIGNMENT Recorded Apr 5, 2018
From: MAUNDER, ANURAG S.
To: EMC CORPORATION
Reel/Frame 045842/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2015
From: NAAMAD, AMNON
To: EMC CORPORATION
Reel/Frame 036184/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2015
From: NARAYANA, KURAM
To: EMC CORPORATION
Reel/Frame 035466/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: BIGMAN, RON
To: EMC CORPORATION
Reel/Frame 035422/0868 →