IP Library Granted Patent US 9,753,833
Granted Patent B2
US 9,753,833 · App. 14/555,072 · Granted Sep 5, 2017

Workload selection and cache capacity planning for a virtual storage area network

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,753,833
App. No.
14/555,072
Granted
Sep 5, 2017
Kind
B2
Abstract

Exemplary methods, apparatuses, and systems receive a first input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a first workload during a first period of time. The first I/O trace is run through a cache simulation using a plurality of simulated cache sizes. A first state of the cache simulation is stored upon completing the first I/O trace simulation. The first I/O trace is deleted in response to storing the first state. A second I/O trace including storage addresses that were subject to a plurality of I/O requests from the first workload during a second period of time is received. A cumulative miss ratio curve for the first workload is generated by loading the stored first state as a starting point for simulating the second I/O trace and running the second I/O trace through the cache simulation.

Claims (105)

1. A computer-implemented method, comprising:

receiving a first input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a first workload during a first period of time;

using the first I/O trace as an input to a cache simulation using a plurality of simulated cache sizes;

storing a first state of the cache simulation upon completing a simulation of the first I/O trace wherein the first state is a result of the cache simulation;

deleting the first I/O trace in response to storing the first state of the cache simulation;

receiving a second I/O trace including storage addresses that were subject to a plurality of I/O requests from the first workload during a second period of time;

generating a cumulative miss ratio curve (MRC) for the first workload by loading the stored first state as a starting point for simulating the second I/O trace and running the second I/O trace through the cache simulation from the starting point;

receiving a plurality of I/O traces including storage addresses that were subject to a plurality of I/O requests from a second workload;

determining an cumulative MRC for the second workload by running the plurality of I/O traces from the second workload through the cache simulation;

receiving user selection of a first target miss rate for the first workload and a second target miss rate for the second workload;

generating a recommended cache size that corresponds to the first and second target miss rates based upon the target miss rates and corresponding MRCs; and

allocating an amount of a cache of a virtual storage area network (VSAN) based on the recommended cache size.

2. The computer-implemented method of claim 1 , further comprising:

receiving a third input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a second workload during a third period of time; and

running the third I/O trace through the cache simulation after running the first I/O trace through the cache simulation and before running the second I/O trace through the cache simulation.

3. The computer-implemented method of claim 1 , wherein determining the recommended cache size comprises:

determining a cache size for the first workload that corresponds to the first target miss rate in the cumulative MRC for the first workload;

determining a cache size for the second workload that corresponds to the second target miss rate in the cumulative MRC for the second workload; and

summing the determined cache size for the first workload and the determined cache size for the second workload.

4. The computer-implemented method of claim 1 , wherein running each of the first and second I/O traces through the cache simulation includes determining an incremental MRC for the first workload, wherein running the plurality of I/O traces through the cache simulation includes determining a plurality of incremental MRCs for the second workload by running each of the plurality of I/O traces through the cache simulation, and wherein determining the recommended cache size comprises:

determining which incremental MRC for the first workload has a largest cache size corresponding to the first target miss rate;

determining which incremental MRC for the second workload has a largest cache size corresponding to the second target miss rate; and

summing the largest cache size corresponding to the first target miss rate and the largest cache size corresponding to the second target miss rate.

5. The computer-implemented method of claim 1 , wherein running each of the first and second I/O traces through the cache simulation includes determining an incremental MRC for the first workload, wherein running the plurality of I/O traces through the cache simulation includes determining a plurality of incremental MRCs for the second workload by running each of the plurality of I/O traces through the cache simulation, and wherein determining the recommended cache size comprises:

determining a first cache size corresponding to the first target miss rate using an incremental MRC for the first workload simulated during the first period of time;

determining a second cache size corresponding to the second target miss rate using an incremental MRC for the second workload simulated during the first period of time;

calculating a first sum of the first and second cache sizes;

determining a third cache size corresponding to the first target miss rate using an incremental MRC for the first workload simulated during the second period of time;

determining a fourth cache size corresponding to the second target miss rate using an incremental MRC for the second workload simulated during the second period of time;

calculating a second sum of the third and fourth cache sizes; and

selecting a greater of the first and second sums.

6. The computer-implemented method of claim 1 , wherein the plurality of I/O requests from the first workload during the first period of time are directed to first and second virtual disks, and wherein receiving the first I/O trace comprises:

receiving a third I/O trace including I/O requests directed to the first virtual disk;

receiving a fourth I/O trace including I/O requests directed to the second virtual disk;

modifying storage addresses in the third I/O trace or in the fourth I/O trace to avoid storage address collisions between the third and fourth I/O traces; and

merging the third and fourth I/O traces, after the modification of storage addresses, to create the first I/O trace.

7. A non-transitory computer-readable medium storing instructions, which when executed by a processing device, cause the processing device to perform a method comprising:

receiving a first input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a first workload during a first period of time;

using the first I/O trace as an input to a cache simulation using a plurality of simulated cache sizes;

storing a first state of the cache simulation upon completing a simulation of the first I/O trace wherein the first state is a result of the cache simulation;

deleting the first I/O trace in response to storing the first state of the cache simulation;

receiving a second I/O trace including storage addresses that were subject to a plurality of I/O requests from the first workload during a second period of time;

generating an cumulative miss ratio curve (MRC) for the first workload by loading the stored first state as a starting point for simulating the second I/O trace and running the second I/O trace through the cache simulation from the starting point;

receiving a plurality of I/O traces including storage addresses that were subject to a plurality of I/O requests from a second workload;

determining an cumulative MRC for the second workload by running the plurality of I/O traces from the second workload through the cache simulation;

receiving user selection of a first target miss rate for the first workload and a second target miss rate for the second workload;

generating a recommended cache size that corresponds to the first and second target miss rates based upon the target miss rates and corresponding MRCs; and

allocating an amount of a cache of a virtual storage area network (VSAN) based on the recommended cache size.

8. The non-transitory computer-readable medium of claim 7 , the method further comprising:

receiving a third input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a second workload during a third period of time; and

running the third I/O trace through the cache simulation after running the first I/O trace through the cache simulation and before running the second I/O trace through the cache simulation.

9. The non-transitory computer-readable medium of claim 7 , wherein determining the recommended cache size comprises:

determining a cache size for the first workload that corresponds to the first target miss rate in the cumulative MRC for the first workload;

determining a cache size for the second workload that corresponds to the second target miss rate in the cumulative MRC for the second workload; and

summing the determined cache size for the first workload and the determined cache size for the second workload.

10. The non-transitory computer-readable medium of claim 7 , wherein running each of the first and second I/O traces through the cache simulation includes determining an incremental MRC for the first workload, wherein running the plurality of I/O traces through the cache simulation includes determining a plurality of incremental MRCs for the second workload by running each of the plurality of I/O traces through the cache simulation, and wherein determining the recommended cache size comprises:

determining which incremental MRC for the first workload has a largest cache size corresponding to the first target miss rate;

determining which incremental MRC for the second workload has a largest cache size corresponding to the second target miss rate; and

summing the largest cache size corresponding to the first target miss rate and the largest cache size corresponding to the second target miss rate.

11. The non-transitory computer-readable medium of claim 7 , wherein running each of the first and second I/O traces through the cache simulation includes determining an incremental MRC for the first workload, wherein running the plurality of I/O traces through the cache simulation includes determining a plurality of incremental MRCs for the second workload by running each of the plurality of I/O traces through the cache simulation, and wherein determining the recommended cache size comprises:

determining a first cache size corresponding to the first target miss rate using an incremental MRC for the first workload simulated during the first period of time;

determining a second cache size corresponding to the second target miss rate using an incremental MRC for the second workload simulated during the first period of time;

calculating a first sum of the first and second cache sizes;

determining a third cache size corresponding to the first target miss rate using an incremental MRC for the first workload simulated during the second period of time;

determining a fourth cache size corresponding to the second target miss rate using an incremental MRC for the second workload simulated during the second period of time;

calculating a second sum of the third and fourth cache sizes; and

selecting a greater of the first and second sums.

12. The non-transitory computer-readable medium of claim 7 , wherein the plurality of I/O requests from the first workload during the first period of time are directed to first and second virtual disks, and wherein receiving the first I/O trace comprises:

receiving a third I/O trace including I/O requests directed to the first virtual disk;

receiving a fourth I/O trace including I/O requests directed to the second virtual disk;

modifying storage addresses in the third I/O trace or in the fourth I/O trace to avoid storage address collisions between the third and fourth I/O traces; and

merging the third and fourth I/O traces, after the modification of storage addresses, to create the first I/O trace.

13. An apparatus comprising:

a processor; and

a hardware memory coupled to the processor, the hardware memory storing instructions which, when executed by the processor, cause the apparatus to:

receive a first input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a first workload during a first period of time;

use the first I/O trace as an input to a cache simulation using a plurality of simulated cache sizes;

store a first state of the cache simulation upon completing a simulation of the first I/O trace wherein the first state is a result of the cache simulation;

delete the first I/O trace in response to storing the first state of the cache simulation;

receive a second I/O trace including storage addresses that were subject to a plurality of I/O requests from the first workload during a second period of time;

generate an cumulative miss ratio curve (MRC) for the first workload by loading the stored first state as a starting point for simulating the second I/O trace and running the second I/O trace through the cache simulation from the starting point;

receive a plurality of I/O traces including storage addresses that were subject to a plurality of I/O requests from a second workload;

determine an cumulative MRC for the second workload by running the plurality of I/O traces from the second workload through the cache simulation;

receive user selection of a first target miss rate for the first workload and a second target miss rate for the second workload;

generate a recommended cache size that corresponds to the first and second target miss rates based upon the target miss rates and corresponding MRCs; and

allocate an amount of a cache of a virtual storage area network (VSAN) based on the recommended cache size.

14. The apparatus of claim 13 , wherein the instructions further cause the apparatus to:

receive a third input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a second workload during a third period of time; and

run the third I/O trace through the cache simulation after running the first I/O trace through the cache simulation and before running the second I/O trace through the cache simulation.

15. The apparatus of claim 13 , wherein determining the recommended cache size comprises:

determining a cache size for the first workload that corresponds to the first target miss rate in the cumulative MRC for the first workload;

determining a cache size for the second workload that corresponds to the second target miss rate in the cumulative MRC for the second workload; and

summing the determined cache size for the first workload and the determined cache size for the second workload.

16. The apparatus of claim 13 , wherein running each of the first and second I/O traces through the cache simulation includes determining an incremental MRC for the first workload, wherein running the plurality of I/O traces through the cache simulation includes determining a plurality of incremental MRCs for the second workload by running each of the plurality of I/O traces through the cache simulation, and wherein determining the recommended cache size comprises:

determining which incremental MRC for the first workload has a largest cache size corresponding to the first target miss rate;

determining which incremental MRC for the second workload has a largest cache size corresponding to the second target miss rate; and

summing the largest cache size corresponding to the first target miss rate and the largest cache size corresponding to the second target miss rate.

17. The apparatus of claim 13 , wherein running each of the first and second I/O traces through the cache simulation includes determining an incremental MRC for the first workload, wherein running the plurality of I/O traces through the cache simulation includes determining a plurality of incremental MRCs for the second workload by running each of the plurality of I/O traces through the cache simulation, and wherein determining the recommended cache size comprises:

determining a first cache size corresponding to the first target miss rate using an incremental MRC for the first workload simulated during the first period of time;

determining a second cache size corresponding to the second target miss rate using an incremental MRC for the second workload simulated during the first period of time;

calculating a first sum of the first and second cache sizes;

determining a third cache size corresponding to the first target miss rate using an incremental MRC for the first workload simulated during the second period of time;

determining a fourth cache size corresponding to the second target miss rate using an incremental MRC for the second workload simulated during the second period of time;

calculating a second sum of the third and fourth cache sizes; and

selecting a greater of the first and second sums.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2014
From: MAGDON-ISMAIL, TARIQ; NGUYEN, DUY; MARTIN, BRIAN JAMES
To: VMWARE, INC.
Reel/Frame 034272/0446 →