Systems, methods, and interfaces for adaptive persistence
First Claim
1. A method, comprising:
- selecting levels of persistence for input/output (I/O) requests to service by use of a storage system comprising an I/O stack and a plurality of storage devices, the storage devices including persistent storage devices accessed via the I/O stack and a designated storage device accessed outside of the I/O stack, separate from the persistent storage devices, wherein the levels of persistence are selected from a plurality of levels of persistence, including a first level of persistence corresponding to a limited storage duration without redundancy in the storage system; and
servicing the I/O requests at the storage system in accordance with the selected levels of persistence, wherein servicing particular I/O requests pertaining to a particular file in accordance with the first level of persistence comprises;
writing data of the particular file to the designated storage device via a fast path outside the I/O stack and without accessing the I/O stack, wherein the data of the particular file is written to the designated storage device without writing the data to any of the persistent storage devices, and the data of the particular file is evicted from the storage system without accessing any of the persistent storage devices of the storage system.
6 Assignments
0 Petitions
Accused Products
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.
455 Citations
20 Claims
-
1. A method, comprising:
-
selecting levels of persistence for input/output (I/O) requests to service by use of a storage system comprising an I/O stack and a plurality of storage devices, the storage devices including persistent storage devices accessed via the I/O stack and a designated storage device accessed outside of the I/O stack, separate from the persistent storage devices, wherein the levels of persistence are selected from a plurality of levels of persistence, including a first level of persistence corresponding to a limited storage duration without redundancy in the storage system; and servicing the I/O requests at the storage system in accordance with the selected levels of persistence, wherein servicing particular I/O requests pertaining to a particular file in accordance with the first level of persistence comprises; writing data of the particular file to the designated storage device via a fast path outside the I/O stack and without accessing the I/O stack, wherein the data of the particular file is written to the designated storage device without writing the data to any of the persistent storage devices, and the data of the particular file is evicted from the storage system without accessing any of the persistent storage devices of the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus comprising:
-
means for receiving storage requests to implement by use of a storage system comprising an input/output (I/O) stack and a plurality of storage resources, the storage resources including persistent storage resources accessed via the I/O stack and a temporary storage resource accessed outside of the I/O stack, separate from the persistent storage resources; means for assigning respective persistence levels to the storage requests based on one or more characteristics of the storage requests, each persistence level corresponding to one or more of the storage resources of the storage system, the persistence levels including a first persistence level corresponding to a limited storage duration without redundancy in the storage system; and means for implementing the storage requests on selected storage resources of the storage system, wherein the storage resources are selected based on the persistence levels assigned to the storage requests, implementing particular storage requests pertain to a particular data set, and assigning the first persistence level comprises; writing data of the particular data set to the temporary storage resource via a fast path outside the I/O stack, separate from the plurality of persistent storage resources and without accessing the I/O stack, and evicting the data of the particular data set from the temporary storage resource using one or more of a reboot, a restart, and a shutdown of a client and without writing the data of the particular data set to the persistent storage resources of the storage system, such that the data of the particular data set is written to the temporary storage resource via the fast path outside of the I/O stack and evicted from the storage system without accessing the I/O stack and the persistent storage resources of the storage system. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus, comprising:
-
a request receiver configured to receive storage requests; and a storage controller configured to; interface with a plurality of storage resources of a storage system, the storage resources of the storage system comprising an input/output (I/O) stack, persistent storage devices accessed via the I/O stack, and a separate storage device accessed outside of the I/O stack, assign persistence levels to the storage requests based on characteristics of the storage requests, the persistence levels including a first persistence level to assign to storage requests pertaining to data for temporary storage within the storage system without redundancy, and store data within the storage system in response to the storage requests and according to the persistence levels assigned to the storage requests, wherein storing data within the storage system in response to particular storage requests assigned the first persistence level and pertaining to a specified data, comprises; storing the specified data on the separate storage device via a fast path outside of the I/O stack without accessing the persistent storage devices of the storage system and without accessing the I/O stack, and evicting the specified data from the separate storage device without writing the specified data to the persistent storage devices of the storage system via the I/O stack, such that the specified data is stored on the separate storage device without accessing the I/O stack and is evicted from the storage system without accessing the persistent storage devices of the storage system and without accessing the I/O stack. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification