The present invention relates to the technology of information network, particularly to a method for storing data in a network storage structure based on (d,k)-Moore graph.
Today information technology field has already transformed from computing-centered architecture into storage-centered architecture. This is due to the great deal of information produced with the development of Internet. Therefore, the mass information brings about issues such as processing, storing, sharing, etc.
In the process of storing data, RAID, the redundant array of independent disk technology has been proposed to improve data reliability and performance of a single disk. The RAID technology was invented in 1987 by University of California Berkeley.
In brevity, the redundant array of independent disks is the combination of a number of N hard disks, as one virtual single large-capacity hard disk, by a hardware or software Controller. It features that the N hard disks could be concurrently read so that the speed of reading becomes faster, and at the same time it is fault tolerate. Therefore, RAID is often used as primary storage for accessing data rather than data backup.
The conventional redundant array of independent disks technology can be utilized as a single embedded controller, or as an external independent disk array hardware, or as a software RAID controller implanted in an operating system. All of these three utilization means, generally limited to a single host or a local area network, can deal with failure of a single disk, however cannot deal with failures of the overall hardware or software.
The applicant filed a China patent application entitled by “Method for storing data in a Network Storage Structure Based On Peterson Graph” on May 20, 2009, in which the Peterson graph is a fixed structure consisting of 10 nodes, wherein the degree of each of the node is 3, and the distance between any two nodes is no more than 2.
However, the previous investigation only focused on the particular structure, the Peterson graph and the technical solution based on this specific graph, which has great limitation in the range of application.
One purpose of the present invention is to realize storing method of data with high reliability and wide application range. The method is proposed based on (d, k)-Moore graph structure in wide area network, in which the strong structural regular graph consists of storing nodes, and RAID-type disk striping technology is applied between all nodes except the controlling node so as to provide a data storing method in the network storage structure based on (d, k)-Moore graph. The method realizes the application of RAID in wide area network with strong structure, and makes the network advantageously possess both the data reliability and high performance of conventional RAID while avoiding the problem of single point failure.
In the late 1980s, with the gradual maturation of distributed system, a server-free network file system (xFS) was also proposed by university of California Berkley. Therefore, the objective of the present invention is to apply RAID-type disk striping technology among the multi-machine disks of such system, which was named as Network Redundant Array of Independent Disks, capable of providing high reliability data storage in the network environment. With the exception of the limit of the operating environment with respect to NRAID to among the peer workstations, which is similar to the currently popular peer-to-peer system, it can use RAID in network environment in the way primarily identical to xFS. And, the other wide area storage systems are distributed file system in general.
The above NRAID technology utilizes the disk striping techniques in the local area network environment, aiming to accelerate accessing data, which is similar to NRAID0 of present invention, without the reliability guarantee such as data parity. In order to improve the reliability of the file, the distributed file system resorts to the multiple redundant storage of one piece of data, of which the reliability depends on prior storage systems such as the direct attachment storage, the network attachment storage or storage area network, having the general problem of the lower utility of storage.
In order to realize the above mentioned objective, the present invention provides a data storing method in a network storage structure based on (d,k)-Moore graph. The method comprises steps of: arranging
storing nodes according to the nodes relationships of (d,k)-Moore graph in a wide area network environment to form a structure of a strongly regular graph, utilizing the disk storage capacity of the multiple network hosts and referring to the implementation way of RAID technology with multiple levels of reliability to realize a data storing method supported by redundancy array of independent disk NRAID with multiple levels of reliability in a network environment. In the structure of the strongly regular graph, any storing node within the network based on (d, k)-Moore graph is regarded as a controlling node for storing information of the metadata, i.e. the detailed information of the storing data nodes, and sending the message of the access data, and the other d+d (d−1) storing nodes are regarded as neighboring nodes for providing data storing service, wherein the d nodes are one-hop nodes, and the d(d−1) nodes are two-hop nodes.
The relationship between the values of (d, k) and the total number of the corresponding network nodes is shown in Table 1, below:
The storing type of each of the storing nodes includes direct attachment storage, network attachment storage or storage area network. The direct attachment storage takes the forms of single disk or RAID.
The network redundant array of independent disks technology (NRAID) may arbitrarily select any type from the six types of network redundant array of independent disks, i.e., from NRAID0 to NRAID5. The implementing method of each level network redundant array of independent disks is described as below:
1) The data storing method uses NRAID0, which is a group of stripes without error controlling, including more than two neighboring nodes in addition to the controlling node, and data being divided into blocks and stored into different storing nodes and being able to be accessed simultaneously.
The implementing method of NRAID0 distributes different data onto different storing nodes so that the throughput rate of the data is greatly improved and the loads on storing nodes are well balanced. In the event that the required data being stored on different storing nodes, the method can obtain the best performance. The method does not need to calculate parity and so it is easy to realize. The disadvantageous of the method is that it does not perform data error controlling, so that if data error occurs in one storing node, the whole data becomes useless even if the rest data stored on other storing nodes are correct. Therefore, the method is not suitable to be used in situation with higher data stability requirement. Furthermore, NRAID0 can improve data transmission rate in situations such as the file is distributed over two storing nodes capable of being accessed at the same time, so that the time needed to read the same file is reduced to half time. Among all reliability levels, NRAID0 is the fastest but lacks of redundancy. Therefore, if one storing node is (physically) destroyed, all data will be useless.
2) The data storing method uses NRAID1 in a mirror structure, and the controlling node simultaneously performs reading and writing on the two storing nodes, wherein one of the two nodes is primary storing node, and the other is mirror storing node.
The implementing method of NRAID1 is a minor structure, in which when an error occurs on one storing node the mirror storing node will function as primary node, so as to improve fault-tolerance, i.e. when the primary storing node crashes, the mirror storing node can take the responsibility of the primary storing node. In this embodiment, the mirror storing node acts as a backup storing node for primary storing node. Furthermore, it is easy to design and implement, where it can only read one piece of data each time the storing node is read, which means that the data transmission rate equals to the accessing rate of independent read/write operation. Since NRAID1 has thorough verification, which has a significant influence on the processing capability of the system, the functions of RAID1 are usually realized by software, which in turn tradeoffs the server's efficiency when the server is overloaded. Therefore, NRAID1 is suitable in situations with ultra-reliability requirement such as statistical data processing. Furthermore, NRAID1 technique supports “hot-swap”, i.e., replacing the failed storing node without power-off, followed by recovering data just from the mirror storing node. However, the space utility of storing nodes in NRAID1 is only 50%, which is the least of all NRAID levels.
3) The data storing method uses NRAID2 in data striping structure with hamming code, in which the data are divided into stripes and distributed among different storing nodes, the unit of the striped data is a bit or a byte. A data encoding technology is used to provide error detection and recovery, where multiple nodes are needed to store the detection and recovery information.
Due to the feature of hamming-code, when data error occurs, it is possible to correct it, so the output is guaranteed to be correct. Since the data transmission rate of NRAID2 is rather high, if an ideal speed is required, it is better to raise the speed of nodes storing the verification ECC codes. Moreover, the rate of data output of controlling node is equal to the slowest one of the group of storing nodes.
4) The data storing method uses NRAID3, which is a parallel transmission structure with even-odd parity.
Each controlling node stores the address information of its n neighboring nodes and the information about the interleaving rule of the stored data, wherein 3≦n≦d+d (d−1), and n−1 neighboring nodes being used for storing the data, and the nth neighboring node being used as a special storing node for the redundant information of even-odd parity information,.
After the controlling node completes the operation of reading or writing metadata, a read terminal reads data and parity information from the n neighboring nodes in parallel, and then combines the data read out and makes verification.
This kind of verification codes is only able to detect error, but unable to correct error, and handles one stripe each time of accessing the data, so it can increase the speed of reading and writing. The verification codes are generated when writing data and stored on another node. Upon requirement, three storing nodes directly adjacent to the controlling node are used, thus both reading speed and writing speed are fairly high because of fewer verification bits, which in turn reduces the time that the computing procedure spends.
NRAID3 uses a single node to store the parity information. If one of the storing nodes fails, the node storing the parity information and the other data storing nodes can reconstruct the original data. And, if the node storing the parity information fails, it does not affect data availability. NRAID3 can offer high transmission rate for a large volume of continuous data, whereas for random data, the node storing the parity information becomes the bottleneck of writing. Although using a single verification node to protect data has a lower security than that of minor node, the storage utility ratio of space is greatly improved, and reaches to (n−1)/n.
5) The data storing method uses NRAID4, which is an independent storing nodes structure with even-odd parity code.
Each controlling node stores the address information of its n neighboring nodes and the information about interleaving rule of the stored data, wherein 3≦n≦d+d(d−1), the n−1 neighboring nodes are used to store data, and the nth neighboring node acts as the special storing node for the redundant information of the even-odd parity information.
After the controlling node completes the operation of reading or writing metadata, the data block is accessed node by node, and one storing node is accessed every time. Finally, a read terminal reads data and parity information from the n neighboring nodes, combines the data and makes verification. Similarly, this verification code is only able to detect error, but unable to correct error.
The reading terminal can be either the controlling node or a reading terminal of client.
6) The data storing method uses NRAID5, which is a structure of independent storing nodes with distributed even-odd parity, and the parity bit of data segment is interleaved into the storing nodes, wherein the even-odd parity codes are stored on all storing nodes and distributed over different nodes to guarantee the security of the data with its parity bit.
In case of any one of the storing nodes crashes, it is always possible to reconstruct the crashed data from the remaining data and parity information stored on other storing nodes. NRAID5 provides the data security also by using the data parity bits. However, it stores data parity bits on all storing nodes rather than on a single storing node. NRAID5 advantageously provides extra redundancy that it is still available even though one storing node is offline, thus obtains a high space utilization ratio, ((n−1)/n), and a fast accessing speed (n−1 times of that of one disk). However, if one storing node crashes down, the operation efficiency will reduce tremendously.
Compared with other current structures and methods, the present invention has the following advantageous: it guarantees the connection of data paths and confines the parameters such as time delay to acceptable scope by combining the special properties of (d,k)-Moore graph with RAID technology and relying on the strong structural feature of (d,k)-Moore graph; and each node of (d,k)-Moore graph can act as a controlling node, totaling 1+d+d(d−1) nodes, thus eliminating the single failure point of the conventional RAID controller. According to the present invention, each of the individual nodes has the same structure, which in turn results in the nodes' similar performance. Therefore, the same algorithms are performed on any individual node to implement NRAID so as to improve the reliability of data stored in network environment, which can be used in wide area data storage.
Compared with Peterson graph, the advantages of the present invention include:
The previous technical solution based on Peterson graph is only applied to the situation where the node degree is 3 and the maximal diameter is 2. The proposed solution that utilizes (d,k)-Moore according to the present invention can suit to all situations that both d and k are equal to or greater than 2, which expands the range of application.
In the case of dealing with nodes more than 10, the multiple Peterson graph must be employed to cover all the nodes, and at the same time the problem of interconnection among Peterson graphs needs to be resolved by other ways. Contrastively, the (d,k)-Moore graph whose number of nodes mostly approximates the number of real nodes is employed to create the network, so that the mechanism of (d,k)-Moore graph may deal with the situation with many nodes.
If the number of real nodes increases, the change of d or k in (d,k)-Moore graph may evolve into new (d,k)-Moore graphs, but the processing mechanism does not change, so the present method has good extendibility.
Furthermore, the present invention expands the technology of redundant array of independent disk to network environment. Firstly, it resolves the problem that the single position of the conventional redundant array of independent disk suffers from data unavailability due to power failure. Secondly, the strong structural nature of (d,k)-Moore graph guarantees the connection of data paths among storing nodes and confines the parameter such as time delay to an acceptable scope. And, thirdly, each node of (d,k)-Moore graph can act as a controlling node, totaling 1+d+d(d−1) controlling nodes, which eliminates the problem of single failure point of the conventional RAID controller.
Hereafter, the present invention will be described in details referring to the figures and examples.
With reference to the attached figures, the realization of network redundant array of independent disks based on (d,k)-Moore graph such as (3,2)-Moore graph, (2,3)-Moore graph, or (4,2)-Moore graph, etc., will be further explained and well understood.
The purpose of the present invention is to provide an implementing method of network redundant array of independent disks based on (d,k)-Moore graph which consists of
storing nodes as shown in
In order to realize the above purpose of the present invention, the nodes of storing network based on (d,k)-Moore graph such as (3,2)-Moore graph is numbered as shown in
In the following, with respect to a specific application scenario, the realization methods of the network redundant array of independent disks based on (3,2)-Moore graph, (2,3)-Moore and (4,2)-Moore graphs are demonstrated. As shown in
Hereafter, as examples, where three direct neighboring nodes of one particular node are used to store data and NRAID0 and NRAID3 are used, the realization methods of network redundant array of independent disks will be illustrated in details. For those skilled in the art, it is easy to understand that the cases of 4 to 9 neighboring nodes can be analogously deduced.
(1) NRAID0
Each node stores the address information of its 3 direct neighboring nodes. For example, node 1 stores the address information of nodes 5, 6 and 2. According to the aforementioned realization method of NRAID0, node 1, acting as controlling node, stores the information of striping rule of data, and the data is stored on node 5, 6 and 2 in the form of stripes. The metadata is read by node 1, then the data are read out from nodes 5, 6 and 2 in parallel. Furthermore, the data read out are combined by a reading terminal which can be node 1 or other reading client.
(2) NRAID3
Each node stores the address information of its 3 direct neighboring nodes. For example, node 1 stores the address information of nodes 5, 6 and 2. According to the aforementioned realization method of NRAID3, node 1, acting as the controlling node, stores information of interleaving rule of data, the data is stored on nodes 5 and 6, and node 2 acts as a special storing node for redundant odd-even parity verification information. The metadata and verification information is read by node 1, and the data and the verification information are read out from nodes 5, 6 and 2 in parallel. The data are combined and verified by a reading terminal which can be node 1 or other reading client.
Although the above embodiments take NRAID0 and NRAID3 as examples to illustrate the implementation of network redundant array of independent disks based on (3,2)-Moore graph where 3 direct neighboring nodes of one node are chosen to store data or verification information, they are just for the purpose of illustration, for person skilled in the art, it is obvious to implement the other 4 levels of the network redundant array of independent disks according to the description of the present invention.
As for the cases of (2,3)-Moore and (4,2)-Moore graphs, persons skilled in the art can easily implement the present method with reference to that of (3,2)-Moore graph as mentioned above.
Further, one should note that the above examples are only for the purpose of illustration of the technical solution of the present invention rather than bringing any limit to the present invention. While the present invention is described in detail with reference to the above examples, those skilled in the art should understand that any modification or replacement made under the spirits or teachings of the present invention should fall into the scope claimed by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
200910084150.4 | May 2009 | CN | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN10/00496 | 11/20/2011 | WO | 00 | 3/30/2012 |