Storage system and method for thin provisioning

US10901620B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10901620-B2
Application numberUS-201916365562-A
CountryUS
Kind codeB2
Filing dateMar 26, 2019
Priority dateJan 5, 2017
Publication dateJan 26, 2021
Grant dateJan 26, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A storage system and method for thin provisioning are provided. In one embodiment, a storage system is provided comprising a memory and a controller. The controller is configured to provide a logical exported capacity of the memory to a host, wherein the logical exported capacity is greater than an actual storage capacity of the memory; receive a command from the host to write data to a logical address; determine whether there is available actual storage capacity in the memory to write the data; and write the data to a physical address in memory that corresponds to the logical address only if it is determined that there is available actual storage capacity in the memory to write the data. Other embodiments are possible, and each of the embodiments can be used alone or together in combination.

First claim

Opening claim text (preview).

What is claimed is: 1. A storage system comprising: a memory; and a controller coupled to the memory, wherein the controller is configured to: receive a command from a host to write data; determine, based on a logical block address (LBA) associated with the command and a size of the data, whether a range of logical block addresses for the command exceeds a logical exported capacity of the storage system; when the range of logical block addresses for the command does not exceed the logical exported capacity, determine whether a storage valid count associated with the storage system is impacted by the command; when the storage valid count is not impacted, map the LBA associated with the command to a physical block address of the storage system; when the range of logical block addresses for the command does not exceed the logical exported capacity, cause the data to be written to the physical block address of the storage system; and when the range of logical block addresses for the command exceeds the logical exported capacity, prevent the data from being written to the physical block address of the storage system. 2. The storage system of claim 1 , wherein the controller is configured to: when the storage valid count is impacted, update, based on the size of the data, the storage valid count; determine, based on the updated storage valid count, whether an actual storage capacity is sufficient to write the data; and when the actual storage capacity is sufficient to write the data, map the LBA associated with the command to the physical block address. 3. The storage system of claim 2 , wherein the controller is configured to: when the actual storage capacity is insufficient to write the data, reject the command. 4. The storage system of claim 1 , wherein the controller is configured to: determine whether the LBA associated with the command is unavailable; and when the LBA associated with the command is unavailable, determine that the storage valid count is not impacted. 5. The storage system of claim 4 , wherein the controller is configured to: determine that the storage valid count is impacted, when the LBA associated with the command is available. 6. The storage system of claim 1 , wherein the logical exported capacity is greater than an actual storage capacity of the storage system. 7. The storage system of claim 1 , wherein the controller is configured to: receive a second command from the host to discard data; determine whether an LBA associated with the received second command is unavailable; after receiving the second command, decrease the storage valid count by a size of the data to discard, when the LBA associated with the received second command is unavailable; and after receiving the second command, refrain from changing the storage valid count by the size of the data to discard, when the LBA associated with the received second command is available. 8. The storage system of claim 7 , wherein the controller is configured to: determine whether the LBA associated with the second command exceeds the logical exported capacity of the storage system; when the LBA associated with the second command does not exceed the logical exported capacity: decrease the storage valid count by the size of the data to discard, when the LBA associated with the second command is unavailable; refrain from changing the storage valid count by the size of the data to discard, when the LBA associated with the second command is available; and execute the second command; and when the LBA associated with the second command exceeds the logical exported capacity: refrain from decreasing the storage valid count; and refrain from executing the second command. 9. The storage system of claim 1 , wherein the logical exported capacity is greater than an actual storage capacity of the storage system, and wherein the logical exported capacity comprises the actual storage capacity of the storage system and a capacity for overprovisioning. 10. A computer-implemented method, comprising: receiving a command from a host to write data to a storage system; determining, based on a logical block address (LBA) associated with the command and a size of the data, whether a range of logical block addresses for the command exceeds a logical exported capacity of the storage system; in response to determining that the range of logical block addresses for the command does not exceed the logical exported capacity, determining whether a storage valid count associated with the storage system is impacted by the command; in response to determining that the storage valid count is not impacted, mapping the LBA associated with the command to a physical block address of the storage system; when the range of logical block addresses for the command does not exceed the logical exported capacity, causing the data to be written to the physical block address of the storage system; and when the range of logical block addresses for the command exceeds the logical exported capacity, preventing the data from being written to the physical block address of the storage system. 11. The computer-implemented method of claim 10 , comprising: in response to determining that the storage valid count is impacted, updating, based on the size of the data, the storage valid count; and determining, based on the updated storage valid count, whether an actual storage capacity is sufficient to write the data, wherein the mapping comprises, in response to determining that the actual storage capacity is sufficient to write the data, mapping the LBA associated with the command to the physical block address. 12. The computer-implemented method of claim 11 , comprising: in response to determining that the actual storage capacity is insufficient to write the data, rejecting the command. 13. The computer-implemented method of claim 10 , comprising: determining whether the LBA associated with the command is unavailable; and in response to determining that the LBA associated with the command is unavailable, determining that the storage valid count is not impacted. 14. The computer-implemented method of claim 13 , comprising: in response to determining that the LBA associated with the command is available, determining that the storage valid count is impacted. 15. The computer-implemented method of claim 10 , wherein the logical exported capacity is greater than an actual storage capacity of the storage system. 16. The computer-implemented method of claim 10 , comprising: receiving a second command from the host to discard data; determining whether an LBA associated with the received second command is unavailable; after receiving the second command, decreasing the storage valid count by a size of the data to discard, when the LBA associated with the received second command is unavailable; and after receiving the second command, refraining from updating the storage valid count by the size of the data to discard, when the LBA associated with the received second command is available. 17. The computer-implemented method of claim 16 , comprising: determining whether the LBA associated with the second command exceeds the logical exported capacity of the storage system; when the LBA associated with the second command does not exceed the logical exported capacity: executing the second command; and when the LBA associated with the second command exceeds the logical exported capacity: refraining from decreasing the storage valid count; and refraining from executing the second command, where

Assignees

Inventors

Classifications

  • by allocating resources to storage systems · CPC title

  • Logical to physical mapping or translation of blocks or pages · CPC title

  • by facilitating the interaction with a user or administrator · CPC title

  • in hierarchically structured memory systems, e.g. virtual memory systems · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10901620B2 cover?
A storage system and method for thin provisioning are provided. In one embodiment, a storage system is provided comprising a memory and a controller. The controller is configured to provide a logical exported capacity of the memory to a host, wherein the logical exported capacity is greater than an actual storage capacity of the memory; receive a command from the host to write data to a logical…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0608. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 26 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).