Method for packing and storing cached data in deduplicated cache system of a storage system
US-9189402-B1 · Nov 17, 2015 · US
US9612758B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9612758-B1 |
| Application number | US-201514643206-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 10, 2015 |
| Priority date | Mar 10, 2015 |
| Publication date | Apr 4, 2017 |
| Grant date | Apr 4, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A technique operates data storage equipment. The technique involves, during a first time period and while processing circuitry performs host I/O operations on behalf of a set of hosts, performing a data identification operation which provides a data identification result identifying particular data which is routinely accessed by the processing circuitry. The technique further involves, during a second time period after the first time period and in response to the data identification result, copying the particular data from secondary storage to an extension cache which forms part of primary storage to pre-fetch the particular data from the secondary storage for subsequent use by the processing circuitry. The technique further involves, during a third time period after the second time period and while the processing circuitry performs further host I/O operations on behalf of the set of hosts, accessing the particular data from the extension cache.
Opening claim text (preview).
What is claimed is: 1. A method of operating data storage equipment, the method comprising: during a first time period and while processing circuitry of the data storage equipment performs host input/output (I/O) operations on behalf of a set of external host computers, performing a data identification operation which provides a data identification result identifying particular data which is routinely accessed by the processing circuitry of the data storage equipment; during a second time period after the first time period and in response to the data identification result, copying the particular data from secondary storage of the data storage equipment to an extension cache which forms part of primary storage of the data storage equipment to pre-fetch the particular data from the secondary storage for subsequent use by the processing circuitry; and during a third time period after the second time period and while the processing circuitry of the data storage equipment performs further host I/O operations on behalf of the set of external host computers, accessing the particular data from the extension cache which forms part of the primary storage of the data storage equipment, wherein the primary storage includes random-access memory (RAM); wherein the extension cache resides in the RAM; wherein performing the data identification operation includes: measuring host I/O operation statistics while the processing circuitry performs the host I/O operations on behalf of the set of external host computers, and identifying the particular data based on the host I/O operation statistics which were measured while the processing circuitry performed the host I/O operations on behalf of the set of external host computers; wherein the secondary storage of the data storage equipment includes an array of storage devices which stores multiple logical units of storage (LUNs); wherein measuring the host I/O operation statistics includes collecting respective host I/O activity metrics for the multiple LUNs over a series of days of the first time period; wherein identifying the particular data based on the host I/O operation statistics includes selecting a particular LUN of the multiple LUNs based on the respective host I/O activity metrics which were collected over the series of days; wherein selecting the particular LUN of the multiple LUNs based on the respective host I/O activity metrics which were collected over the series of days of the first time period includes: based on the respective host I/O activity metrics, (i) detecting a high host I/O activity trend for the particular LUN which lasts a predefined number of days of the series of days, the predefined number of days being at least two days, and (ii) outputting a particular LUN identifier which uniquely identifies the particular LUN among the multiple LUNs; wherein detecting the high host I/O activity trend for the particular LUN which lasts the predefined number of days of the series of days includes: discovering that host I/O activity for the particular LUN exceeded a predefined high host I/O activity threshold during a particular time of day on each day of the predefined number of days of the series of days; wherein copying the particular data from the secondary storage to the extension cache includes: based on the particular LUN identifier, transferring at least a portion of the particular LUN to the extension cache during the second time period; and wherein transferring at least the portion of the particular LUN to the extension cache during the second time period includes: moving metadata of the particular LUN from the array of storage devices to the extension cache, the metadata being different from host data which is read and written by the set of external host computers. 2. A method as in claim 1 , further comprising: identifying a certain time of the day on each day of the predefined number of days of the series of days in which the host I/O activity for the particular LUN was less than a predefined low host I/O activity threshold, and setting the certain time of a particular day following the series of days as the second time period during which at least the portion of the particular LUN is transferred to the extension cache. 3. A method as in claim 2 wherein accessing the particular data from the extension cache during the third time period includes: accessing the portion of the particular LUN during the particular time of day of the particular day following the series of days. 4. A method as in claim 1 wherein the data storage equipment stores the host data in a block-based volume; and wherein moving the metadata includes: copying at least a portion of a logical block address (LBA) table for the particular LUN from the array of storage devices to the extension cache. 5. A method as in claim 1 wherein the data storage equipment stores the host data as files of a file system; and wherein moving the metadata includes: copying at least a portion of an mode table of the file system from the array of storage devices to the extension cache. 6. A method as in claim 1 wherein the primary storage of the data storage equipment includes (i) volatile memory which provides a standard access time which is faster than that provided by the array of storage devices and (ii) non-volatile flash memory which, operating as at least a portion of the RAM, forms the extension cache; and wherein the method further comprises: allocating a portion of the non-volatile flash memory which forms the extension cache as a pre-fetch cache to hold pre-fetched data. 7. A method as in claim 6 wherein allocating the portion of the non-volatile flash memory which forms the extension cache as the pre-fetch cache to hold pre-fetched data includes: defining, as the pre-fetch cache, an area of non-volatile memory formed by a set of solid state storage units, the particular data being copied from the secondary storage of the data storage equipment to the area of non-volatile memory formed by the set of solid state storage units during the second time period. 8. A method as in claim 6 wherein allocating the portion of the non-volatile flash memory which forms the extension cache as the pre-fetch cache to hold pre-fetched data includes: defining, as the pre-fetch cache, an area of non-volatile memory formed by a set of flash memory cards, the particular data being copied from the secondary storage of the data storage equipment to the area of non-volatile memory formed by the set of flash memory cards during the second time period. 9. A method as in claim 1 wherein performing the data identification operation further includes: identifying a particular time of day that the particular data is routinely requested based on prior input/output activity for the particular data, the prior input/output activity being retrieved from an activity log; and wherein transferring at least the portion of the particular LUN to the extension cache during the second time period is performed prior to reaching the particular time. 10. A method as in claim 1 wherein performing the data identification operation further includes: identifying a particular day of the week and time of that day that the particular data is routinely requested based on prior input/output activity for the particular data, the prior input/output activity being retrieved from an activity log; and wherein transferring at least the portion of the particular LUN to the extension cache during the second time period is performed at a time prior to reaching the particular time. 11. Data storage equipment, comprising: a communications interface to communicate with a set of external host computers; memo
Disk arrays, e.g. RAID, JBOD · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Details relating to cache prefetching · CPC title
at area level, e.g. provisioning of virtual or logical volumes · CPC title
with prefetch · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.