Distributed storage system and data sharing method
AssigneeHitachi Vantara, Ltd.
InventorsToshiyuki ARITSUKA, Yoshinori OHIRA, Takahiro YAMAMOTO
Life of this patent
Estimating the term…
Abstract
When rebuilding a data block and a second redundant code identical in content with a data block and a second redundant code stored in a storage device of one or more of nodes, on a different node, based on a first redundant code, a controller rebuilds the data block and second redundant code on a node different from a substitute node substituting for a node storing a data block or second redundant code to be rebuilt, transfers the rebuilt data block and second redundant code to the substitute node, and stores them in the storage device of the substitute node.
Claims11
A distributed storage system comprising a plurality of nodes each including:
- a storage device that stores data;
- and a controller that makes data redundant, the data being stored in the storage device, wherein the controller divides data on a received writing request into a plurality of data blocks and writes the data blocks to the storage device, and generates a first redundant code from the data blocks and transmits the data blocks and the first redundant code to a different node, wherein
- a controller of the different node generates a second redundant code, from a plurality of data blocks received from the nodes and the first redundant code, and stores the second redundant code in the storage device, wherein
- a data block and a second redundant code that are stored in the storage device of a node are rebuilt at a different node, and a substitute node having rebuilt the data block stores the data block reconstructed in the storage device and processes a reading request and a writing request from a host server,
- wherein when rebuilding the data block and the second redundant code, one of the nodes reconstructs a data block involved in the rebuilding, based on the data block and the second redundant code that are stored in one of the nodes, generates a first redundant code, based on the data blocks stored in one of the nodes, reconstructs a second redundant code involved in the rebuilding, based on the first redundant code generated and on the data blocks stored in one of the nodes, and stores the data block and the second redundant code having been reconstructed and being involved in the rebuilding, in the storage device,
- wherein a node that reconstructs the second redundant code is a specific node different from the substitute node in which the data block reconstructed is stored.
A data sharing method for a distributed storage system comprising a plurality of nodes each including:
- a storage device that stores data;
- and a controller that makes data redundant, the data being stored in the storage device,
- wherein the data sharing method comprises:
- causing the controller to divide data on a received writing request into a plurality of data blocks and write the data blocks to the storage device and to generate a first redundant code from the data blocks and transmit the data blocks and the first redundant code to a different node;
- causing a controller of the different node to generate a second redundant code from a plurality of data blocks received from the nodes and store the second redundant code in the storage device;
- causing the controller to rebuild a data block and a second redundant code on a different node, the data block and the second redundant code being stored in the storage device of a node;
- causing a substitute node having rebuilt the data block to store the data block reconstructed in the storage device and process a reading request and a writing request from a host server;
- when rebuilding the data block and the second redundant code, causing one of the nodes to reconstruct a data block involved in the rebuilding, based on the data block and the second redundant code that are stored in one of the nodes, to generate a first redundant code, based on the data blocks stored in one of the nodes, and to reconstruct a second redundant code involved in the rebuilding, based on the first redundant code generated and on the data block stored in one of the nodes, and to store the data block and the second redundant code having been reconstructed and being involved in the rebuilding, in the storage device;
- and
- selecting a node that reconstructs the second redundant code, as a specific node different from the substitute node in which the data block reconstructed is stored.
Dependencies are inferred from the claim text.