Configuring cache for I/O operations of virtual machines

US10152340B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10152340-B2
Application numberUS-201414200402-A
CountryUS
Kind codeB2
Filing dateMar 7, 2014
Priority dateMar 7, 2014
Publication dateDec 11, 2018
Grant dateDec 11, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In a computer-implemented method for configuring flash cache for input/output operations to a storage device by a plurality of virtual machines an input/output trace log for each of a plurality of virtual machines is accessed. Performance of each of the plurality of virtual machines based on a plurality of configurations of the flash cache is simulated in real-time. A recommendation of the plurality of configurations of the flash cache for the each of the plurality of virtual machines utilizing results from the simulation is generated.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method for configuring flash cache for input/output operations to a storage device by a plurality of virtual machines comprising: accessing an input/output trace log for each of a plurality of virtual machines, wherein the input/output trace log comprises run-time actual data of input/output requests of each of the plurality of virtual machines executing workloads; using the input/output requests of each respective virtual machine to simulate real-time performance of the corresponding virtual machine for each of a plurality of configurations of the flash cache used by the plurality of virtual machines, wherein each configuration assigns a number of cache blocks from the flash cache to each virtual machine of the plurality of virtual machines such that a different number of blocks are assigned to the same virtual machine in two or more configurations, and wherein each simulated real-time performance indicates an overall performance of the plurality of virtual machines as a whole according to the particular cache allocations assigned to each virtual machine of the plurality of virtual machines for that simulated performance; and generating a recommendation for assigning blocks of the flash cache based on respective simulated real-time performance of the plurality of virtual machines as a whole for each of the plurality of configurations of the flash cache for the plurality of virtual machines including recommending a particular configuration of cache allocations comprising a particular combination of cache allotments that assigns a number of blocks to each virtual machine of the plurality of virtual machines that reduces overall latency of the plurality of virtual machines. 2. The computer-implemented method of claim 1 , wherein the recommendation is based in part on a return on investment (ROI) of offloading I/O requests from a storage onto the flash cache. 3. The computer-implemented method of claim 1 , further comprising: displaying the recommendation in a user-interface; receiving user input from a user responsive to the recommendation; and implementing the recommendation responsive to the user input. 4. The computer-implemented method of claim 1 , wherein generating a recommendation, further comprises: generating a recommendation in real-time. 5. A computer-implemented method for generating a recommendation of configurations for flash cache input/output operations to a storage device by virtual machines comprising: accessing input/output traces of workloads running on a plurality of virtual machines, wherein the input/output traces comprise run-time actual data of input/output requests of each of the plurality of virtual machines executing said workloads; monitoring performance of the plurality of virtual machines while simulating in real-time the performance of each of the plurality of virtual machines according to various cache assignments for each virtual machine using the flash cache and using the run-time actual data of the input/output requests for the plurality of virtual machines executing the workloads, wherein the cache assignments include a plurality of distinct allocations of cache blocks of the flash cache to the virtual machines such that a different number of blocks are assigned to the same virtual machine in two or more configurations; and generating a recommendation for each virtual machine for a particular cache assignment of the flash cache using the results based on the monitoring and the simulation of the corresponding virtual machine. 6. The computer-implemented method of claim 5 , further comprising: identifying statistics of the input/output traces. 7. The computer-implemented method of claim 6 , wherein the statistics comprise: a working set size (WSS). 8. The computer-implemented method of claim 5 , further comprising: generating a return on investment (ROI) for the various cache assignments. 9. The computer-implemented method of claim 5 , wherein generating a recommendation, further comprises: generating a recommendation in real-time. 10. The computer-implemented method of claim 5 , wherein generating a recommendation for a cache assignment of the flash cache for a particular virtual machine includes a recommendation of a share of the flash cache to allocate to the particular virtual machine of the plurality of virtual machines. 11. The computer-implemented method of claim 5 , wherein the flash cache is a solid state drive (SSD). 12. The computer-implemented method of claim 5 , wherein the flash cache is a solid state drive (SSD) disposed in a host of the plurality of virtual machines. 13. The computer-implemented method of claim 5 , wherein configurations of the cache assignment are selected from a group consisting of: cache size, block size, and a working set size (WSS). 14. The method of claim 5 , wherein generating the recommendation includes comparing the results of the simulations according to various cache assignments with the monitored performance of the virtual machines according to a current cache allocation, and, based on the comparing, recommending a particular cache assignment that improves performance of the virtual machines. 15. A non-transitory computer-readable storage medium having instructions embodied therein that when executed cause a computer system to perform operations for generating a recommendation of a cache assignment to virtual machines, the operations comprising: accessing input/output traces of workloads running on a plurality of virtual machines, wherein the input/output traces comprise run-time actual data of input/output requests of each of the plurality of virtual machines executing said workloads; monitoring performance of the plurality of virtual machines while simulating in real-time the performance of each of the plurality of virtual machines according to various cache assignments for each virtual machine using the flash cache and using the run-time actual data of the input/output requests for the plurality of virtual machines executing the workloads; and generating a recommendation for each virtual machine for a particular cache assignment of the flash cache based on the monitoring and the results from the simulation of the corresponding virtual machine, wherein the recommendation includes a recommendation for a particular configuration simulated for the virtual machines that improves overall performance of the virtual machines relative to the current performance of the plurality of virtual machines and configurations of the other simulations. 16. The non-transitory computer-readable storage medium of claim 15 , the operations further comprising: identifying statistics of said input/output traces. 17. The non-transitory computer-readable storage medium of claim 16 , wherein the statistics comprise: a working set size (WSS). 18. The non-transitory computer-readable storage medium of claim 15 , the operations further comprising: generating a return on investment (ROI) for the various cache assignments. 19. The non-transitory computer-readable storage medium of claim 15 , wherein the flash cache is a solid state drive (SSD). 20. The non-transitory computer-readable storage medium of claim 15 , wherein generating a recommendation further comprises: generating a recommendation for a cache assignment of the flash cache to the plurality of virtual machines. 21. The non-transitory computer-readable storage medium of claim 15 , wherein configurations of the

Assignees

Inventors

Classifications

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

  • Non-volatile memory · CPC title

  • One time programmable [OTP] memory, e.g. PROM, WORM · CPC title

  • Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10152340B2 cover?
In a computer-implemented method for configuring flash cache for input/output operations to a storage device by a plurality of virtual machines an input/output trace log for each of a plurality of virtual machines is accessed. Performance of each of the plurality of virtual machines based on a plurality of configurations of the flash cache is simulated in real-time. A recommendation of the plur…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45533. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 11 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).