Abstract:
Methods and systems for identifying a victim storage volume from among a plurality of storage volumes based on a comparison of current Quality of Service (QOS) data with a dynamic threshold value that is based on historical QOS collected data for the plurality of storage volumes are provided. A performance manager collects the current and historical QOS data from a storage operating system of the storage system, which includes a response time in which each of the plurality of storage volumes respond to an input/output (I/O) request. The current and historical QOS data for the resources used by the victim storage volume are retrieved and compared with the current QOS data of each resource to an expected range based on the historical QOS data. Another storage volume is identified as a bully when its usage of a resource in contention contributes to creating the victim storage volume.
Abstract:
A system and method enables efficient implementation of snapshots of data organized as arbitrary data structures on a byte-addressable persistent memory of a host computer. A user-level library of the host computer may configure the persistent memory as a software transactional memory (STM) system defined by operations, such as a STM commit operation, that ensure safe and consistent storage of the data (i.e., the data structures) within a region of the persistent memory. The library may then cooperate with an application executing on the host computer to control access to a data structure, e.g., to change a datum, stored in the region of the persistent memory as a transaction using the STM commit operation. Within a context of the transaction, the library may precisely determine which byte or bytes of the datum have changed within the region, as well as how and when the bytes have changed. Armed with precise knowledge of the context of the transaction, the library may efficiently implement a snapshot (i.e., point-in-time copy) of the changed datum and its associated data structure at the granularity at which it was modified, e.g., at the byte-addressable granularity.
Abstract:
A method and system for providing a customized storage container includes a generally rectangular housing and at least one printed circuit board contained within the rectangular housing. The customized storage container encloses a first row of interconnector modules that are positioned adjacent to a first, open end of the rectangular housing. The customized storage container also encloses a second row of interconnector modules positioned adjacent to the first, open end of the rectangular housing. At least one air vent is positioned along a side of the rectangular housing and adjacent to a second, closed end of the rectangular housing. According to one exemplary embodiment, the storage container can comprise a single printed circuit board for supporting the first and second row of interconnector modules. In another exemplary embodiment, the storage container can comprise two printed circuit boards for supporting the first and second rows interconnector modules.
Abstract:
A system and method generates a message integrity check. The message integrity check value is computed by hashing one or more block checksums from procedure specific parameters of an RPC and then encrypting the resulting hash value. The computed message integrity check is appended to the RPC to thereby provide a level of security approaching or equal to the level of Integrity defined by the RPCSEC_GSS protocol specification.
Abstract:
A method, apparatus, and system of a priority command queues for low latency solid state drives are disclosed. In one embodiment, a system of a storage system includes a command sorter to determine a target storage device for at least one of a solid state drive (SSD) command and a hard disk drive (HDD) command and to place the command in a SSD ready queue if the SSD command is targeted to a SSD storage device of the storage system and to place the HDD command to a HDD ready queue if the HDD command is targeted to an HDD storage device of the storage system, a SSD ready queue to queue the SSD command targeted to the SSD storage device, and a HDD ready queue to queue the HDD command targeted to the HDD storage device.
Abstract:
Disclosed are systems, computer-readable mediums, and methods for transforming data in a file system. As part of a recycling process, a determination is made that transformations should be attempted. A data block is determined to be in use by at least one user of the storage system. If a transformation should be attempted on the data block is determined. Parameters associated with the performance of the file system can be used in this determination. A type of transformation to be done is determined. The data block is transformed based upon the selected transformation. The transformed data block is written to the storage system. As part of the recycling process, the transformation requires no additional input/output requests.
Abstract:
A method and system for host caches managed in a unified manner are described. In an example, a server in a clustered environment designates cache ownership for a cluster application to the cache on one of the hosts. While the application is running on this host, the server monitors data writes made by the application. Upon detecting that the application is running on a different host in the clustered environment, the server can transfer cache ownership to the new host and selectively invalidate cache blocks in the cache of the new host based on the data writes that were previously monitored.
Abstract:
Methods and systems for a computing cluster are provided. An application programming interface (API) at a manager application is exposed. The API specifies input identifying nodes and connections between the nodes to implement storage protection policies in the computing cluster. A user input that includes instructions to implement multiple destination nodes and respective connections between a source node and the destination nodes is received. A topology that includes the source node, the destination nodes, and the connections between the source node and the destination nodes is traversed. Based on traversing the topology, commands are sent to a storage system of the cluster to implement a destination volume corresponding to the destination node and multiple protection configurations. Each of the protection configurations corresponds to a respective one of the connections.
Abstract:
A network storage controller uses a non-volatile solid-state memory (NVSSM) subsystem as a global cache that is shared between a number of network storage servers in a network storage system. Portions of global cache are allocated to each of the network storage servers. Allocation of portions of the global cache is controlled based on a usage pattern of the global cache by each of the network storage servers. The storage operating system determines, for example, a percentage of cache hit and/or a response time for responding to the requests from the clients by a particular network storage server with a particular allocated portion. The percentage of cache hit and response time are projected for various potential sizes of the particular portion. A size of the particular portion that provides a better percentage of cache hit and/or response time is selected, and reallocated to the particular network storage server.
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 maintain cache coherency among multiple storage nodes. It can also be employed to avoid sending the data to a network node over a network if it already has the data.