Data containerization for reducing unused space in a file system
First Claim
1. A machine-readable storage medium including instructions that when executed by a machine perform a method, comprising:
- receiving data to be stored in a file system, wherein the data comprises a plurality of data objects; and
collectively data packing at least two of the plurality of data objects together in at least one block of a logical container in the file system, wherein the block is a fundamental unit of storage space of the file system, and wherein each block of the logical container comprises a plurality of extents to store data from at least one data object of the plurality of data objects, wherein the extent is a smaller unit of storage space than the block, wherein receiving the data to be stored comprises;
receiving a first data object of the plurality of data objects to be stored in a first block of the logical container; and
receiving a second data object of the plurality of data objects to be stored in the first block of the logical container, and wherein collectively data packing comprises;
storing the first data object in a portion of the plurality of extents of the first block, wherein storing the first data object comprises storing the first data object in the portion of the plurality of extents of the first block as if the portion of the plurality of extents of the first block were a single container in the file system having a current block size that is smaller than the block size according to an internal block fragmentation of the file system; and
storing the second data object in any remaining extents of the first block of the logical container that do not contain data of the first data object.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method for containerization of multiple data objects within a block of a single container. The apparatus and method may pack multiple data objects together in a block of a logical container in a file system. The method may include receiving data in the form of multiple data objects to be stored in a file system, and collectively data packing the multiple data objects together in at least one block of a logical container in the file system. The block is a fundamental unit of storage space of the file system, and each block of the logical container includes multiple extents to store data from at least one data object of the multiple objects. The apparatus may include a plurality of storage devices coupled to a storage server. The storage server is configured to store the multiple data objects in at least one block of the logical container in the file system. Some data objects may be stored in multiple extents of one or more blocks depending on the size of the data object.
-
Citations
32 Claims
-
1. A machine-readable storage medium including instructions that when executed by a machine perform a method, comprising:
-
receiving data to be stored in a file system, wherein the data comprises a plurality of data objects; and collectively data packing at least two of the plurality of data objects together in at least one block of a logical container in the file system, wherein the block is a fundamental unit of storage space of the file system, and wherein each block of the logical container comprises a plurality of extents to store data from at least one data object of the plurality of data objects, wherein the extent is a smaller unit of storage space than the block, wherein receiving the data to be stored comprises; receiving a first data object of the plurality of data objects to be stored in a first block of the logical container; and receiving a second data object of the plurality of data objects to be stored in the first block of the logical container, and wherein collectively data packing comprises; storing the first data object in a portion of the plurality of extents of the first block, wherein storing the first data object comprises storing the first data object in the portion of the plurality of extents of the first block as if the portion of the plurality of extents of the first block were a single container in the file system having a current block size that is smaller than the block size according to an internal block fragmentation of the file system; and storing the second data object in any remaining extents of the first block of the logical container that do not contain data of the first data object. - View Dependent Claims (2, 3)
-
-
4. A method of operating a storage server, the method comprising:
-
receiving data to be stored in a file system, wherein the data comprises a plurality of data objects; and collectively data packing the plurality of data objects together in at least one block of a logical container in the file system, wherein the block is a fundamental unit of storage space of the file system, and wherein each block of the logical container comprises a plurality of extents to store data from at least one data object of the plurality of data objects, wherein the extent is a smaller unit of storage space than the block, wherein receiving the data to be stored comprises; receiving a first data object of the plurality of data objects to be stored in a first block of the logical container in the file system; receiving a second data object of the plurality of data objects to be stored in the first block of the logical container, and wherein collectively data packing comprises; storing the first data object in a portion of the plurality of extents of the first block, wherein storing the first data object comprises storing the first data object in the portion of the plurality of extents of the first block as if the portion of the plurality of extents of the first block were a single container in the file system having a current block size that is smaller than the block size according to an internal block fragmentation of the file system; and storing the second data object in any remaining extents of the first block of the logical container that do not contain data of the first data object. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising
a storage server to store a plurality of data objects, and wherein the storage server is configured to store at least two of the plurality of data objects in a block of a logical container in the file system, wherein the block is a fundamental unit of storage space of the file system, wherein each block comprises a plurality of extents to store data from at least one data objects of the plurality of data objects, wherein the extent is a smaller unit of storage space than the block, wherein the storage server is further configured to receive a first data object of the plurality of data objects to be stored in a first block of the logical container and to store the first data object in a portion of the plurality of extents of the first block as if the portion of the plurality of extents of the first block were a single container in the file system having a current block size that is smaller than the block size according to an internal block fragmentation of the file system, and wherein the storage server is further configured to receive a second data object of the plurality of data objects to be stored in the first block and to store the second data object in any remaining extents of the first block that do not contain data of the first data object.
-
26. 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 collectively data pack a first data object and a second data object in a logical container in the file system by; receiving the first and second data objects to be stored in the logical container, wherein the logical container comprises at least one block, wherein the block is a fundamental unit of storage space of the file system, and each block of the logical container includes a plurality of extents and a fixed block size, and wherein an extent size of each of the plurality of extents is less than the fixed block size; storing the first data object in a first set of extents of the plurality of extents in the logical container, wherein storing the first data object comprises storing the first data object in the first set of extents as if the first set of extents of the first block were a single container in the file system having a current block size that is smaller than the block size according to an internal block fragmentation of the file system; and storing the second data object in a second set of extents of the plurality of extents in the logical container. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
Specification