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 through a storage interface, the logical address space 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; and
referencing the index to determine whether a client request to allocate logical capacity in the logical address space can be satisfied based on allocations of the LIDs of the logical address space, wherein the client request identifies a set of LIDs in the logical address space, and wherein determining whether the client request can be satisfied comprises determining whether one or more LIDs of the identified set of LIDs are in the index.
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.
-
Citations
27 Claims
-
1. A method for allocating non-volatile data storage, comprising:
-
presenting a logical address space to a storage client through a storage interface, the logical address space 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; and referencing the index to determine whether a client request to allocate logical capacity in the logical address space can be satisfied based on allocations of the LIDs of the logical address space, wherein the client request identifies a set of LIDs in the logical address space, and wherein determining whether the client request can be satisfied comprises determining whether one or more LIDs of the identified set of LIDs are in the index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for allocating non-volatile storage, comprising:
-
presenting a logical address space of a non-volatile storage device to a client, the logical address space comprising a plurality of logical identifiers (LIDs), the LIDs being independent of storage locations of the non-volatile storage device, wherein a physical capacity corresponding to the LIDs exceeds a physical storage capacity of the non-volatile storage device, wherein each LID is capable of being mapped to any of the storage locations of the non-volatile storage device; receiving from the client a request for storage capacity, wherein the request comprises a first LID to allocate; and providing a second, different LID in the logical address space to the client in response to determining that the first LID is allocated.
-
-
15. 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, the request specifying a LID to allocate to the client; selecting a different LID in the logical address space to allocate to the client in response to determining that the specified LID is allocated; 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.
-
-
16. A method for allocating non-volatile storage, the method comprising:
-
maintaining an index pertaining to allocation operations within a logical address space of a solid-state storage device and to storage operations of the solid-state storage device, wherein the allocation operations within the logical address space pertain to allocating logical identifiers of the logical address space to respective storage clients; accessing the index to manage storage operations of the solid-state storage device; and accessing the index to manage an allocated logical capacity supported by the solid-state storage device, wherein a logical identifier included in a client request to allocate logical capacity is determined to be allocated in response to determining that the logical identifier is in the index. - View Dependent Claims (17, 18)
-
-
19. An apparatus, comprising:
-
a logical space management module configured to present a logical address space of a non-volatile storage device that exceeds a physical storage capacity of the non-volatile storage device, the logical address space comprising a plurality of logical identifiers (LIDs) that exceed a physical storage capacity of the non-volatile storage device; a mapping module configured to maintain an index configured to map LIDs in the logical address space to storage locations of the non-volatile storage device; and an allocation module configured to respond to a client request for physical storage capacity by referencing the index to determine available physical storage capacity of the non-volatile storage device, wherein the client request comprises one or more logical identifiers, and wherein the allocation module is further configured to determine whether the client request can be satisfied by determining whether the one or more logical identifiers are allocated. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification