Abstract:
A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system dynamically balances performance with block sharing, based on service level objectives (SLOs). The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. Layouts of the extents within the regions are not visible to any of the volumes.
Abstract:
The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
Abstract:
The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
Abstract:
A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. A foreign LUN can be assimilated into the system by defining slabs as separate portions of the foreign LUN. Layouts of the extents within the regions are not visible to any of the volumes.
Abstract:
The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
Abstract:
A method of performing a global deduplication may include: collecting a data chunk to be written to a backing storage of a storage system at a staging area in the storage system; generating a data fingerprint of the data chunk; sending the data fingerprint in batch along with other data fingerprints corresponding to data chunks collected at different times to a metadata server system in the storage system; receiving an indication, at the staging area, of whether the data fingerprint is unique in the storage system from the metadata server system; and discarding the data chunk when committing a data object containing the data chunk to the backing storage, when the indication indicates that the data chunk is not unique.
Abstract:
The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
Abstract:
Technology is disclosed for managing network storage services by service level objectives (SLOs). The method receives multiple service level capability (SLC) templates; creates at least one storage service level (SSL) instance using at least one of the SLC templates; provisions a storage object located in a network storage infrastructure based on the SSL instance; and services storage requests using the storage object.
Abstract:
A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. A foreign LUN can be assimilated into the system by defining slabs as separate portions of the foreign LUN. Layouts of the extents within the regions are not visible to any of the volumes.