Abstract:
A system, method, and machine-readable storage medium for recovering data in a distributed storage system are provided. In some embodiments, the method includes identifying a failing storage device of a first storage node having an inaccessible data segment. When it is determined that the inaccessible data segment cannot be recovered using a first data protection scheme, a first chunk of data associated with the inaccessible data segment is identified and a group associated with the first chunk of data is identified. A second chunk of data associated with the group is selectively retrieved from a second storage node such that data associated with an accessible data segment of the first storage node is not retrieved. The inaccessible data segment is recovered by recovering the first chunk of data using a second data protection scheme and the second chunk of data.
Abstract:
A system and method for connectivity-aware assignment of volumes among the storage controllers of a storage system is provided. In some embodiments, during a discovery phase, a connectivity metric is determined from a device discovery command. The connectivity metric is recorded into a data structure that identifies a plurality of hosts and a plurality of storage controllers of a storage system. In response to the determining of the connectivity metric, a storage controller ownership of a first volume is changed to improve connectivity between a host of the plurality of hosts and the first volume. In some such embodiments, a storage controller ownership of a second volume is changed to balance load among the plurality of storage controllers, and the discovery phase is, in part, a response to the change in the storage controller ownership of the second volume.
Abstract:
A system, method, and machine-readable storage medium for recovering data in a distributed storage system are provided. In some embodiments, the method includes identifying a failing storage device of a first storage node having an inaccessible data segment. When it is determined that the inaccessible data segment cannot be recovered using a first data protection scheme, a first chunk of data associated with the inaccessible data segment is identified and a group associated with the first chunk of data is identified. A second chunk of data associated with the group is selectively retrieved from a second storage node such that data associated with an accessible data segment of the first storage node is not retrieved. The inaccessible data segment is recovered by recovering the first chunk of data using a second data protection scheme and the second chunk of data.
Abstract:
Systems, devices, and methods are provided for sharing host resources in a multiprocessor storage array, the multiprocessor storage array running controller firmware designed for a uniprocessor environment. In some aspects, one or more virtual machines can be initialized by a virtual machine manager or a hypervisor in the storage array system. Each of the one or more virtual machines implement an instance of the controller firmware designed for a uniprocessor environment. The virtual machine manager or hypervisor can assign processing devices within the storage array system to each of the one or more virtual machines. The virtual machine manager or hypervisor can also assign virtual functions to each of the virtual machines. The virtual machines can concurrently access one or more I/O devices, such as physical storage devices, by writing to and reading from the respective virtual functions.