IP Library Granted Patent US 9,058,123
Granted Patent B2
US 9,058,123 · App. 14/262,581 · Granted Jun 16, 2015

Systems, methods, and interfaces for adaptive persistence

Inventors: Vikram Joshi (Los Gatos, CA); Yang Luan (San Jose, CA); Michael F. Brown (Campbell, CA); David Flynn (Sandy, UT); Brent Lim Tze Hao (San Jose, CA); Jerene Zhe Yang (San Jose, CA); Prashanth Radhakrishnan (Sunnyvale, CA)
Assignee: Intelligent Intellectual Property Holdings 2 LLC
G06F3/0662G06F3/061G06F12/0877G06F3/0671G06F3/0659G06F3/0664G06F3/0689G06F12/0842G06F2212/151G06F2212/6042
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,058,123
App. No.
14/262,581
Granted
Jun 16, 2015
Kind
B2
Abstract

A storage module may be configured to service I/O requests according to different persistence levels. The persistence level of an I/O request may relate to the storage resource(s) used to service the I/O request, the configuration of the storage resource(s), the storage mode of the resources, and so on. In some embodiments, a persistence level may relate to a cache mode of an I/O request. I/O requests pertaining to temporary or disposable data may be serviced using an ephemeral cache mode. An ephemeral cache mode may comprise storing I/O request data in cache storage without writing the data through (or back) to primary storage. Ephemeral cache data may be transferred between hosts in response to virtual machine migration.

Claims (32)

1. An apparatus, comprising:

an ephemeral storage resource configured to temporarily retain ephemeral data of a plurality of virtual machines managed by a hypervisor, wherein the hypervisor is configured to host the plurality of virtual machines and to store data of the virtual machines on one of a primary storage resource and the ephemeral storage resource;

a persistence module that identifies an I/O request that pertains to ephemeral data of a first one of the virtual machines, wherein the I/O request is addressed to the primary storage resource managed by the hypervisor; and

an execution module that redirects the identified I/O request from the primary storage resource to the ephemeral storage resource, such that data of the identified I/O request is lost in response to shutdown of the first virtual machine.

2. The apparatus of claim 1 , wherein the persistence module is configured to identify I/O requests pertaining to ephemeral data based on files associated with the I/O requests.

3. The apparatus of claim 2 , wherein the persistence module is configured to identify I/O requests pertaining to ephemeral data by use of a file-selection criterion.

4. The apparatus of claim 1 , wherein the identified I/O request is serviced using the ephemeral storage resource independent of the primary storage resource.

5. The apparatus of claim 4 , wherein the ephemeral storage resource comprises volatile memory.

6. The apparatus of claim 1 , further comprising an I/O driver that directs I/O requests of a storage stack of a virtual machine operating within a virtualization environment managed by the hypervisor to the persistence module, and wherein the ephemeral storage resource is configured to retain ephemeral data of the virtual machine until a reboot of the virtual machine is detected.

7. The apparatus of claim 1 , wherein the execution module is configured to redirect the identified I/O request from an I/O stack of the virtual machine to a virtual disk.

8. The apparatus of claim 1 , wherein the execution module services the identified I/O request by one or more of writing data of the identified I/O request to the ephemeral storage resource and reading data from the ephemeral storage resource.

9. The apparatus of claim 1 , wherein the ephemeral storage resource is configured to remove ephemeral data of the first virtual machine stored on the ephemeral storage resource in response to a shutdown of the first virtual machine.

10. A method, comprising:

receiving an input/output (I/O) request of a virtual machine that is addressed to a primary storage resource managed by a virtualization kernel, wherein the virtual machine is one of a plurality of virtual machines configured to operate within the virtualization kernel;

selecting an ephemeral persistence level for the I/O request in response to determining that the I/O request pertains to temporary data;

redirecting the I/O request from the primary storage resource managed by the virtualization kernel to a designated storage resource, wherein the designated storage resource is configured to retain temporary data of the plurality of virtual machines; and

removing ephemeral data of a particular virtual machine from the designated storage resource in response to the particular virtual machine no longer running on the virtualization kernel.

11. The method of claim 10 , wherein the designated storage resource comprises random access memory of the host computing device.

12. The method of claim 10 , wherein selecting the ephemeral persistence level comprises determining that the I/O request corresponds to a file used to store ephemeral data.

13. The method of claim 10 , further comprising servicing the I/O request by one or more of reading data from the designated storage resource and writing data to the designated storage resource.

14. The method of claim 10 , wherein servicing the I/O request comprises caching data of the I/O request on the designated storage resource in a write-never cache mode, such that data of the identified I/O request is stored on the designated storage resource without being written to the primary storage resource associated with the I/O request.

15. The method of claim 10 , further comprising selecting the ephemeral persistence level based on an application associated with the I/O request.

16. The method of claim 10 , wherein I/O requests of the virtual machines are serviced by use of a storage system comprising the primary storage system and the designated storage resource, and wherein removing the ephemeral data of the particular virtual machine from the designated storage resource comprises removing the ephemeral data from the storage system.

17. A system, comprising:

a storage module that selects respective persistence levels for input/output (I/O) requests of a virtual machine configured for operation on a host computing device, the host computing device configured to host a plurality of virtual machines within a virtualization environment and to store data of the virtual machines by use of a storage system comprising a primary storage resource and an ephemeral storage resource, the ephemeral storage resource configured to retain data of the virtual machines until detection of a reboot cycle of the respective virtual machines;

a virtual storage driver to provide the plurality of virtual machines access to the ephemeral storage resource;

an execution module that reroutes a particular one of the I/O requests from the primary storage resource to the ephemeral storage resource in response to the storage module selecting an ephemeral persistence level for the particular I/O request, wherein data of the particular I/O request is lost from the storage system upon removal of the data of the particular I/O request from the ephemeral storage resource.

18. The system of claim 17 , wherein the storage module selects the ephemeral persistence level in response to determining that the particular I/O request pertains to an ephemeral file, wherein the storage module is configured to distinguish ephemeral files based on one or more of a file path, a file extension, and a file type.

19. The system of claim 17 , further comprising an I/O filter that directs I/O requests of an I/O stack to the storage module.

20. The system of claim 17 , further comprising a storage interface that receives I/O requests directed to the storage module.

21. The system of claim 17 , wherein the ephemeral storage resource comprises a secondary storage resource that is separate from the primary storage resource.

22. The system of claim 21 , wherein the execution module services I/O requests pertaining to ephemeral files of a virtual machine by issuing the I/O requests to a virtual disk corresponding to the virtual storage driver.

Assignments (9)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038348/0708 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038348/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2015
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 035583/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2015
From: JOSHI, VIKRAM; LUAN, YANG; BROWN, MICHAEL F; FLYNN, DAVID; HAO, BRENT LIM TZE; YANG, JERENE ZHE; RADHAKRISHNAN, PRASHANTH
To: FUSION-IO, INC.
Reel/Frame 034733/0429 →
Continuity (3)
Continuation 13829835 · Mar 14, 2013
Provisional Application 61696126 · Aug 31, 2012
Related Publication 20140237147A1 · Aug 21, 2014