Managing data storage arrays on behalf of host computers via specialized LUN-related queries
US-10635332-B2 · Apr 28, 2020 · US
US10761993B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10761993-B2 |
| Application number | US-201816225808-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 19, 2018 |
| Priority date | Apr 28, 2018 |
| Publication date | Sep 1, 2020 |
| Grant date | Sep 1, 2020 |
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.
Various techniques manage a storage system. Such techniques involve, in response to receiving an Input/Output (I/O) request for a first slice of a logic storage unit in a storage system, obtaining a first bitmap with respect to the logic storage unit, the logic storage unit being divided into a plurality of slices including the first slice, and one bit in the first bitmap indicating whether a cache function is enabled for a respective one of the plurality of slices. The techniques further involve determining, based on the first bitmap, whether the cache function is enabled for the first slice. Moreover, the techniques further involve, in response to determining that the cache function is enabled for the first slice, processing the I/O request at least with a cache in the storage system. Such techniques can control the use of cache in the storage system in a finer granularity.
Opening claim text (preview).
We claim: 1. A method for managing a storage system, comprising: in response to receiving an Input/Output (I/O) request for a first slice of a logic storage unit in a storage system, obtaining a first bitmap with respect to the logic storage unit, the logic storage unit being divided into a plurality of slices including the first slice, and one bit in the first bitmap indicating whether a cache function is enabled for a respective one of the plurality of slices; determining, based on the first bitmap, whether the cache function is enabled for the first slice; and in response to determining that the cache function is enabled for the first slice, processing the I/O request at least with a cache in the storage system; wherein the cache comprises a plurality of cache pages, and wherein processing the I/O request at least with the cache comprises: obtaining a second bitmap with respect to the logic storage unit, one bit in the second bitmap indicating whether one of the plurality of cache pages corresponding to a respective one of the plurality of slices is valid or not; determining, based on the second bitmap, whether a first cache page in the plurality of cache pages corresponding to the first slice is valid or not; and in response to determining that the first cache page is invalid, forwarding the I/O request to the logic storage unit for processing. 2. The method of claim 1 , further comprising: in response to determining that the cache function is disabled for a different slice, forwarding an I/O request for the different slice to the logic storage unit for processing. 3. The method of claim 1 , wherein processing the I/O request at least with the cache comprises: in response to determining that the first cache page is valid, increasing a reference count for the first cache page; and in response to the reference count exceeding a predetermined threshold, caching a first data associated with the I/O request in the first cache page. 4. The method of claim 3 , wherein caching the first data in the first cache page comprises: obtaining a third bitmap with respect to the logic storage unit, one bit in the third bitmap indicating whether data cached in the cache for a respective one of the plurality of slices is dirty or not; setting the third bitmap to indicate that data associated with the first slice is dirty; and caching the first data in the first cache page. 5. The method of claim 4 , further comprising: determining, based on the third bitmap, whether a second data cached in the cache for a second slice in the plurality of slices is dirty data; in response to determining that the second data is dirty, flushing the second data into the second slice; and setting the third bitmap to indicate that data associated with the second slice is clean. 6. The method of claim 1 , further comprising: in response to receiving a first command to enable the cache function for a third slice in the plurality of slices, setting a first bit in the first bitmap corresponding to the third slice to enable the cache function for the third slice. 7. The method of claim 1 , further comprising: in response to receiving a second command to disable the cache function for a fourth slice in the plurality of slices, setting a second bit in the first bitmap corresponding to the fourth slice to disable the cache function for the fourth slice. 8. The method of claim 1 , further comprising: in response to receiving a third command to invalidate a second cache page corresponding to a fifth slice in the plurality of slices, setting a third bit in the second bitmap corresponding to the fifth slice to invalidate the second cache page. 9. The method of claim 1 , further comprising: in response to the I/O request, storing data in the first cache page in the plurality of cache pages corresponding to the first slice, after the data is stored in the first cache page, determining that the cache function for the first slice has become disabled, and in response to determining that cache function for the first slice has become disabled, releasing the data in first cache page. 10. A device for managing a storage system, comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform actions comprising: in response to receiving an Input/Output (I/O) request for a first slice of a logic storage unit in a storage system, obtaining a first bitmap with respect to the logic storage unit, the logic storage unit being divided into a plurality of slices including the first slice, and one bit in the first bitmap indicating whether a cache function is enabled for a respective one of the plurality of slices; determining, based on the first bitmap, whether the cache function is enabled for the first slice; and in response to determining that the cache function is enabled for the first slice, processing the I/O request at least with a cache in the storage system; wherein the cache comprises a plurality of cache pages, and wherein processing the I/O request at least with the cache comprises: obtaining a second bitmap with respect to the logic storage unit, one bit in the second bitmap indicating whether one of the plurality of cache pages corresponding to a respective one of the plurality of slices is valid or not; determining, based on the second bitmap, whether a first cache page in the plurality of cache pages corresponding to the first slice is valid or not; and in response to determining that the first cache page is invalid, forwarding the I/O request to the logic storage unit for processing. 11. The device of claim 10 , wherein the actions further comprise: in response to determining that the cache function is disabled for a different slice, forwarding an I/O request for the different slice to the logic storage unit for processing. 12. The device of claim 10 , wherein processing the I/O request at least with the cache comprises: in response to determining that the first cache page is valid, increasing a reference count for the first cache page; and in response to the reference count exceeding a predetermined threshold, caching a first data associated with the I/O request in the first cache page. 13. The device of claim 12 , wherein caching the first data in the first cache page comprises: obtaining a third bitmap with respect to the logic storage unit, one bit in the third bitmap indicating whether data cached in the cache for a respective one of the plurality of slices is dirty or not; setting the third bitmap to indicate that data associated with the first slice is dirty; and caching the first data in the first cache page. 14. The device of claim 13 , wherein the actions further comprise: determining, based on the third bitmap, whether a second data cached in the cache for a second slice in the plurality of slices is dirty data; in response to determining that the second data is dirty, flushing the second data into the second slice; and setting the third bitmap to indicate that data associated with the second slice is clean. 15. The device of claim 10 , wherein the actions further comprise: in response to receiving a first command to enable the cache function for a third slice in the plurality of slices, setting a first bit in the first bitmap corresponding to the third slice to enable the cache function for the third slice. 16. The device of claim 10 , wherein
Single storage device · CPC title
using selective caching, e.g. bypass · CPC title
Monitoring involving counting · CPC title
at device level, e.g. emulation of a storage device or system · CPC title
Performance improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.