Merging containers in a multi-container system
First Claim
Patent Images
1. A method, comprising:
- receiving a merge request to merge a first logical container and a second logical container, wherein the first logical container includes a first data object and the second logical container includes a second data object, wherein each logical container comprises at least one block wherein the first and second data objects are stored at a block level in the first and second logical containers respectively in an existing file system whose internal block fragmentation dictates the size of each block;
merging the first and second data objects of the first and second logical containers into a target container, wherein the target container comprises at least one block having a plurality of extents to store data objects, wherein the first and second data objects are stored at an extent level within the target container after said merging, wherein the extent is a smaller unit of storage space than the block, and wherein merging the data comprises separately referencing the first logical container, the second logical container, the target container, the first data object, and the second data object in response to the merge request;
updating a container map to indicate that the first data object and the second data object are stored in the target container, wherein the container map includes a plurality of mapping entries that map filenames to data object identifiers, wherein each of the data object identifiers identifies a corresponding data object and includes;
a container identifier that specifies a logical container in which that corresponding data object is stored; and
an object index value used to identify which of one or more data objects stored in that logical container is that corresponding data object; and
updating an object map stored within the target container to indicate extent locations within the target container of the first data object and the second data object, wherein the object map comprises a listing of a plurality of data objects stored in the target container and extent locations within the target container where the plurality of data objects are stored.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method for merging the data of a first container and a second container into a target container that includes at least one block having a plurality of extents to store data objects. The apparatus may include a storage sever coupled to a plurality of storage devices. The storage server is configured to merge multiple data objects of the plurality of containers that store a data object per each container into a target container that stores multiple data objects within the target container.
-
Citations
27 Claims
-
1. A method, comprising:
-
receiving a merge request to merge a first logical container and a second logical container, wherein the first logical container includes a first data object and the second logical container includes a second data object, wherein each logical container comprises at least one block wherein the first and second data objects are stored at a block level in the first and second logical containers respectively in an existing file system whose internal block fragmentation dictates the size of each block; merging the first and second data objects of the first and second logical containers into a target container, wherein the target container comprises at least one block having a plurality of extents to store data objects, wherein the first and second data objects are stored at an extent level within the target container after said merging, wherein the extent is a smaller unit of storage space than the block, and wherein merging the data comprises separately referencing the first logical container, the second logical container, the target container, the first data object, and the second data object in response to the merge request; updating a container map to indicate that the first data object and the second data object are stored in the target container, wherein the container map includes a plurality of mapping entries that map filenames to data object identifiers, wherein each of the data object identifiers identifies a corresponding data object and includes; a container identifier that specifies a logical container in which that corresponding data object is stored; and an object index value used to identify which of one or more data objects stored in that logical container is that corresponding data object; and updating an object map stored within the target container to indicate extent locations within the target container of the first data object and the second data object, wherein the object map comprises a listing of a plurality of data objects stored in the target container and extent locations within the target container where the plurality of data objects are stored. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. 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; and a memory storing instructions which configure the processor to merge data of a first logical container and a second logical container into a target container that includes at least one block that includes a plurality of extents to store data objects, by; migrating a first data object within the first logical container to a first physical location of the target container; migrating a second data object within the second logical container to a second physical location of the target container, wherein, before the merge, the first and second data objects are stored at a block level in the first and second logical containers respectively in an existing file system whose internal block fragmentation dictates the size of each block, and wherein, after the merge, the first and second data objects are stored at an extent level within the target container after said merging, wherein the extent is a smaller unit of storage space than the block; updating a container map to indicate that the first data object and the second data object are stored in the target container, wherein the container map includes a plurality of mapping entries that map filenames to data object identifiers, wherein each of the data object identifiers identifies a corresponding data object and includes; a container identifier to specify a logical container in which that corresponding data object is stored; and an object index value used to identify which of one or more data objects stored in that logical container is that corresponding data object; and updating an object map stored within the target container to indicate extent locations within the target container of the first data object and the second data object, wherein the object map comprises a listing of a plurality of data objects stored in the target container and extent locations within the target container where the plurality of data objects are stored. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. An article of manufacture comprising one or more non-transitory storage media storing instructions which, when executed by a system, cause the system to perform operations comprising:
-
identifying within a file system a first logical container and a second logical container for merging, wherein the second logical container includes at least one block and has some empty storage space, and wherein each block comprises a plurality of extents to store data objects; referencing the physical location of data objects stored at a block level in the first and second logical containers in the file system whose internal block fragmentation dictates the size of each block; and migrating the data object stored in the first logical container into the empty storage space of the second logical container, wherein the data objects stored in the second logical container are stored at an extent level within the second logical container after said migrating, wherein the extent is a smaller unit of storage space than the block, and wherein migrating further comprises; updating an object map stored within the second logical container, wherein the object map comprises a listing of a plurality of data objects stored in the second logical container and extent locations within the second logical container where the plurality of data objects are stored; and updating a container map to indicate that the data object is stored in the second logical container, wherein the container map includes a plurality of mapping entries that map filenames to data object identifiers, wherein each of the data object identifiers identifies a corresponding data object and includes; a container identifier that specifies a logical container in which that corresponding data object is stored; and an object index value used to identify which of the one or more data objects stored in that logical container is that corresponding data object. - View Dependent Claims (23, 24)
-
-
25. An apparatus, comprising:
a storage server to store a plurality of data objects in a file system comprising a processor coupled to a memory, wherein the plurality of data objects are stored at a block level in the file system whose internal block fragmentation dictates the size of each block, wherein the storage server is configured to merge the plurality of data objects into a target container from a plurality of logical containers that store the plurality of data objects, one data object per each logical container, wherein the target container comprises at least one block, and wherein each block of the target container comprises a plurality of extents to store data objects, wherein the plurality of data objects are stored at an extent level after the merge, wherein the extent is a smaller unit of storage space than the block, wherein the target container contains an object map, wherein the object map comprises a listing of a plurality of data objects stored in the target container and extent locations within the target container where the plurality of data objects are stored, and wherein the storage server is further configured to update a container map to indicate that the merged plurality of data objects are stored in the target container, wherein the container map includes a plurality of mapping entries that map filenames to data object identifiers, wherein each of the data object identifiers identifies a corresponding data object and includes; a container identifier that specifies a logical container in which that corresponding data object is stored, and an object index value used to identify which of the one or more data objects stored in that logical container is that corresponding data object. - View Dependent Claims (26, 27)
Specification