Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage
First Claim
1. A method, comprising:
- maintaining entries in a logical-to-physical mapping index of a storage controller in response to storing data on the solid-state storage medium, wherein the storage controller maintains the entries to associate logical identifiers corresponding to the stored data with respective storage addresses of the stored data on the solid-state storage medium;
admitting data of a back-end storage system into a cache on the solid-state storage medium by,caching data of the back-end storage system at respective storage addresses of the solid-state storage medium, andassociating logical identifiers of the back-end storage system corresponding to the cached data with respective storage addresses of the cached data on the solid-state storage medium by use of the logical-to-physical mapping index of the storage controller;
servicing a request to access data corresponding to a specified logical identifier of the back-end storage system by,determining whether data of the specified logical identifier is cached on the solid-state storage medium based on whether a particular entry for the specified logical identifier exists in the logical-to-physical mapping index of the storage controller, andin response to determining that data of the specified logical identifier is cached on the solid-state storage medium, reading cached data of the specified logical identifier from the solid-state storage medium at a first storage address associated with the particular entry; and
updating the particular entry in the logical-to-physical mapping index of the storage controller to associate the specified logical identifier with a second storage address on the solid-state storage medium in response to the storage controller relocating the cached data of the specified logical identifier to the second storage address on the solid-state storage medium, wherein the particular entry is updated while retaining the particular entry in the logical-to-physical mapping index such that the cached data corresponding to the specified logical identifier is retained in the cache during the relocating.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for solid-state storage as cache for high-capacity, non-volatile storage. The apparatus, system, and method are provided with a plurality of modules including a cache front-end module and a cache back-end module. The cache front-end module manages data transfers associated with a storage request. The data transfers between a requesting device and solid-state storage function as cache for one or more HCNV storage devices, and the data transfers may include one or more of data, metadata, and metadata indexes. The solid-state storage may include an array of non-volatile, solid-state data storage elements. The cache back-end module manages data transfers between the solid-state storage and the one or more HCNV storage devices.
208 Citations
22 Claims
-
1. A method, comprising:
-
maintaining entries in a logical-to-physical mapping index of a storage controller in response to storing data on the solid-state storage medium, wherein the storage controller maintains the entries to associate logical identifiers corresponding to the stored data with respective storage addresses of the stored data on the solid-state storage medium; admitting data of a back-end storage system into a cache on the solid-state storage medium by, caching data of the back-end storage system at respective storage addresses of the solid-state storage medium, and associating logical identifiers of the back-end storage system corresponding to the cached data with respective storage addresses of the cached data on the solid-state storage medium by use of the logical-to-physical mapping index of the storage controller; servicing a request to access data corresponding to a specified logical identifier of the back-end storage system by, determining whether data of the specified logical identifier is cached on the solid-state storage medium based on whether a particular entry for the specified logical identifier exists in the logical-to-physical mapping index of the storage controller, and in response to determining that data of the specified logical identifier is cached on the solid-state storage medium, reading cached data of the specified logical identifier from the solid-state storage medium at a first storage address associated with the particular entry; and updating the particular entry in the logical-to-physical mapping index of the storage controller to associate the specified logical identifier with a second storage address on the solid-state storage medium in response to the storage controller relocating the cached data of the specified logical identifier to the second storage address on the solid-state storage medium, wherein the particular entry is updated while retaining the particular entry in the logical-to-physical mapping index such that the cached data corresponding to the specified logical identifier is retained in the cache during the relocating. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21)
-
-
18. A non-transitory computer-readable storage medium comprising instructions to cause a computing device to perform a method, the method comprising:
-
caching data of a primary storage system on a cache comprising a solid-state storage medium in response to storage requests directed to the primary storage system, wherein the cached data corresponds to respective identifiers of the primary storage system, and wherein caching the data of the primary storage system comprises, storing the data of the primary storage system at respective physical addresses of the solid-state storage medium, and maintaining entries in a logical-to-physical translation index, the entries associating identifiers corresponding to cached data of the primary storage system with respective physical addresses at which the cached data is stored on the solid-state storage medium; servicing a read request pertaining to a specified identifier of the primary storage system, wherein servicing the read request comprises, identifying an entry of the logical-to-physical translation index for the specified identifier of the primary storage system, using the identified entry to determine a physical address at which cached data of the specified identifier is stored on the solid-state storage medium, and retrieving the cached data of the specified identifier from the solid-state storage medium at the determined physical address; and modifying the particular entry of the logical-to-physical translation index to associate the specified identifier with a different physical address of the solid-state storage medium in response to moving the cached data of the specified identifier to the different physical address on the solid-state storage medium, wherein the particular entry is modified while retaining the particular entry in the logical-to-physical translation index, and while retaining the cached data of the specified logical identifier in the cache. - View Dependent Claims (19)
-
-
20. An apparatus comprising:
-
a storage controller configured to write data to respective storage locations of a solid-state storage device; an index module configured to maintain a logical-to-physical translation index comprising entries that associate logical addresses of data stored on the solid-state storage device with respective storage locations of the solid-state storage device; a cache module configured to cache data of a high-capacity storage system in a cache on the solid-state storage device by use of the storage controller, wherein to cache data associated with a specified logical address of the high-capacity storage system, the storage controller writes the data to a first storage location on the solid-state storage device and the index module associates the specified logical address of the high-capacity storage system with the first storage location in a designated entry of the logical-to-physical mapping index; wherein the cache module is further configured to service an access request pertaining to the specified logical address of the high-capacity storage system, wherein to service the data request the cache module determines that the specified logical address is stored in the cache on the solid-state storage device based on identifying the designated entry in the logical-to-physical mapping index, and the storage controller reads the first storage location of the solid-state storage device associated with the specified logical address by the designated entry, wherein the index module is configured to alter the designated entry of the logical-to-physical mapping index in response to the storage controller relocating the data stored on the first storage location to a second storage location on the solid-state storage device, wherein the index module alters the designated entry to associate the specified logical address of the high-capacity storage system with the second storage location on the solid-state storage device while maintaining the designated entry in the logical-to-physical translation index such that the data of the specified logical address is retained in the cache on the solid-state storage device while the designated entry is altered. - View Dependent Claims (22)
-
Specification