Abstract:
Techniques to clone a writeable data object in non-persistent memory are disclosed. The writeable data object is stored in a storage structure in non-persistent memory that corresponds to a portion of a persistent storage. The techniques enable cloning of the writeable data object without having to wait until the writeable data object is saved to the persistent storage and without needing to quiesce incoming operations (e.g., reads and writes) to the writeable data object.
Abstract:
In one embodiment, a layered file system includes a volume layer and an extent store layer configured to provide sequential log-structured layout of data and metadata on solid state drives (SSDs) of one or more storage arrays. The data is organized as variable-length extents of one or more logical units (LUNs). The metadata includes volume metadata mappings from offset ranges of a LUN to extent keys and extent metadata mappings of the extent keys to storage locations of the extents on the SSDs. The extent store layer maintaining the extent metadata mappings determines whether an extent is stored on a storage array, and, in response to determination that the extent is stored on the storage array, returns an extent key for the stored extent to the volume layer to enable global inline de-duplication that obviates writing a duplicate copy of the extent on the storage array.
Abstract:
A technique reduces an amount of metadata stored in a memory of a node in a cluster. An extent store layer of a storage input/output (I/O) stack executing on the node stores key-value pairs in a plurality of data structures, e.g., cuckoo hash tables, resident in the memory. The cuckoo hash table embodies metadata that describes an extent and, as such, may be organized to associate a location on disk with a value that identifies the location on disk. The value may be embodied as a locator that includes a reference count used to support deduplication functionality of the extent store layer with respect to the extent. The reference count is divided into two portions: a delta count portion stored in memory for each slot of the hash table and an overflow count portion stored on disk in a header of each extent. One bit of the delta count portion is reserved as an overflow bit that indicates whether the in-memory reference count has overflowed. Another bit of the delta count portion is reserved as a sign bit that indicates whether the value of the remaining delta count portion, which stores the “delta” of the reference count, is positive or negative. Overflow updates to the overflow count portion on disk are postponed until all of the bits of the delta count portion are consumed as negative/positive transitions.
Abstract:
Methods and systems for handling lock state information between a first storage system node and a second storage system node coupled via a network link are provided. The second storage system node stores lock state information at a storage device previously managed by the first storage system node and notifies the first storage system node of a storage device location where the lock state information is stored. The second storage system node then transfers ownership of the storage device to the first storage system node that copies the lock state information from the storage device location to a memory location managed by the first storage system node. The first storage system node uses the lock state information to reconstruct any locks for storage space presented to a client and then processes client requests for reading and writing information at the storage device.
Abstract:
Data objects can be migrated, while live, to virtualized clustered storage arrays in an efficient manner to allow for efficient transition from non-clustered storage to the virtualized clustered storage arrays. A data migration specification indicates data objects to be migrated and parameters for the migration. The parameters include a source of a data object, a destination of the data object in the virtualized clustered storage arrays, and a transfer space. A migration engine validates and parses the data migration specification. For each unique association of source, destination, and transfer space, the migration engine instantiates a migration process that drives and monitors migration of the corresponding data object. The migration processes operate in parallel for migration of the specified data objects into the virtualized clustered storage arrays.
Abstract:
A system and method for recognizing data access patterns in large data sets and for preloading a cache based on the recognized patterns is provided. In some embodiments, the method includes receiving a data transaction directed to an address space and recording the data transaction in a first set of counters and in a second set of counters. The first set of counters divides the address space into address ranges of a first size, whereas the second set of counters divides the address space into address ranges of a second size that is different from the first size. One of a storage device or a cache thereof is selected to service the data transaction based on the first set of counters, and data is preloaded into the cache based on the second set of counters.
Abstract:
Technology is disclosed for deferring storage operations (e.g., writes or reads) during hostile events. When a data storage device experiences a hostile event, e.g., a vibration, shock, etc. contact by a head of the data storage device with a disk surface can cause errors or indeed damage. The technology can cause a data storage device to suspend storage operations until the hostile event is no longer detected.
Abstract:
One or more techniques and/or systems are provided for performing host side deduplication. Host side deduplication may be performed upon writeable data within a write request received at a host computing device configured to access data stored by a storage server. The host side deduplication may be performed at the host computing device to determine whether the writeable data is already stored by the storage server based upon querying a host side cache comprising data stored by a storage server and/or a data structure comprising unique signatures of data stored by the storage server. If the writeable data is stored by the storage server, then a deduplication notification excluding the writeable data may be sent to the storage server, otherwise a write command comprising the writeable data may be sent. Accordingly, unnecessary network traffic of redundant data already stored by the storage server may be reduced.
Abstract:
Technology is disclosed for providing access to operation performance of various storage mediums in a distributed storage system, which store and host data associated with a database (“the technology”). The technology can identify the storage mediums storing data associated with a particular database, gather data associated with performance of each of the identified storage mediums storing data associated with the particular database, and generate performance statistics associated with each of the identified storage mediums utilizing the gathered data and provide the generated statistics as a performance overview of storage associated with the particular database.
Abstract:
A hardware and/or software facility to enable emulated storage devices to share data stored on physical storage resources of a storage system. The facility may be implemented on a virtual tape library (VTL) system configured to back up data sets that have a high level of redundancy on multiple virtual tapes. The facility organizes all or a portion of the physical storage resources according to a common store data layout. By enabling emulated storage devices to share data stored on physical storage resources, the facility enables deduplication across the emulated storage devices irrespective of the emulated storage device to which the data is or was originally written, thereby eliminating duplicate data on the physical storage resources and improving the storage consumption of the emulated storage devices on the physical storage resources.