APPARATUS, SYSTEM, AND METHOD FOR ALLOCATING STORAGE
First Claim
1. A method for allocating non-volatile data storage, comprising:
- presenting a logical address space to a storage client comprising a plurality of logical identifiers (LIDs);
maintaining an index associating LIDs in the logical address space with respective storage locations on the non-volatile storage device;
referencing the index to determine whether a client request to allocate logical capacity in the logical address space can be satisfied; and
providing a response indicating whether the client request can be satisfied.
10 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for allocating non-volatile storage. The storage device may present a logical address, which may exceed a physical storage capacity of the device. The storage device may allocate logical capacity in the logical address space. An allocation request may be allowed when there is sufficient unassigned and/or unallocated logical capacity to satisfy the request. Data may be stored on the non-volatile storage device by requesting physical storage capacity. A physical storage request, such as a storage request or physical storage reservation, when there is sufficient available physical storage capacity to satisfy the request. The device may maintain an index to associate logical identifiers (LIDs) in the logical address space with storage locations on the storage device. This index may be used to make logical capacity allocations and/or to manage physical storage space.
318 Citations
28 Claims
-
1. A method for allocating non-volatile data storage, comprising:
-
presenting a logical address space to a storage client comprising a plurality of logical identifiers (LIDs); maintaining an index associating LIDs in the logical address space with respective storage locations on the non-volatile storage device; referencing the index to determine whether a client request to allocate logical capacity in the logical address space can be satisfied; and providing a response indicating whether the client request can be satisfied. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for managing physical capacity in a non-volatile storage, comprising:
-
presenting by a non-volatile storage device, a logical address space comprising a plurality of logical identifiers (LIDs), the logical address space exceeding a physical storage capacity of the non-volatile storage device; maintaining an index associating LIDs in the logical address space with storage locations of the non-volatile storage device; and responding to a client request for physical storage capacity by referencing the index to determine available physical storage capacity of the solid-state storage device. - View Dependent Claims (16, 17, 20, 21, 22, 23)
-
-
18. The method of clam 17, further comprising:
updating the indicator of the available physical storage capacity of the non-volatile storage request in response to a storage operation comprising one of; a storage operation storing data associated with a physical storage capacity reservation, wherein the storing does not require a portion of the associated physical storage capacity reservation; a storage operation canceling a physical storage capacity reservation; and a storage operation canceling a portion of a physical storage capacity reservation.
-
19. The method of clam 15, further comprising:
updating an association of a LID and a storage location on the non-volatile storage device in response to one of; moving data stored at the storage location to a different storage location of the non-volatile storage device; the data stored at the storage location being identical to data stored at a second storage location, the updating comprising associating the LID with the second storage location; and one or more storage locations associated to one or more LIDs are remapped to one or more different LIDs.
-
24. A method for allocating non-volatile storage, comprising:
-
presenting by a non-volatile storage device, a logical address space comprising a plurality of logical identifiers (LIDs) to a client, the LIDs being independent of storage locations of the non-volatile storage device and exceeding a physical storage capacity of the non-volatile storage device; receiving from the client a request for storage capacity; selecting a LID in the logical address space to allocate to the client in response to the request; reserving physical storage capacity on the non-volatile storage device for the allocated LID; and providing the LID to the client.
-
-
25. A non-transitory storage medium comprising machine-readable instructions configured to cause a machine to perform a method for allocating non-volatile storage, the method comprising:
-
presenting by a non-volatile storage device, a logical address space comprising a plurality of logical identifiers (LIDs) to a client, the LIDs being independent of storage locations of the non-volatile storage device and exceeding a physical storage capacity of the non-volatile storage device; receiving from the client a request to store data on the non-volatile storage device; selecting a LID in the logical address space to allocate to the client in response to the request; storing data of the request on a storage location of the non-volatile storage device; and associating the LID allocated to the client with the storage location comprising the data of the request.
-
-
26. A method for allocating non-volatile storage a solid-state storage device, the method comprising:
-
maintaining an index pertaining to allocation operations performed on a solid-state storage device and to storage operations of the solid-state storage device; accessing the index to manage storage operations of the solid-state storage device; and accessing the index to manage a allocated logical capacity supported by the solid-state storage device. - View Dependent Claims (27, 28)
-
Specification