Merging containers in a multi-container system
First Claim
Patent Images
1. A method of operating a storage server, comprising:
- receiving an access request from a client for a file that corresponds to a particular data object stored in a one of a plurality of logical containers of an existing file system whose internal block fragmentation dictates the size of each block, wherein each of the plurality of logical containers comprises an object map stored in the respective logical container, wherein each of the object maps comprises a listing of a plurality of data object stored collectively in the respective container and locations within the respective logical container where the plurality of data objects are stored, wherein each of the plurality of logical containers comprises at least one block, and wherein each block of the respective logical container comprises a plurality of extents to store data objects, wherein the extent is a smaller unit of storage space than the block;
determining a physical location of the particular data object in response to the access request comprising;
accessing a container map that has a plurality of mapping entries that map filenames to data object identifiers to determine which of the plurality of logical containers stores the particular data object, wherein each of the data object identifiers includes a container identifier that specifies the respective logical container in which the respective data object is stored and an object index that is used to find a range of extents in which the respective data object is stored within the respective logical container;
accessing the object map stored in the determined logical container to find the location within the identified logical container where the particular data object is stored using the object index of the respective data object identifier, wherein the location specifies the range of extents within the identified logical container that stores the particular data object; and
accessing the specified range of extents within the identified logical container to retrieve the particular data object within the logical container, wherein the particular data object includes a-the physical location of where the particular data object is stored; and
accessing the determined physical location of the particular data object to retrieve the data stored at the determined physical location.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method for referencing physical location of data objects stored within a logical container. The method may include receiving an access request from a client for a particular data object stored in a logical container having a plurality of data objects stored collectively in the logical container, and referencing a physical location of the particular data object within the logical container in response to the access request. The logical container includes at least one block, and each block of the logical container includes multiple extents to store data from at least one data object. The block is a fundamental unit of storage space.
112 Citations
13 Claims
-
1. A method of operating a storage server, comprising:
-
receiving an access request from a client for a file that corresponds to a particular data object stored in a one of a plurality of logical containers of an existing file system whose internal block fragmentation dictates the size of each block, wherein each of the plurality of logical containers comprises an object map stored in the respective logical container, wherein each of the object maps comprises a listing of a plurality of data object stored collectively in the respective container and locations within the respective logical container where the plurality of data objects are stored, wherein each of the plurality of logical containers comprises at least one block, and wherein each block of the respective logical container comprises a plurality of extents to store data objects, wherein the extent is a smaller unit of storage space than the block;
determining a physical location of the particular data object in response to the access request comprising;accessing a container map that has a plurality of mapping entries that map filenames to data object identifiers to determine which of the plurality of logical containers stores the particular data object, wherein each of the data object identifiers includes a container identifier that specifies the respective logical container in which the respective data object is stored and an object index that is used to find a range of extents in which the respective data object is stored within the respective logical container; accessing the object map stored in the determined logical container to find the location within the identified logical container where the particular data object is stored using the object index of the respective data object identifier, wherein the location specifies the range of extents within the identified logical container that stores the particular data object; and accessing the specified range of extents within the identified logical container to retrieve the particular data object within the logical container, wherein the particular data object includes a-the physical location of where the particular data object is stored; and
accessing the determined physical location of the particular data object to retrieve the data stored at the determined physical location. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An article of manufacture comprising one or more storage media storing instructions which, when executed by a system, cause the system to perform operations comprising:
-
receiving an access request from a client for a file that corresponds to a particular data object stored in a one of a plurality of logical containers of an existing file system whose internal block fragmentation dictates the size of each block, wherein each of the plurality of logical containers comprises an object map stored in the respective logical container, wherein each of the object maps comprises a listing of a plurality of data object stored collectively in the respective container and locations within the respective logical container where the plurality of data objects are stored, wherein each of the plurality of logical containers comprises at least one block, and wherein each block of the respective logical container comprises a plurality of extents to store data objects, wherein the extent is a smaller unit of storage space than the block; determining a physical location of the particular data object in response to the access request comprising; accessing a container map that has a plurality of mapping entries that map filenames to data object identifiers to determine which of the plurality of logical containers stores the particular data object, wherein each of the data object identifiers includes a container identifier that specifies the respective logical container in which the respective data object is stored and an object index that is used to find a range of extents in which the respective data object is stored within the respective logical container; accessing the object map stored in the determined logical container to find the location within the identified logical container where the particular data object is stored, wherein the location specifies the range of extents within the identified logical container that stores the particular data object; and accessing the specified range of extents within the identified logical container to retrieve the particular data object within the logical container, wherein the particular data object includes the physical location of where the particular data object is stored; and
accessing the determined physical location of the particular data object to retrieve the data stored at the determined physical location. - View Dependent Claims (7, 8, 9)
-
-
10. A storage server, comprising:
-
a processor; a first communication interface through which to communicate with a plurality of storage devices; a second communication interface through which to communicate with a client of the storage server; a file system; a memory storing instructions which configure the processor to perform the following operations; receiving an access request from a client for a file that corresponds to a particular data object stored in a one of a plurality of logical containers of an existing file system whose internal block fragmentation dictates the size of each block, wherein each of the plurality of logical containers comprises an object map stored in the respective logical container, wherein each of the object maps comprises a listing of a plurality of data object stored collectively in the respective container and locations within the respective logical container where the plurality of data objects are stored, wherein each of the plurality of logical containers comprises at least one block, and wherein each block of the respective logical container comprises a plurality of extents to store data objects, wherein the extent is a smaller unit of storage space than the block;
determining a physical location of the particular data object in response to the access request comprising;accessing a container map that has a plurality of mapping entries that map filenames to data object identifiers to determine which of the plurality of logical containers stores the particular data object, wherein each of the data object identifiers includes a container identifier that specifies the respective logical container in which the respective data object is stored and an object index that is used to find a range of extents in which the respective data object is stored within the respective logical container; accessing the object map stored in the determined logical container to find the location within the identified logical container where the particular data object is stored, wherein the location specifies the range of extents within the identified logical container that stores the particular data object; and accessing the specified range of extents within the identified logical container to retrieve the particular data object within the logical container, wherein the particular data object includes the physical location of where the particular data object is stored; and
accessing the determined physical location of the particular data object to retrieve the data stored at the determined physical location. - View Dependent Claims (11, 12, 13)
-
Specification