Systems and methods for storage metadata management
First Claim
Patent Images
1. A method, comprising:
- receiving a storage request comprising a storage capacity request for an object;
reserving logical identifiers of a logical address space corresponding to a non-volatile storage device for the object in response to receiving the storage request, wherein a storage capacity of the reserved logical identifiers exceeds a capacity requirement of the object identified by the storage capacity request;
storing data of the object on the non-volatile storage device in a format configured to bind the stored data to respective logical identifiers reserved for the object;
storing metadata with the data of the object, wherein the metadata comprises logical identifiers of the logical identifiers reserved for the object that are bound to the stored data;
determining logical identifier status information by use of the metadata stored with the stored data, wherein the logical identifier status information comprises information determined using the metadata and the information indicates;
whether the logical identifiers that are bound to the stored data exist in a forward map,anda physical storage size corresponding to the logical identifiers that are bound to the stored data; and
determining a physical occupancy of the object on the non-volatile storage device by use of the logical identifier status information, wherein the physical occupancy of the object is different than the storage capacity of the reserved logical identifiers.
6 Assignments
0 Petitions
Accused Products
Abstract
A storage layer may be configured to over-provision logical storage resources to objects. The storage layer may provision the resources in response to, inter alia, a request to open and/or create a zero-length file. The storage layer may be further configured to store data of the objects in a contextual format configured to associate the data with respective logical identifiers. The storage layer may determine an actual, storage size of the object based on the associations stored on the stored associations. Storage clients may rely on the storage layer to determine the size of the object and, as such, may defer and/or eliminate updates to persistent metadata.
347 Citations
24 Claims
-
1. A method, comprising:
-
receiving a storage request comprising a storage capacity request for an object; reserving logical identifiers of a logical address space corresponding to a non-volatile storage device for the object in response to receiving the storage request, wherein a storage capacity of the reserved logical identifiers exceeds a capacity requirement of the object identified by the storage capacity request; storing data of the object on the non-volatile storage device in a format configured to bind the stored data to respective logical identifiers reserved for the object; storing metadata with the data of the object, wherein the metadata comprises logical identifiers of the logical identifiers reserved for the object that are bound to the stored data; determining logical identifier status information by use of the metadata stored with the stored data, wherein the logical identifier status information comprises information determined using the metadata and the information indicates; whether the logical identifiers that are bound to the stored data exist in a forward map, and a physical storage size corresponding to the logical identifiers that are bound to the stored data; and determining a physical occupancy of the object on the non-volatile storage device by use of the logical identifier status information, wherein the physical occupancy of the object is different than the storage capacity of the reserved logical identifiers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising:
-
a storage request receiver module configured to receive a storage request comprising a storage capacity request for an entity; an allocation module configured to designate logical block addresses of a logical address space of a non-volatile storage device for use by the entity in response to receiving the storage request, wherein a storage capacity represented by the designated logical block addresses exceeds a size of the entity identified by the storage capacity request; and a storage layer configured to; store data of the entity on respective storage locations of the non-volatile storage device with metadata comprising logical block addresses of the logical block addresses designated for use by the entity that are bound to the stored data; determine logical identifier status information by use of the metadata stored with the stored data, wherein the logical identifier status information comprises information determined using the metadata and the information indicates; whether the logical block addresses that are bound to the stored data exist in a forward map, whether the logical block addresses that are bound to the stored data are used to reference stored data on the non-volatile storage device, physical storage resources occupied by the logical block addresses that are bound to the stored data, and a physical storage size corresponding to the logical block addresses that are bound to the stored data; determine a physical occupancy of the entity by use of the logical identifier status information, wherein the physical occupancy of the entity is different than the storage capacity represented by the designated logical block addresses; and indicate physical storage resources in use by a subset of the designated logical block addresses to reference data of the entity; wherein the storage request receiver module, the allocation module, and the storage layer comprise one or more of logic hardware and a non-transitory computer readable storage medium storing computer executable code. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. An apparatus comprising:
-
means for receiving a storage request comprising a storage capacity request for a file; means for reserving identifiers of a logical address space of a non-volatile storage medium for the file in response to receiving the storage request, wherein a storage capacity corresponding to the reserved identifiers exceeds a storage requirement of the file identified by the storage capacity request; means for storing metadata on the non-volatile storage medium with data of the file, the metadata configured to tie the data of the file stored on the non-volatile storage medium with respective identifiers reserved to the file, to determine logical identifier status information by use of the metadata stored with the data, and to determine a physical occupancy of the file by use of the logical identifier status information, wherein the physical occupancy of the file is different than the storage capacity corresponding to the reserved identifiers, and the storage capacity of the reserved identifiers is determined by use of the metadata, wherein the logical identifier status information comprises information determined using the metadata and the information indicates; whether the identifiers that are tied to the data exist in a forward map, whether the identifiers that are tied to the data are used to reference stored data on the non-volatile storage medium, physical storage resources occupied by the identifiers that are tied to the data, and a physical storage size corresponding to the identifiers that are tied to the data; and means for restoring file system metadata pertaining to the file based on a physical storage occupancy of the reserved identifiers determined by the storage layer; wherein the means for receiving a storage request, the means for receiving identifiers, the means for storing metadata, and the means for restoring comprise one or more of logic hardware and a non-transitory computer readable storage medium storing computer executable code. - View Dependent Claims (24)
-
Specification