GENERALIZED STORAGE VIRTUALIZATION INTERFACE
First Claim
1. An apparatus, comprising:
- a storage manager that stores data on a non-transitory storage medium in response to storage requests of a client;
a translation layer that maintains a logical address space corresponding to the non-transitory storage medium comprising associations between data stored on the non-transitory storage medium and respective logical addresses in the logical address space; and
a data virtualization interface having a plurality of functions available to the client, the functions configured to implement storage management operations by changing associations between data stored on the non-transitory storage medium and logical addresses of the logical address space.
6 Assignments
0 Petitions
Accused Products
Abstract
A storage system implements a sparse, thinly provisioned logical-to-physical translation layer. The storage system may perform operations to modify logical-to-physical mappings, including creating, removing, and/or modifying any-to-any and/or many-to-one mappings between logical identifiers and stored data (logical manipulation operations). The storage system records persistent metadata to render the logical manipulation (LM) operations persistent and crash-safe. The storage system may provide access to LM functionality through a generalized LM interface. Clients may leverage the LM interface to efficiently implement higher-level functionality and/or offload LM operations to the storage system.
161 Citations
24 Claims
-
1. An apparatus, comprising:
-
a storage manager that stores data on a non-transitory storage medium in response to storage requests of a client; a translation layer that maintains a logical address space corresponding to the non-transitory storage medium comprising associations between data stored on the non-transitory storage medium and respective logical addresses in the logical address space; and a data virtualization interface having a plurality of functions available to the client, the functions configured to implement storage management operations by changing associations between data stored on the non-transitory storage medium and logical addresses of the logical address space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented storage system, comprising:
-
a storage interface having a plurality of API functions for storing data blocks on a physical storage resource, such that the stored data blocks are mapped to respective identifiers of a logical address space; and a uniform logical manipulation interface available to a client, the uniform logical manipulation interface having a plurality of API functions for modifying logical-to-physical mappings pertaining to the stored data blocks, the uniform logical manipulation interface comprising an API function to map a stored data block mapped to a first identifier of the logical address space to a second identifier of the logical address space. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method, comprising:
-
maintaining metadata in a persistent log to translate logical identifiers of a front-end address space of a storage resource to data segments stored on the storage resource; and exposing a generalized interface to change translations between logical identifiers of the front-end address space and the data segments stored on the non-volatile storage device. - View Dependent Claims (19, 20)
-
-
21. An apparatus, comprising:
-
a client configured to issue requests to a storage layer to store data associated with respective addresses of a logical address space of a non-volatile storage medium, the logical address space presented to the client, wherein the storage layer makes primitive storage operations for data stored on the non-volatile storage medium available to the client, the primitive storage operations configured to modify associations between the logical address space and the data stored on the non-volatile storage medium, and wherein the client is configured to implement storage management operations by use of the primitive storage operations made available by the storage layer. - View Dependent Claims (22, 23, 24)
-
Specification