US2016371145A1PendingUtilityA1

Distributed storage system

Assignee: HITACHI LTDPriority: Sep 30, 2014Filed: Sep 30, 2015Published: Dec 22, 2016
Est. expirySep 30, 2034(~8.2 yrs left)· nominal 20-yr term from priority
G06F 3/067G06F 11/1076H03M 13/2906H04L 67/1097G06F 2211/1028G06F 3/064G06F 3/0619
56
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A first node group including at least three nodes is predefined in a distributed storage system. Each node of the first node group is configured to send data blocks stored in storage devices managed by the node to other nodes belonging to the first node group. A first node is configured to receive data blocks from two or more other nodes in the first node group. The first node is configured to create a redundant code using a combination of data blocks received from the two or more other nodes and store the created redundant code to a storage device different from storage devices holding the data blocks used to create the redundant code. Combinations of data blocks used to create at least two redundant codes in redundant codes created by the first node are different in combination of logical addresses of constituent data blocks.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A distributed storage system comprising:
 a plurality of nodes capable of communicating with each other via a network; and   a plurality of storage devices,   wherein a first node group including at least three nodes is predefined in the plurality of nodes,   wherein each node of the first node group is configured to send data blocks stored in storage devices managed by the node to other nodes belonging to the first node group,   wherein a first node of the first node group is configured to receive data blocks from two or more other nodes in the first node group,   wherein the first node is configured to create a redundant code using a combination of data blocks received from the two or more other nodes,   wherein the first node is configured to store the created redundant code to a storage device different from storage devices holding the data blocks used to create the redundant code, and   wherein combinations of data blocks used to create at least two redundant codes in redundant codes created by the first node are different in combination of logical addresses of constituent data blocks.   
     
     
         2 . The distributed storage system according to  claim 1 , wherein each of the nodes of the first node group is configured to create an in-node redundant code from data blocks stored in the storage devices managed by the node. 
     
     
         3 . The distributed storage system according to  claim 1 , wherein the first node includes a cache and is configured to:
 temporarily store data blocks received from the two or more other nodes to the cache;   select data blocks from the data blocks temporarily stored in the cache; and   create a redundant code from the selected data blocks.   
     
     
         4 . The distributed storage system according to  claim 1 , wherein the first node is configured to associate each of the redundant codes with information on logical addresses in sender nodes of the data blocks used to create the redundant code to manage the redundant codes. 
     
     
         5 . The distributed storage system according to  claim 1 , wherein number of data blocks to be used to create a redundant code is undetermined. 
     
     
         6 . The distributed storage system according to  claim 1 ,
 wherein a second node group and a third node group each including at least three nodes are further predefined in the plurality of nodes, and   wherein a second node belonging to the second node group is configured to:
 create a second level redundant code using data blocks received from a node belonging to the first node group and a node belonging to the third node group; and 
 store the second level redundant code to a storage device managed by the second node. 
   
     
     
         7 . The distributed storage system according to  claim 1 , wherein the first node is configured to:
 select a first redundant code and a second redundant code stored in an area holding the redundant codes after size of the area reaches a threshold;   merge the first redundant code and the second redundant code to create a third redundant code using only data blocks sent from different nodes;   erase the first redundant code and the second redundant code; and   store the third redundant code to the area.   
     
     
         8 . The distributed storage system according to  claim 1 ,
 wherein a second node which belongs to the first node group and has sent a first data block to the first node is configured to resend the first data block to the first node before erasing the first data from a storage device managed by the second node, and   wherein the first node is configured to update a first redundant code created using the first data block, using the first data block resent from the second node.   
     
     
         9 . The distributed storage system according to  claim 1 ,
 wherein a second node which belongs to the first node group and has sent a first data block to the first node is configured to:
 create intermediate data using update data for the first data block and the first data block; and 
 send the intermediate data to the first node, and 
   wherein the first node is configured to update the redundant code created using the first data block, using the intermediate data sent from the second node.   
     
     
         10 . The distributed storage system according to  claim 2 ,
 wherein the first node is configured to:
 divide a data block to be stored to a storage device managed by the first node into a plurality of data blocks and create an in-node redundant code; and 
 send at least one of the plurality of data blocks and the in-node redundant code to other nodes in the first node group, and 
   wherein a combination of data blocks for the first node to use to create a redundant code includes in-node redundant codes sent from other nodes.   
     
     
         11 . The distributed storage system according to  claim 1 , wherein nodes belonging to the first node group and configured to create redundant codes using data blocks stored in a plurality of nodes are distributed in the first node group. 
     
     
         12 . A method of controlling data to be executed by a node in a distributed storage system including a plurality of nodes capable of communicating with each other via a network,
 the distributed storage system further including a plurality of storage devices, and   a first node group including at least three nodes being predefined in the plurality of nodes,   the method comprising:   sending data blocks held in a storage device under management to other nodes belonging to the first node group;   creating a redundant code using a combination of data blocks received from two or more other nodes belonging to the first node group; and   storing the created redundant code to a storage device different from storage devices holding data blocks used to create the redundant code,   wherein combinations of data blocks used to create at least two redundant codes in created redundant codes are different in combination of logical addresses of constituent data blocks.   
     
     
         13 . The method according to  claim 12 , further comprising creating an in-node redundant code from data blocks stored in the storage devices under management. 
     
     
         14 . The method according to  claim 12 , further comprising:
 temporarily storing data blocks received from the two or more other nodes to a cache;   selecting data blocks from the data blocks temporarily stored in the cache; and   creating a redundant code from the selected data blocks.   
     
     
         15 . The method according to  claim 12 , further comprising associating each of the redundant codes with information on logical addresses in sender nodes of the data blocks used to create the redundant code to manage the redundant codes.

Join the waitlist — get patent alerts

Track US2016371145A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.