Abstract:
Disclosed are systems, computer-readable mediums, and methods for determining a load value for each of a plurality of volume servers in a storage system. The storage system stores data from a plurality of clients. Each volume server comprises a plurality of slices, each of which contains data associated with a client. A first volume server is determined to be overloaded based upon the load value for the first volume server being above a predetermined threshold. A slice located on the first volume server is selected to relocate. A second volume server is determined to relocate the slice to based on the load value of the second volume server.
Abstract:
Disclosed are systems, computer-readable mediums, and methods for determining client metrics of a volume in a storage system for a first client of a plurality of clients. The storage system stores data from the plurality of clients. System metrics of a cluster in the storage system are determined based upon use of the storage system by the plurality of clients. A load value of the storage system is determined based upon the system metrics and the client metrics. The load value is determined to be above a predefined threshold. A target performance value is calculated based upon the load value, a minimum quality of service value, and a maximum quality of service value. Performance of the storage system is adjusted for the client based upon the target performance value and the determining the load value is above the predefined threshold.
Abstract:
Methods, systems, and apparatuses, including computer programs encoded on computer-readable media, for receiving a write request that includes data and a client address at which to store the data. The data is segmented into the one or more storage units. A storage unit identifier for each of the one or more storage units is computed that uniquely identifies content of a storage unit. A mapping between each storage unit identifier to a block server is determined. For each of the one or more storage units, the storage unit and the corresponding storage unit identifier is sent to a block server. The block server stores the storage unit and information on where the storage unit is stored on the block server for the storage unit identifier. Multiple client addresses associated with a storage unit with the same storage unit identifier are mapped to a single storage unit.
Abstract:
Methods, systems, and apparatuses, including computer programs encoded on computer-readable media, for receiving a write request that includes data and a client address at which to store the data. The data is segmented into the one or more storage units. A storage unit identifier for each of the one or more storage units is computed that uniquely identifies content of a storage unit. A mapping between each storage unit identifier to a block server is determined. For each of the one or more storage units, the storage unit and the corresponding storage unit identifier is sent to a block server. The block server stores the storage unit and information on where the storage unit is stored on the block server for the storage unit identifier. Multiple client addresses associated with a storage unit with the same storage unit identifier are mapped to a single storage unit.
Abstract:
Disclosed are systems, computer-readable mediums, and methods for receiving an input/output operation regarding data associated with a distributed storage system that includes a plurality of storage devices. A key identifier associated with the I/O operation is determined. The key identifier identifies a key that has been divided into a number of key pieces. Two or more storage devices of the plurality of storage devices that contain one or more of the key pieces are determined and at least a threshold number of key pieces are requested from the two or more storage devices. The minimum number of key pieces needed to reconstruct the key is the threshold number. The key is reconstructed from the requested key pieces. A cryptographic function is performed on data associated with the I/O operation using the reconstructed key and the I/O operation is completed based upon the performed cryptographic function.
Abstract:
Disclosed are systems, computer-readable mediums, and methods for receiving client quality of service values associated with a first client. Client metrics of a volume in a storage system are determined for the first client. The client metrics reflect usage of the storage system by the first client. A client load value based is determined upon the client metrics. A quality of service management policy for the first client is determined from a plurality of quality of service management policies based upon the client load value. Each quality of service management policy comprises a formula based on a quality of service parameter. A client target performance value is determined based upon the formula of the quality of service management policy and the received client quality of service values. Performance of the storage system is adjusted for the first client based upon the client target performance value.