Distributed storage system
First Claim
1. A distributed storage system comprising a plurality of computers including a first computer, a second computer, and a third computer,wherein the first computer is configured to have at least one first processor for managing a first virtual volume, in the first computer, which is recognized by at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, the first computer is further configured to have at least one first storage device and the at least one first processor controlling accesses to data stored in the at least one first storage device based on I/O requests made to the first virtual volume,wherein the second computer is configured to have at least one second processor for managing a second virtual volume, in the second computer, which is recognized by the at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, the second computer is further configured to have at least one second storage device and the at least one second processor controlling accesses to data stored in the at least one second storage device based on I/O request made to the second virtual volume,wherein the third computer is configured to have at least one third processor for managing a third virtual volume, in the third computer, which is recognized by the at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, the third computer is further configured to have at least one third storage device,wherein the first computer is configured to store first data of a first write request to the first virtual volume in the at least one first storage device of the first computer in response to receiving the first write request and forward the first data to the third computer,wherein the second computer is configured to store second data of a second write request to the second virtual volume in the at least one second storage device of the second computer in response to receiving the second write request and forward the second data to the third computer,wherein the third computer is configured to create at least one redundant code in response to receiving at least the first data from the first computer and the second data from the second computer, the at least one redundant code being for restoring either the first data of the first computer or the second data of the second computer, selectively, and store the at least one redundant code in the at least one third storage device, andwherein the first computer is configured to create at least one other redundant code in response to receiving at least third data from the second computer and fourth data from the third computer, the at least one other redundant code being for restoring either the third data of the second computer or the fourth data of the third computer, selectively, and store, in the at least one first storage device, the at least one other redundant code.
0 Assignments
0 Petitions
Accused Products
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.
103 Citations
14 Claims
-
1. A distributed storage system comprising a plurality of computers including a first computer, a second computer, and a third computer,
wherein the first computer is configured to have at least one first processor for managing a first virtual volume, in the first computer, which is recognized by at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, the first computer is further configured to have at least one first storage device and the at least one first processor controlling accesses to data stored in the at least one first storage device based on I/O requests made to the first virtual volume, wherein the second computer is configured to have at least one second processor for managing a second virtual volume, in the second computer, which is recognized by the at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, the second computer is further configured to have at least one second storage device and the at least one second processor controlling accesses to data stored in the at least one second storage device based on I/O request made to the second virtual volume, wherein the third computer is configured to have at least one third processor for managing a third virtual volume, in the third computer, which is recognized by the at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, the third computer is further configured to have at least one third storage device, wherein the first computer is configured to store first data of a first write request to the first virtual volume in the at least one first storage device of the first computer in response to receiving the first write request and forward the first data to the third computer, wherein the second computer is configured to store second data of a second write request to the second virtual volume in the at least one second storage device of the second computer in response to receiving the second write request and forward the second data to the third computer, wherein the third computer is configured to create at least one redundant code in response to receiving at least the first data from the first computer and the second data from the second computer, the at least one redundant code being for restoring either the first data of the first computer or the second data of the second computer, selectively, and store the at least one redundant code in the at least one third storage device, and wherein the first computer is configured to create at least one other redundant code in response to receiving at least third data from the second computer and fourth data from the third computer, the at least one other redundant code being for restoring either the third data of the second computer or the fourth data of the third computer, selectively, and store, in the at least one first storage device, the at least one other redundant code.
-
10. A data processing method for a distributed storage system comprising a plurality of computers including a first computer configured to have at least one first storage device and at least one first processor, a second computer configured to have at least one second storage device and at least one second processor, and a third computer configured to have at least one third storage device and at least one third processor,
managing a first virtual volume, in the first computer, which is recognized by at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, and controlling accesses to data stored in the at least one first storage device based on I/O requests made to the first virtual volume, by the at least one first processor of the first computer; -
managing a second virtual volume, in the second computer, which is recognized by at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, and controlling accesses to data stored in the at least one second storage device based on I/O requests made to the second virtual volume, by the at least one second processor of the second computer; and managing a third virtual volume, in the third computer, which is recognized by at least one external device and is an access target of an input/output (I/O) request issued by the at least one external device, by the at least one third processor of the third computer, wherein the first computer stores first data of a first write request to the first virtual volume in the at least one first storage device of the first computer in response to receiving the first write request and forwards the first data to the third computer, wherein the second computer stores second data of a second write request to the second virtual volume in the at least one second storage device of the second computer in response to receiving the second write request and forwards the second data to the third computer, wherein the third computer creates at least one redundant code in response to receiving at least the first data from the first computer and the second data from the second computer, the at least one redundant code being for restoring either the first data of the first computer or the second data of the second computer, selectively, and stores the at least one redundant code in the at least one third storage device, and wherein the first computer creates at least one other redundant code in response to receiving at least third data from the second computer and fourth data from the third computer, the at least one other redundant code being for restoring either the third data of the second computer or the fourth data of the third computer, selectively, and stores the at least one other redundant code in the at least one first storage device. - View Dependent Claims (11, 12, 13, 14)
-
Specification