WO2013185271A1 - 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置 - Google Patents

网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置 Download PDF

Info

Publication number
WO2013185271A1
WO2013185271A1 PCT/CN2012/076694 CN2012076694W WO2013185271A1 WO 2013185271 A1 WO2013185271 A1 WO 2013185271A1 CN 2012076694 W CN2012076694 W CN 2012076694W WO 2013185271 A1 WO2013185271 A1 WO 2013185271A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
data
storage
nodes
node
Prior art date
Application number
PCT/CN2012/076694
Other languages
English (en)
French (fr)
Inventor
黄显霞
李挥
缪伟豪
鲁跃
傅峰春
王茂亮
Original Assignee
北京大学深圳研究生院
华夏城视网络电视股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学深圳研究生院, 华夏城视网络电视股份有限公司 filed Critical 北京大学深圳研究生院
Priority to PCT/CN2012/076694 priority Critical patent/WO2013185271A1/zh
Priority to CN201280032806.8A priority patent/CN103703446B/zh
Publication of WO2013185271A1 publication Critical patent/WO2013185271A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Definitions

  • the present invention relates to the field of distributed network storage, and more particularly to a data reconstruction and failure data recovery method and apparatus for anti-Byzantine failure in network storage.
  • the general coding method is an (n, k) MDS (Maximum Distance Separable) error correction code (for example, RS code (ie, reed-solomon codes).
  • the number of elements in the finite field Fq is used to indicate the size of the data file
  • B is the original number of files.
  • using the RS code requires dividing an original file into k equal-sized modules, and generating n mutually unrelated coding modules by linear coding, storing different modules by n nodes, and guaranteeing MDS attributes, that is, a terminal.
  • the user or sink can reconstruct the original file by downloading the encoded data of any k nodes of the n storage nodes.
  • This coding technology plays an important role in providing effective network storage redundancy, and is particularly suitable for storing large files and archive data backup applications.
  • the RS code is an error correction code that not only recovers the data stored by the node from the node failure, but also recovers from the Byzantine node (the node data has been tampered with).
  • the RS code works on m-bit symbols, all of which are from the finite field GF(2 m ).
  • n 2 m _ l
  • n - d 2t
  • g(x) is a generator polynomial of the RS code
  • the RS code is a symmetric code, where the information symbol,,, ⁇ is the coefficient in the polynomial c(x).
  • the RS code can also pass
  • the code word C is regarded as a sequence of information for encoding, ⁇ »
  • the decoding process of the RS code is relatively complicated.
  • ⁇ . ⁇ ' is the erasure polynomial
  • the RS code provides the maximum distance between the code words and is therefore an optimal code. Data recovery can be performed as long as the number of errors V is equal to one (n, d) RS code, where s is the number of erasures or cannot be recovered. symbol
  • Figure 1 shows the basic flow of RS code decoding.
  • the third step is to use money to search for the root of the error polynomial ⁇ ( ⁇ ), get the number of error positions, and then find the number of error positions. The error value thus results in the error polynomial e(x).
  • This processing error and erasure decoding is also called error erasure.
  • addition is equivalent to an XOR operation between bits, and multiplication is performed by a multiplication table or a discrete logarithm table. To reduce the complexity of the multiplication operation, a different generation can be constructed. Matrix, which also converts multiplication operations into XOR operations.
  • the regeneration code achieves bandwidth efficiency by storing additional symbols at each node or accessing more storage nodes during the repair process.
  • the amount of data downloaded from each storage node during the regeneration process.
  • a newcomer ie, the recoverer of the failed data
  • the total repair bandwidth is J.
  • the total repair bandwidth is less than B (the traditional RS code requires the repair bandwidth to be the size of the entire data file).
  • a regenerated code can not only regenerate the lost encoded data but also reconstruct the original information symbols.
  • the number of storage nodes is n, and one (n, k, d) regenerative code requires at least k nodes to perform original data recovery, at least d
  • the node performs data regeneration, where ⁇ ⁇ «-1.
  • the cut limit between the source and the sink must be Foot formula (1): (1)
  • Finding the minimum value in equation (1) will constitute a minimum stored regenerative code; finding the minimum value will constitute a regenerative code with a minimum repair bandwidth.
  • MSR Minimum-Storage Regenerating and Minimum-bandwidth Regenerating
  • the sum value is obtained by first finding the minimum value of ⁇ , and then finding the minimum value of a, as in the formula (3). k(2d - k + l)
  • repair is a hybrid repair model between exact repair and partial repair. In this hybrid model, the system node (storing unencoded data) requires accurate recovery. For non-system nodes (storage coding module), function repair is performed. .
  • the function repair has the following disadvantages: 1) In the storage system, the server must know the global coding coefficient, thus requiring the server to constantly update the coding coefficient of the repair node; 2) due to the change of the coding coefficient, the system repair function and The decoding function of the data reconstruction needs to be re-adjusted; 3) Each time the repair process needs to increase the header to update the coding coefficient. Accurate repair does not require the above operations, and exact repairs can be coded into system codes.
  • is the coding matrix of ⁇ ⁇ d
  • M is the information matrix of dx «.
  • the matrix ⁇ is determined in advance and is independent of the information symbol B.
  • the matrix M contains B information symbols, wherein the symbols may be the same
  • the i-th row of the codeword matrix C can be represented as cXM, where ⁇ is the i-th row of the coding matrix ⁇ , and t is used to represent the transpose of the matrix. In this model, all symbols belong to the finite field of size q Fq.
  • Client download! ⁇ Storage nodes are represented by ⁇ , ..., ⁇ , and the jth node transmits information vectors to the client.
  • the client can receive the data matrix ⁇ C M , where ⁇ c is the k-line ⁇ ..., ⁇ ⁇ sub-matrix of the matrix ⁇ . Therefore, the client can decode the information codeword by using the characteristics of the matrix ⁇ and M.
  • A is a vector of length ⁇ , which is part of the vector ⁇ .
  • the new node replacing the node f needs to select d ⁇ h l ... , h d ⁇ from the existing storage nodes and download one symbol each.
  • These d nodes are called help nodes, and each help node a new node to the transmission symbol, the symbol for its internal operation "symbols stored help 13 ⁇ 4 transit node symbol .M / i so the new node can obtain the matrix r epair M f, wherein the d ⁇ matrix p ⁇ Line ⁇ ,..., ⁇ submatrix.
  • each new node only needs to know the coding coefficient of the failed node f, and does not need other coding coefficients.
  • the existing accurate regenerative code only considers the regeneration process of lost data after node failure, and does not consider the case of Byzantine nodes.
  • the correctness verification is not performed on the reconstructed and reproduced data, so that the entire system data is easily contaminated.
  • the data reconstruction or regeneration process when the data transmission is wrong, there is no further The way to recover stored data.
  • the technical problem to be solved by the present invention is to provide a situation in which a Byzantine node has been considered and data transmission has been considered in view of the above-mentioned situation in which the Byzantine node is not considered in the prior art, and there is no further method to recover the stored data when the data transmission is incorrect. In case of error, there is a further method to recover the data reconstruction, failure data recovery method and device against Byzantine failure in the network storage storing the data.
  • step E determining whether the restored information sequence m' can pass the verification of the CRC checksum, if yes, ending data recovery; otherwise, performing step E);
  • step E determining whether the remaining, undownloaded valid storage node is greater than 1, if yes, performing step F); otherwise, determining that the decoding failed and exiting;
  • step F downloading the encoded data and the check value stored by the two nodes in the remaining storage nodes, replacing the two storage nodes previously downloaded, obtaining the matrix Y and the checksum; and returning to step B).
  • the data encoding includes a minimum storage reproduction code or a minimum bandwidth reproduction code.
  • the CRC check value is stored on the storage node together with the coded data stored on the storage node by RS coding.
  • the encoded data is downloaded together with the encoded check value.
  • the step B) further comprises: performing error erasure decoding on each row of the matrix Y to obtain a codeword C'.
  • the step C) further comprises:
  • the step B) further comprises: performing error erasure decoding on the last dk row of the matrix Y to obtain the restored matrix C.
  • the step C) further comprises:
  • G is the (n, d ) generation matrix of the RS code encoding
  • G k and B are the constituent matrix G
  • C2' Get the matrix by the formula, where E is the third column, the first column, ... in The first - i column reconstituted matrix, S is the number of help nodes set at the time of encoding;
  • the invention also relates to a data reconstruction device for resisting Byzantine failure in network storage, comprising:
  • Data download unit for downloading the stored encoded data and check value from k storage nodes, and obtaining a matrix Y from the encoded data; obtaining a checksum from the downloaded check value, the checksum being a CRC check with;
  • a codeword obtaining unit configured to perform error erasure decoding on the matrix Y to obtain a codeword C'; and an information obtaining unit: configured to calculate the codeword C and the encoding matrix to obtain an information sequence m'; Determining whether the recovered information sequence m' can pass the verification of the CRC checksum;
  • Remaining node judging unit for judging whether the remaining, undownloaded valid storage node is greater than 1; data replacing unit: for downloading the encoded data and the check value stored by the two nodes in the remaining storage nodes, instead of replacing The two storage nodes are downloaded to obtain the matrix Y and the checksum.
  • the information obtaining unit includes:
  • the first arithmetic module used to get the matrix by the formula ⁇ / ⁇ ⁇ ! ;'; where G ⁇ -1 is the inverse of the generator matrix;
  • the first information obtaining module is configured to obtain the information sequence m′ according to the matrix U′.
  • the information obtaining unit includes:
  • a fourth arithmetic module for 'performing erasure decoding to obtain the code word of each row vector C' in the first k rows of the matrix in accordance with the matrix ⁇ ⁇ ⁇ ⁇ - 1 Lambda obtained;
  • the second information acquisition module is configured to: recover the information sequence by using the sum and the ⁇
  • the invention also relates to a method for recovering failure data against Byzantine failure in network storage, comprising the following steps: M) selecting d storage nodes to repair encoded data stored in the failed storage node i; selected d storage nodes Calculating respectively the inner product of the alpha characters in the stored encoded data; according to the d storage
  • step R determining whether the remaining, undownloaded valid storage node is greater than 1, and if so, performing step R); otherwise, determining that the recovery failed and exiting;
  • step N downloading the encoded data and the check value stored by the two nodes in the remaining storage nodes, replacing the two storage nodes previously downloaded, obtaining the matrix Y and the checksum; and returning to step N).
  • the coded data includes minimum stored reproduction code coded data or minimum bandwidth reproduction code coded data.
  • the CRC check value is stored on the storage node together with the coded data stored on the storage node by RS coding.
  • the encoded data is downloaded together with the encoded check value.
  • the invention also relates to a failure data recovery device for anti-Byzantine failure in network storage, comprising:
  • a failure data downloading unit configured to select d storage nodes to repair encoded data stored in the failed storage node i; the selected d storage nodes respectively calculate inner products of ⁇ characters and sums in the stored encoded data; Obtaining a matrix i xrf according to the encoded data stored by the d storage nodes, and obtaining a CRC checksum of the storage node i; wherein, ⁇ W' -1 ) 1 ") 2 ,... '' is called, through the storage node
  • the label i and the generator a are constructed;
  • the failed data codeword generating unit is configured to perform error erasure decoding on each of the matrices protest X(i , obtaining a codeword C′;
  • Failure data CRC verification unit used to determine whether the recovered information s can pass the verification of the CRC checksum of the storage node i;
  • Remaining storage node judging unit for judging whether the remaining, undownloaded valid storage node is greater than 1; invalid data node replacing unit: for downloading the encoded data and check value stored by the two nodes in the remaining storage nodes The matrix Y and the checksum are obtained by replacing the two storage nodes previously downloaded.
  • the data reconstruction and failure data recovery method and apparatus for implementing Byzantine failure in the network storage of the present invention have the following beneficial effects:
  • the encoding is realized by combining the RS code and the CRC checksum for the data reconstruction and regeneration process.
  • the data is reconstructed and the data is repaired when the data is MSR code and MBR code.
  • the use of CRC check in decoding is used to reduce computational complexity in both coding modes. From the analysis of error tolerance, security strength, storage and bandwidth load, it is indicated that the system will not be brought Come more loads. Therefore, there is a further way to recover stored data when it is resistant to Byzantine failure nodes and data transmission is incorrect.
  • FIG. 1 is a schematic diagram of a conventional RS code decoding process
  • FIG. 2 is a flow chart of a method for data reconstruction in the first embodiment of the present invention
  • 3 is a schematic structural diagram of a data reconstruction apparatus in a first embodiment of the present invention
  • 3A is a schematic structural diagram of an information obtaining unit in the first embodiment of the present invention.
  • FIG. 4 is a schematic flow chart of a method for repairing data of a failed node in the first embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of a failed node data repairing apparatus in a first embodiment of the present invention
  • FIG. 6 is a flowchart of a method for data reconstruction in a second embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of an information acquisition unit in a second embodiment of the present invention.
  • Fig. 8 is a transmission parameter comparison table of the first and second embodiments of the present invention.
  • reconstructing data distributed on the network includes the following steps:
  • Step S201 selects k storage nodes, and obtains a matrix Y from the encoded data stored by each node: Data Reconstruction Naturally, it is necessary to download encoded data by a certain number of storage nodes. First, it is necessary to store the encoded data in these storage nodes.
  • the storage of encoded data is as follows:
  • the CRC uses a cyclic code such that each sequence of information can be verified by a generator polynomial of order r, which is a redundant bit added to the sequence of information.
  • the maximum number of tampered nodes that can be handled by this scheme is LW-)/2"
  • the extra bandwidth required is dm. Since m' is much smaller than n-1 and r, the redundancy of storage and bandwidth can be low.
  • the original file is divided into k shares of equal size, and then encoded into n shares stored on n different nodes.
  • Each node stores and guarantees the data of any k nodes in n nodes to reconstruct the original file; when there is node data, it needs to download data from d available nodes.
  • each line of the information vector U is a codeword of length ⁇ .
  • the ith line of U is equivalent to the code word ( ⁇ ( ⁇ 0 ), ⁇ ⁇ ( ⁇ ., ⁇ (""—
  • ⁇ .( ⁇ ) is a polynomial of all elements of the i-th row of U as a coefficient
  • G is a codeword vector of > ⁇ « dimension.
  • the generator matrix of the RS code can be re-presented as G where is the forward matrix of G, ⁇ is
  • any column of the generator matrix G can be calculated by generating the element a and the index of the column, so each storage node does not need to store the entire generator matrix G during the precise regeneration process.
  • Step S202 performing error erasure decoding on each row of the matrix Y to obtain a codeword C':
  • the data of each row is error-erased and decoded, thereby obtaining the downloaded Codeword C' of k storage nodes.
  • Step S203 restores the matrix U' by the formula t/ ⁇ C' .
  • G ⁇ - 1 and obtains the information sequence m' : where G is a generator matrix.
  • the generator polynomial of the RS code encoded by the above formula (6) is used to generate the order of the element, that is, ", ..., "" as the root.
  • the sink is set from k storage. Node)., ⁇ ..., ⁇ to recover the encoded file.
  • the generator matrix G is a van der Mammon matrix, in order to make the matrix non-singular, (a °r, (a l r, -, ( ' ⁇ must Not identical, if the finite field GF( 2TM ) in which the code is located satisfies m >"lo g2 raC ⁇ , then this condition can be satisfied.
  • steps S202 and S203 are two independent processes.
  • the codeword is erased and decoded, S203 is based on the codeword recovery information sequence, and then if the obtained information sequence cannot be falsified by the check description, the selected node data is falsified (the error erase decoding process here can only correct the limited error, when the data When the amount is large, the error cannot be completely erased. Therefore, more storage node data is needed to perform the erasure decoding process again; this is a cyclic recursive process because the environment of the first embodiment is safe in the case of a Byzantine node. Not high enough to be attacked Under the conditions, using such a process is to ensure that the original data is correctly configured so that the data can be obtained by decoding the anti-Byzantine failure.
  • Step S204 Is CRCTest ⁇ ) successful?
  • the CRC verification is performed on the information series obtained in the above step, and it is determined whether the verification is successful, and if so, step S205 is performed; otherwise, step S206 is performed;
  • Step S205 The decoding succeeds, returning m' and exiting: since the obtained information sequence m' passes the CRC verification, it is judged that the reconstructed data is correct, so m' is returned as normal data, and the data reconstruction is exited.
  • Step S206 takes dk from the remaining storage nodes and combines with the encoded data of the first k nodes to form a matrix Xii :
  • this may be the data of the storage node. Invalidation (including illegal modification) or error during data transmission.
  • the sink needs to take d from the remaining storage nodes. +2-k nodes to recover encoded characters.
  • This measure includes this step and step S209; these two steps download the above-mentioned number of remaining node codes in total, retrieve the matrix Y obtained in step S201, and perform the processing of the above steps again to obtain the correct information. sequence.
  • step S207 the number of unused valid nodes remaining in the system is > 1 ? In this step, it is determined whether the number of unused valid nodes remaining in the system is greater than 1, and if so, step S209 is performed; otherwise, step S208 is performed;
  • Step S208 The decoding fails and exits. In this step, since there are not enough remaining storage nodes, it is judged that the decoding of the reconstruction fails, and the reconstruction is exited.
  • Step S209 takes two additional storage nodes and forms a new matrix Y with the downloaded encoded data: In this step, as described above, downloading more characters of the two storage nodes for data recovery, the data and The encoded data that has been downloaded in the above steps is reconstructed into a new matrix Y, and returns to step S202 to perform error erasure decoding again.
  • the condition for the end of the reconstruction is that either the original data is successfully restored or there are no available storage nodes in the system. It can be seen that the decoding algorithm of the total data reconstruction in the MSR code proposed in the first embodiment requires low computational complexity, and the RS code used can correct ⁇ - ⁇ ) /2 errors. In practice, when > 1 , the decoding process of the total data reconstruction in the MSR code needs to be performed / times to recover the original information data.
  • the first embodiment further relates to a data reconstruction apparatus, where the data reconstruction apparatus includes: a data download unit 31, a codeword acquisition unit 32, an information acquisition unit 33, a verification unit 34, and a remaining node.
  • the checking unit 34 is configured to determine whether the restored information sequence m' can pass the verification of the CRC checksum;
  • the remaining node determining unit 35 is configured to determine the remaining, not downloaded Whether the effective storage node is greater than 1;
  • the data replacement unit 36 is configured to download the encoded data and the check value stored by the two nodes in the remaining storage nodes, instead of the two previously downloaded The storage node obtains the matrix Y and the sum of the sums.
  • the data repair method includes the following steps:
  • Step S401 node i fails, the newcomer (ie, the repairer) randomly selects d storage nodes for repair:
  • the newcomer ie, the repairer
  • d storage nodes are selected, and the encoded data and CRC check values stored on the storage nodes are downloaded, so as to repair the storage on the node i.
  • Step S403 Obtain a matrix Y according to the encoded data stored by the selected d storage nodes, and obtain a CRC checksum of the node i: after obtaining the characters sent by the storage nodes in the above step S402, obtain the matrix Y, and obtain the node i at the same time. CRC checksum;
  • Step S404 Performing an error erasing decoding process on each row of the matrix Y to obtain a codeword. In this step, performing error erasure decoding on each of the matrix mats obtained above to obtain a downloaded codeword C';
  • Step S406 CRCTestO,.
  • the information m stored in the storage node i obtained in the above step is verified, and it is determined whether the CRC verification is passed (or succeeded), and if so, step S406 is performed; otherwise, step S407 is performed;
  • the CRC checksum of the node i obtained in the above step is used for CRC verification;
  • Step S407 The data is successfully reproduced, and returns ⁇ and exits. In this step, because the CRC verification is performed, it is determined that the data stored in the storage node i is successfully regenerated, and the data is returned and exited (this is the repair of the invalid data). ;
  • step S408 the number of valid nodes remaining in the system is >1? In this step, it is determined whether the number of valid nodes remaining in the system is greater than 1, if yes, step 410 is performed; otherwise, step S409 is performed;
  • Step S409 Regeneration fails, exit: because the remaining valid nodes are not enough, the regeneration fails, exits;
  • Step S410 takes two additional storage nodes, and the downloaded encoded data constitutes a new matrix Y: In this step, download two Storing more characters in the node to perform data repair of the node i, the two newly downloaded valid nodes are together with the d in the above step S401 (in this case, the number of nodes used for repair is d+2), and Returning to step S402, error erasure decoding is performed again.
  • the node i fails, data recovery is performed by accessing s existing storage nodes during the regeneration process, where d ⁇ s ⁇ wl.
  • the decoding process of losing data by y, . , ⁇ ,... is divided into two steps: First, the newcomer accesses d storage nodes and solves y, , y.,...,y. C and restore the alpha characters stored by node i; then check the CRC checksum. If the CRC is authenticated, the regeneration process is successful; otherwise, the newcomer will access two more storage nodes, then obtain the C by restoring the received decoding and restore the characters stored by node i. This process does not end until the characters stored in the failed node are properly restored. In practice, when ?>1, the decoding process of lost data reproduction in the MSR code needs to be executed to recover ⁇ characters before performing CRC checksum authentication.
  • the apparatus for data loss in the MSR code is further involved.
  • the apparatus includes: a failure data downloading unit 51, a failed data codeword generating unit 52, a failure data information acquiring unit 53, a failure data CRC verification unit 54, a remaining storage node determination unit 55, and a failed data node replacement unit 56; wherein, the failure The data downloading unit 51 is configured to select d storage nodes to repair the encoded data stored in the failed storage node i; the selected d storage nodes respectively calculate the inner product of the alpha characters in the stored encoded data;
  • the invalid data CRC verification unit 54 is configured to determine whether the recovered information s can pass through the storage node.
  • the check of the CRC checksum of i; the remaining storage node determining unit 55 is configured to determine whether the remaining, undownloaded valid storage node is greater than 1; the failed data node replacing unit 56 is configured to download two of the remaining storage nodes
  • the encoded data and the check value stored by the nodes replace the two storage nodes previously downloaded to obtain the matrix Y and the checksum.
  • the data reconstruction device and the failure data repair device are both virtual functional modules.
  • these modules are software functional modules for implementing the above method. They may be on the same physical carrier or on different physical carriers. In fact, the same is true of the device involved in the second embodiment.
  • the same is directed to a data reconstruction method that is resistant to Byzantine failure.
  • the data encoding involved in the second embodiment uses an MBR code (Minimum-bandwidth Regenerating). Minimum bandwidth reproduction);
  • MBR code Min-bandwidth Regenerating. Minimum bandwidth reproduction;
  • the data reconstruction method in the second embodiment is slightly different from that in the first embodiment due to the difference in encoding.
  • FIG. 6 shows a data reconstruction method in the second embodiment, including:
  • Step S601 selects k storage nodes, and obtains a matrix Y from the encoded data stored by each node: in this step, arbitrarily (or randomly) selects k storage nodes, and downloads the stored CRC check value of the encoded data set to obtain a matrix.
  • This step is basically the same as step S201;
  • Step S602 performing error erasure decoding on the last dk line of the matrix Y to obtain a codeword C': in this step, performing a data decoding algorithm of the RS code in the last dk line in the matrix Y obtained above, that is, error erasing decoding , get the code word C;
  • Step S604 performs error erasure decoding on each row of the matrix to obtain the first k rows of the codeword vector (ie, codeword C'): In this step, error erasure decoding is performed on each row of the matrix;
  • is one (J -Wx (J-W's all-zero matrix
  • Step S606 Is CRCTest( ') successful?
  • the CRC verification is performed on the information sequence obtained in the above step, and it is determined whether the information sequence m' passes the CRC verification. If yes, step S607 is performed; otherwise, execution is performed.
  • Step S607 Obtaining the data information ', exiting: determining that the data is correctly reconstructed, sending the obtained data and exiting the current data reconstruction;
  • Step S608 The number of valid storage nodes remaining in the system is >1? In this step, it is judged whether the number of valid storage nodes remaining in the system is greater than 1, that is, it is determined that the encoded data existing in the system is still not downloaded and the data is involved in the data. Whether the number of storage nodes is greater than 1, if yes, step 610 is performed; if not, step S609 is performed;
  • Step S609 The decoding fails, and the exit is: If the number of valid nodes in the previous step is not greater than 1, it is determined that the data reconstruction decoding fails, and the current data reconstruction is exited;
  • Step S610 takes two additional storage nodes, and the downloaded encoded data constitutes a new matrix Y: In this step, downloading more characters in the two storage nodes for data recovery, the data and the above steps have been downloaded. The encoded data is reconstructed into a new matrix Y, and returns to step S602 to perform error erasure decoding again.
  • 0 is an all-zero matrix of (d-k)x(d-k). That is to say, the information sequence m is converted into an information quantity U, and the information vector U can be represented by the operation relationship of the matrix 4, the matrix ⁇ and an all-zero matrix 0; wherein 4, 4 are symmetric matrices, obviously the dimension of U The number is dxd (or axJ).
  • 4, ⁇ are respectively a matrix derived from the information sequence m (the information sequence is the correct or original information sequence), and the ⁇ , which is mentioned later, is obtained by the decoding process.
  • the matrix by the inverse of the two matrices, can obtain the information sequence m' (the information sequence is obtained by decoding, whether the error is unknown), and the information sequence m' needs to be checked to determine whether it is consistent with the original information sequence m.
  • G is the generator matrix of the (n,d) RS code:
  • G k is a generator matrix of the (n, k) RS code, which will be used in the decoding process of data recovery.
  • the generator polynomial of the 11 ⁇ 2 code encoded by the formula (8) is used as the root of the generator, that is, ", ..., " --3 ⁇ 4 as the root, which is different from the MSR code decoding process in the first embodiment: in the MSR code An (n, d) RS decoder is used, and an (n, k) RS decoder is used in the MBR code.
  • a CRC check is performed on the decoded information sequence to verify the correctness of the recovered data. If the CRC is checked, the original data is taken and exited; otherwise, a further decoding process needs to be performed, that is, in each round of loops, two more storage nodes need to be accessed from the remaining storage nodes, and the loop ends. The condition is that either all storage nodes are accessed or the correct raw data is obtained (via CRC check).
  • the method and apparatus for repairing failure data are also referred to, and the method and apparatus for reproducing (repairing) the failure data in the MBR code in the second embodiment are similar to those of the MSR code in the first embodiment.
  • the difference from the first embodiment is that the information acquisition unit is different. Referring to FIG.
  • Figure 8 combines the above two embodiments to analyze the amount of MSR code and MBR code on error tolerance, security strength, storage, and bandwidth load.
  • the data reconstruction and data regeneration processes in the MSR code and the MBR code are discussed separately. It can be seen from the data in the table that these embodiments are resistant to Byzantine failure and are effective and do not entail more system burden.
  • failure tolerance In the analysis of failure tolerance, two main failures are considered: downtime failure and Byzantine failure. It is assumed that the failure between nodes is independent. In both cases, the failure tolerance is measured by the maximum number of failed nodes that the system can handle.
  • Downtime failure can be seen as individual characters in the codeword being erased. Since at least k nodes are needed in total data reconstruction, it is easy to conclude that the maximum number of downtime failures that the system can redundancy is n-k. For the lost data regeneration process, it is necessary to access d storage nodes, so the failure tolerance is n-d. It is worth mentioning that since the existing nodes all contain the correct data symbols, the CRC check is always correct.
  • a counterfeit attack that is, a type of Byzantine attacker destroys the reconstruction of the total data and the regeneration process of the lost data by cooperating with each other to forge data, that is, considering a collusion attack.
  • the present invention determines the minimum number of attackers who falsify data during the regeneration of total data reconstruction and lost data, and the security strength takes a value lower than this number. Forgery in the regeneration process of lost data is very effective, because even if an attacker can only access fewer nodes, the data regeneration process can transfer the forged data to other storage nodes and eventually judge that the data is valid. , thus causing the reconstructed raw data to be erroneous.
  • V since V must be a codeword, / ⁇ J + l, where n-d+1 is the minimum Hamming distance of the RS code.
  • the attacker In order to successfully forge information symbols, the attacker must attack some storage nodes so that these nodes store the corresponding coded symbols in yG, so that the code stored by the node Words and forged information symbols The number is the same. If an attacker attacks k storage nodes, when the sink happens to access the attacked nodes, the attacker can successfully falsify the data according to the decoding process. Suppose the attacker attacks b ⁇ k storage nodes. According to the decoding process, when h-b is the error correction capability of the RS code, the decoding algorithm may still receive
  • the vector is decoded as yG. Take a smaller b value, so & in the MSR code, the total data reconstruction
  • the safety strength of the process is minW,
  • the CRC check does not increase the security strength in the spoofing attack. Since the operation of obtaining a hash value is non-linear, the security strength can be improved by using a hash value. In this case, the attacker not only needs to obtain the original data information, but also needs to forge the corresponding hash value. Therefore, the security strength is at least k-l in the total data reconstruction process and at least d-l in the lost data regeneration process.
  • the CRC checksum adds an additional burden to the storage and bandwidth consumption.
  • the redundancy in the total data reconstruction process is the size of the CRC checksum, i.e., r bits. Additional r bits are added after each sequence of information to allow data to be reconstructed for data validation. Since the number of bits of the MSR code is mkcc - r , the redundancy on the storage is ⁇ - ⁇ ; mka - r and the number of bits of the MBR code is l) / 3 ⁇ 4 - r , so the redundancy rate
  • the amount of data downloaded is exactly the coding module stored by k nodes, so the redundancy ratio in bandwidth is equal to the redundancy rate on the storage.
  • the CRC character so the extra storage required for each node is (n-l)m, bit.
  • the coded data characters stored in each node are bits, and the redundancy ratio of the two best codes on the storage is '.
  • the newcomer must obtain the correct CRC checksum of the failed node to verify the correctness of the recovered data.
  • the d storage nodes being accessed need to provide newcomers with the data they store, which should also include the CRC checksum of the failed node. Since the checksum length is m, the bit, the total extra bandwidth is dm, the bit, and the total bandwidth of the 3 ⁇ 4 characters stored in the repaired invalid node in the MSR code and the MBR code is ?, and the two best codes are obtained.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及一种网络存储中抗拜占庭失效的数据重构方法:从k个存储节点下载其所存储的编码数据和校验值,得到矩阵Y并得到CRC校验和;对矩阵Y进行错误擦除解码,得到码字C';由码字C'得到信息序列m'并判断信息序列m'能否通过CRC校验,依据判断结果结束数据恢复或再下载两个新的节点存储的编码数据和校验值,再次得到矩阵Y和校验和,继续上述过程直到得到通过校验的信息序列m';否则,解码失败退出。本发明还涉及一种数据恢复装置、失效数据修复方法及装置。实施本发明的网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置,具有以下有益效果:可以抗拜占庭失效节点、数据传输有误时还有进一步的方法来恢复存储数据。

Description

网络存储中抗拜占庭失效的数据重构、 失效数据恢复方法及装置 技术领域
本发明涉及分布式网络存储领域, 更具体地说, 涉及一种网络存储中抗拜占庭失效 的数据重构、 失效数据恢复方法及装置。
背景技术
随着新的存储媒介的出现以及存储设备成本越来越低, 存储成为了一种必需品。 但 是, 对于大规模的分布式存储系统来说, 可靠性的要求也越来越高。 随着软硬件产品使 用越来越广, 宕机和拜占庭失效也越来越频繁。 为了保证可靠的存储, 需要在网络存储 系统中增加一定的冗余。 冗余可以通过一种简单的复制数据来实现,但是存储效应不高, 而糾错码提供一种不同于复制的有效存储方案。一般编码方式为一个 (n,k)MDS ( Maximum Distance Separable 最大距离可分离) 纠错码 (例如 RS码 (即 reed-solomon codes,—种前 向糾错码) ) 。 首先, 用有限域 Fq中的元素个数来表示数据文件的大小, B表示文件包 含的原始个数。 其次, 使用 RS码需要将一个原始文件分成 k个大小相等的模块, 并通过 线性编码生成 n个互不相关的编码模块,由 n个节点存储不同的模块,并保证 MDS属性, 也就是一个终端用户或信宿通过下载 n个存储节点中任意 k个节点的编码数据就可重构 原始文件。 这种编码技术在提供有效的网络存储冗余中占有重要的地位, 特别适合存储 大的文件以及档案数据备份应用。
由于节点失效或者文件损耗, 系统的冗余度会随着时间而逐渐丧失, 因此需要一种装 备来保证系统的可靠性和相应的容借性。文献 [R.Rodrigues and B.Liskov,"High Availability in DHTs: Erasure Coding vs. Replication", Workshop on Peer-to-Peer Systems (IPTPS)2005.] 中提出的纠错码, 在存储开销上是比较有效的, 然而支持冗余恢复所需要的通信开销也 比较大。 在失效节点修复过程中, 首先从系统中的 k 个存储节点中下载数据并重构原始 文件; 然后由原始文件再重新编码出新的模块, 并存储在新节点上。 该修复过程的一个 缺点是: 为恢复一个存储节点的数据需要下载整个数据文件 B ,对于修复带宽来说是一种 浪费。
RS 码是一种糾错码, 该编码不仅可以从节点失效中恢复节点所存储的数据, 也可以 从拜占庭节点(节点数据被篡改) 中恢复。 RS码工作在 m比特的符号上, 所有的符号都 来自有限域 GF(2m)。 一个 (n,d) RS码是一个线性编码, 参数 n = 2m _ l, n - d = 2t , 其中 n是一 个码字的总共符号数, d是总共信息符号数, t是 RS码错误糾正能力。在文献 [I. S. Reed and G. Solomon, "Polynomial codes over certain finite field,"J.Soc.Indust. and Appl. Math.(SIAM), vol. 8 (2), pp.300-304, 1960]中给出 RS码的编码过程。 首先, 令有限域 GF(2m)中的 d个信 息符号序列为 M = [M。, 山 U(X)是由 U 中信息符号作为系数的多项式, 可以表示成: u{x) = uQ + u1x -\ ^ ud_xx― 。 其次 , 码字 多 项 式 c(x)相 当 于 u(x)被编码为 : c(x) = u(x)x"-d + (u(x)xn-d mod g(x))„ 其中 g(x)是 RS码的一个生成多项式, g(x)可以表示为: g(x) = (;c α2 ) · · · ( — ^ go + giX十… + g2ijc2i , 其中 a 是有限域 GF(2m)的一个生成元, gi s GF(2m ) . RS码是一个对称码, 其中信息符号 ,,, ^是多项式 c(x)中的系数。 RS码 也可以通过将码字 C看成信息序列进行编码, Ρ
Figure imgf000003_0001
»
RS码的解码过程相对复杂。令 r(x)为所接收的多项式, r( ) = c(x) + e(x) + χ(χ) = c(x) + λ{χ), 其中 e( ) = DjXj是错误多项式, ,(χ) = γ.χ'是擦除多项式, (X) =∑n^xj = e(x) + γ(χ) 是正误表多项式。 由于 g(x)和 C(x)有
Figure imgf000004_0001
, 可以根据这些根来判断错误位置并 恢复信息符号。 RS码提供码字之间最大的距离, 因而是一种最佳码, 只要差错个数 V满 一个 (n,d)RS码就可进行数据恢复, 其中 s是擦除的数或不能复原的符号
Figure imgf000004_0002
数。
图 1 列出了 RS 码解码的基本流程, 第一步中的 n-k=2t 个伴随式主要是通过 s = ( ,..., ) = cHr计算, 其中 Η为 RS码的校验矩阵, = α'·) = ό,1≤ ≤2 第二步中, 假设接受矢量中存在 V (不超过 t)个错误, 分别位于 ,Λ,.,., , e(x) = xh+xh+--xk , 错 误多项式 σ(χ) = (1— ΑΛ)(1— 2χ)···(1— Ar¾) = (7。+CTlx + "' + CTvxv , 其中 β^' , Ζ = 1,2"··,ν反映了错 误位置的情况。 第三步用钱搜索解出错误多项式 σ(χ)的根, 得到错误位置数, 再由错误位 置数求得错误值从而得到错误多项式 e(x)。 最后由 c(x)=r(X)-e(x)判定码字, 从而恢复信息 符号。 这种处理错误和擦除的解码也称作错误擦除码。 在 GF(2m)中, 加法相当于位之间 的异或操作,乘法是通过乘法表或离散的对数表进行运算。为了降低乘法操作的复杂性, 可以构造一个不同的生成矩阵, 将乘法操作也转换为异或操作。
再生码在修复过程通过在每个节点存储额外的符号或者访问更多的存储节点来实现 带宽效益。 令《为存储在每个存储节点上的有限域 <^(2 符号数, ≤«为在再生过程从 每个存储节点所下载的数据量。 为了恢复失效节点所存储的数据, 一个新来者 (即失效 数据的恢复者) 需要访问 d个存活节点, 则总共修复带宽为 J 。 一般情况下, 总共修复 带宽少于 B (而传统的 RS码需要的修复带宽为整个数据文件的大小)。 一个再生码不仅 可以再生丟失的编码数据还可以用于重构原始信息符号。令存储节点数为 n,一个( n,k,d ) 再生码要求至少 k个节点进行原始数据恢复,至少 d个节点进行数据再生,其中 ≤^ ≤«-1。 在文献 [Y. Wu, A.G.Dimakis, and K. Ramchandran, "Deterministic regenerating codes for distributed storage," in Proc. of 45th Annual Allerton Conference on Control, Computing, and Communication, UrbanaChampaign, Illinois, September 2007]的研究结果中, 表 ^信源和信 宿之间的割集界限值必须满足公式( 1 ): (1)
Figure imgf000004_0003
在公式( 1 )中求出《最小值将会构成一个最小存储的再生码; 求出 最小值将会构成 一个最小修复带宽的再生码。 在实际中, 存储量《和修复带宽 不可能同时取到最小值, 因此在存储和修复带宽间存在一个折中。 这两个极值点分别叫做 MSR 码 ( Minimum- storage Regenerating , 最小存储再生 ) 和 MBR 码 ( Minimum-bandwidth Regenerating, 最小带宽再生)。 在 MSR码中, 和 值可以通过先求出 "的最小值, 然 后求出满足要求的 的最小值, 如公式(2)所述: .(2)
Figure imgf000004_0004
在 MBR码中, 《和 值是先通过求出 β的最小值, 再求出 a的最小值, 如公式( 3 ) k(2d - k + l)
所述: 2B
k(2d - k + l)
一个参数为 Αβ)的 (η, k, d ) RC码, 满足最佳的条件是: 1 ) (α,Αβ)在公式(1 ) 中取等号; 2 )减小 "或 值会导致新的参数不满足公式( 1 )。 因此上述 MSR码和 MBR 码均是最佳再生码。
, 令 = 1 , 则公式( )和 (3 )分别筒化为:
Figure imgf000005_0001
当节点失效, 有三种修复方式, 分为精确修复、 功能修复和系统部分精确修复。 在精 确修复中, 失效的模块需要正确构造, 恢复的信息和丢失的一样; 在功能修复中, 新产 生的模块可以包含不同于丢失节点的数据, 只要修复的系统支持 MDS码属性; 系统部分 精确修复是精确修复和部分修复的之间的一个混合的修复模型, 在这个混合模型, 对于 系统节点 (存储未编码数据)要求必须精确恢复, 对于非系统节点 (存储编码模块), 则 进行功能修复。 相比精确修复, 功能修复具有以下不足: 1 )在存储系统中, 服务器必须 知道全局的编码系数, 因而要求服务器必须不断更新修复节点的编码系数; 2 ) 由于编码 系数的变更, 系统修复函数和数据重构的解码函数均需要重新调整; 3 )每次修复过程均 需要增加包头以更新编码系数。 精确修复不需要以上操作, 而且精确修复可以编码成系 统码。
现有的精确再生码中, 存储节点中的每个码字可以用矩阵 C(w x c 的第 i行表示, 矩 阵 C的每一行均有 c个符号,而矩阵 C是由 C = ^M求出,其中 ^为 η χ d的编码矩阵, M为 dx« 的信息矩阵。 矩阵 ^是事先就确定的且独立于信息符号 B。 矩阵 M包含了 B个信息符号, 其中的符号有可能是一样的。 码字矩阵 C的第 i行可以表示为 cXM , 其中 ^为编码矩阵 ^的第 i行, t用来表示矩阵的转置。 在该模型中, 所有的符号均属于大小为 q的有限域 Fq。
数据重构是指客户端从任意的 k个存储节点获取 k«符号并解码出信息矩阵M。 客户端 下载的!^个存储节点用 ^,…,^表示, 第 j节点将信息向量 /传输给客户端。 这样客 户端可以收到数据矩阵^ CM, 其中^ c是矩阵 ^的 k行^ ...,^ }子矩阵。 所以, 客户端就 可以利用矩阵 ^和 M的特性解码出信息码字。
在失效节点的精确再生过程中, A为长度为 α的向量, 它为向量 ^的一部分。 为了恢 复失效节点 f,代替节点 f的新节点需要从现存存储节点中选择 d个 {hl ... ,hd}并各下载一个 符号, 这 d个节点称为帮助节点, 每个帮助节点传输一个符号给新节点, 该符号为其存储 的"个符号的内部运算, 帮助节点 1¾传输的符号为 .M/i 因此新节点可以获得矩阵 repairM f , 其中 p∞为矩阵 ^的 d行 {^,..., }子矩阵。 在再生过程中, 各个新节点只需要 知道失效节点 f的编码系数, 并不需要其他的编码系数。
现有精确再生码只考虑到节点宕机失效后丢失数据的再生过程, 而并没有考虑拜占 庭节点的情况。 对于重构以及再生的数据没有进行正确性验证, 从而使得整个系统数据 极易被污染。 另外, 在执行数据重构或再生过程中, 当数据传输有误时, 并没有进一步 的方法来恢复存储数据。
发明内容
本发明要解决的技术问题在于, 针对现有技术的上述没有考虑拜占庭节点的情况、 数据传输有误时没有进一步的方法来恢复存储数据的缺陷, 提供一种已考虑拜占庭节点 的情况、 数据传输有误时还有进一步的方法来恢复存储数据的网络存储中抗拜占庭失效 的数据重构、 失效数据恢复方法及装置。
本发明解决其技术问题所采用的技术方案是: 构造一种网络存储中抗拜占庭失效的 数据重构方法, 包括如下步骤:
A )从 k个存储节点下载其存储的编码数据和校验值, 由这些编码数据得到矩阵 Y; 由下载的校验值得到校验和, 所述校验和为 CRC校验和;
B ) 对所述矩阵 γ进行错误擦除解码, 得到码字 σ ;
c ) 将码字 σ 与编码矩阵进行运算得到信息序列 m' ;
D )判断所述恢复的信息序列 m' 是否能够通过所述 CRC校验和的校验,如能, 结束数据恢复; 否则, 执行步骤 E );
E )判断剩下的、未下载的有效存储节点是否大于 1 ,如是,执行步骤 F ); 否则, 判断解码失败并退出;
F )在剩下的存储节点中下载两个节点存储的编码数据和校验值, 替代之前下载 的两个存储节点, 得到所述矩阵 Y和校验和; 并返回步骤 B )。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构方法中, 所述数据编码包 括最小存储再生码或最小带宽再生码。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构方法中, 所述 CRC校验值 通过 RS编码后与存储在所述存储节点上的编码数据一起存储在所述存储节点上;所述步 骤 A ) 中, 其编码数据和编码后的校验值一起下载。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构方法中,所述步骤 B )进一 步包括: 对所述矩阵 Y的每一行执行错误擦除解码, 得到码字 C' 。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构方法中,所述步骤 C )进一 步包括:
C1 ) 由公式 t/' = C' . G 得到矩阵 U' ; 其中, G^-1是生成矩阵前 k列的逆;
C2 )依据所述矩阵 U' , 得到信息序列 m' 。
在本发明所述的一种网絡存储中抗拜占庭失效的数据重构方法中,所述步骤 B )进一 步包括: 对所述矩阵 Y的最后 d-k行执行错误擦除解码, 得到所恢复的矩阵 C' 的最后 d-k行码字 CdA ; 其中, 所述 C'是一个 αχ«维的码字向量。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构方法中,所述步骤 C )进一 步包括:
CY )通过公式 =^-¾ 得到矩阵 Λ , 并计算 Λ · ; 其中, 是 的转置 矩阵, G是(n,d ) RS码编码时的生成矩阵, Gk和 B是构成生成矩阵 G的两个子矩阵, 是子矩阵 的逆; 0k 是子矩阵 的前 k列, λ是所恢复码字向量 C ' 中的最后 d-k 行中的码字;
C2' )通过公式 得到矩阵 其中, E是 · β中的第 Λ列、第 列、…、 第 — i列重新组成的矩阵, S是编码时设定的帮助节点数;
C3' )在矩阵 Γ 的每一行中执行错误擦除解码,得到码字向量 C'的前 k行矩阵 G 按照 4 = . ( 1得到 A;
A, A2
C4' )通过取得的 和 通过 恢复信息序列 m' ; 其中, 0是一个
A2 O
(d-k)x(d-k)的全零矩阵。
本发明还涉及一种网络存储中抗拜占庭失效的数据重构装置, 包括:
数据下载单元: 用于从 k个存储节点下载其存储的编码数据和校验值, 由这些 编码数据得到矩阵 Y; 由下载的校验值得到校验和, 所述校验和为 CRC校验和;
码字取得单元: 用于对所述矩阵 Y进行错误擦除解码, 得到码字 C' ; 信息取得单元: 用于将码字 C 与编码矩阵进行运算得到信息序列 m' ; 校验单元: 用于判断所述恢复的信息序列 m' 是否能够通过所述 CRC校验和的 校验;
剩余节点判断单元: 用于判断剩下的、 未下载的有效存储节点是否大于 1; 数据替换单元: 用于在剩下的存储节点中下载两个节点存储的编码数据和校验 值, 替代之前下载的两个存储节点, 得到所述矩阵 Y和校验和。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构装置中, 所述信息取得单 元包括:
第一运算模块: 用于由公式^/^ ^^^得到矩阵!;' ; 其中, G^-1是生成矩阵的 逆;
第一信息取得模块: 用于依据所述矩阵 U' , 得到信息序列 m' 。
在本发明所述的一种网络存储中抗拜占庭失效的数据重构装置中, 所述信息取得单 元包括:
第二运算模块: 用于通过公式 ^=^— .0 得到矩阵¾, 并计算 ·β; 其中, 是 的转置矩阵, G是(n,d) RS码编码时的生成矩阵, GA和8是构成生成矩阵 G的两 个子矩阵, 是子矩阵(¾的逆; 是子矩阵<¾的前 k列, ¾是所恢复码字向量 中的最后 d-k行中的码字;
第三运算模块: 用于通过公式 F = _£, 得到矩阵 其中, E是 中的 第 Λ列、 第 Λ列 第 ^列重新组成的矩阵, s是编码时设定的帮助节点数;
第四运算模块:用于在矩阵 '的每一行中执行错误擦除解码,得到码字向量 C'的 前 k行矩阵 按照 Λ ^·^-1得到 Λ;
Α ΑΊ
第二信息取得模块: 用于通过取得的 和 Λ,通过 , 恢复信息序列
0
其中, 0是一个(J- )x(i - )的全零矩阵。
本发明还涉及一种网络存储中抗拜占庭失效的失效数据恢复方法, 包括如下步骤: M) 选择 d个存储节点对失效的存储节点 i中存储的编码数据进行修复; 被选择 的 d个存储节点分别计算所存储的编码数据中的 α个字符和 的内积;依据所述 d个存储 节点存储的编码数据, 得到矩阵 i;xd , 并得到存储节点 i 的 CRC 校验和; 其中, gi =[1, WH 1)2,..^-1)^1] , 通过存储节点标号 i和生成元构建;
N )在所述矩阵 r„xd的每一行执行错误擦除解码, 得到码字 C;
0 )通过公式 M = C'.G- 1和(gA)T Υ^Α , 得到存储节点 i所存储的信息 s; P )判断所述恢复的信息 s是否能够通过所述存储节点 i的 CRC校验和的校验, 如能, 结束数据恢复; 否则, 执行步骤 Q );
Q )判断剩下的、 未下载的有效存储节点是否大于 1 , 如是,执行步驟 R ); 否则, 判断恢复失败并退出;
R )在剩下的存储节点中下载两个节点存储的编码数据和校验值, 替代之前下载 的两个存储节点, 得到所述矩阵 Y和校验和; 并返回步骤 N )。
在本发明所述的一种网络存储中抗拜占庭失效的失效数据恢复方法中, 所述编码数 据包括最小存储再生码编码数据或最小带宽再生码编码数据。
在本发明所述的一种网络存储中抗拜占庭失效的失效数据恢复方法中, 所述 CRC校 验值通过 RS编码后与存储在所述存储节点上的编码数据一起存储在所述存储节点上; 所 述步骤 M ) 中, 其编码数据和编码后的校验值一起下载。
本发明还涉及一种网络存储中抗拜占庭失效的失效数据恢复装置, 包括:
失效数据下载单元: 用于选择 d个存储节点对失效的存储节点 i中存储的编码数 据进行修复;被选择的 d个存储节点分别计算所存储的编码数据中的 α个字符和 的内积; 依据所述 d个存储节点存储的编码数据,得到矩阵 i xrf ,并得到存储节点 i的 CRC校验和; 其中, ^^W'-1)1 ")2,… ' ' 叫, 通过存储节点标号 i和生成元 a构建;
失效数据码字生成单元: 用于在所述矩阵 „X(i的每一行执行错误擦除解码, 得到 码字 C' ;
失效数据信息取得单元: 用于通过公式 M = C'.G- 1和(&A)T +(al4)"(gA) , 得到存 储节点 i所存储的信息 s;
失效数据 CRC验证单元: 用于判断所述恢复的信息 s是否能够通过所述存储节 点 i的 CRC校验和的校验;
剩余存储节点判断单元: 用于判断剩下的、 未下载的有效存储节点是否大于 1 ; 失效数据节点替换单元: 用于在剩下的存储节点中下载两个节点存储的编码数据 和校验值, 替代之前下载的两个存储节点, 得到所述矩阵 Y和校验和。
实施本发明的网络存储中抗拜占庭失效的数据重构、 失效数据恢复方法及装置, 具 有以下有益效果: 由于将 RS码和 CRC校验和结合来用于数据重构和再生过程, 实现了 编码数据采用 MSR码和 MBR码时的数据重构和失效数据修复。 考虑错误数据的存在, 在两种编码方式中均应用了在解码中采用 CRC校验来降低计算复杂性, 从错误容忍度、 安全强度、 存储和带宽负载的分析中, 表明不会给系统带来更多的负载。 所以, 可以抗 拜占庭失效节点、 数据传输有误时还有进一步的方法来恢复存储数据
附图说明
图 1是现有的 RS码解码流程示意图;
图 2是本发明第一实施例中数据重构的方法流程图; 图 3是本发明第一实施例中数据重构装置的结构示意图;
图 3A是本发明第一实施例中信息取得单元的结构示意图;
图 4是本发明第一实施例中修复失效节点数据的方法流程示意图;
图 5是本发明第一实施例中失效节点数据修复装置结构示意图;
图 6是本发明第二实施例中数据重构的方法流程图;
图 7是本发明第二实施例中信息取得单元的结构示意图;
图 8是本发明第一、 第二实施例的传输参数比较表。
具体实施方式
下面将结合附图对本发明实施例作进一步说明。
图 2是本发明第一实施例中数据重构的流程图, 在图 2中, 重构分布存储在网络上 的数据包括如下步骤:
步骤 S201 选择 k个存储节点, 并由各节点所存储的编码数据得到矩阵 Y: 数据重构 自然需要由一定数量的存储节点下载编码数据, 首先需要的是在这些存储节点中存储编 码数据。 在第一实施例中, 编码数据的存储筒述如下:
由于在第一实施例中得到一种精确再生码能够抗拜占庭失效, 因此在原始数据重构或 恢复失效节点数据后均需要进行完整性校验; 用于进行完整性校验的数据需要事先存储 在各存储节点中。 对于校验数据而言, 主要考虑两种认证方案: CRC ( Cyclic Redundancy Check, 循环冗余校验码)和哈希函数。 这两种方案都需要在原始数据编码之前添加额外 的冗余。 由于 CRC实施起来较哈希函数筒单而且所需要的冗余较少, 因此在第一实施例 中优先采用 CRC。
CRC使用一种循环码, 使得每个信息序列都可以通过阶为 r的生成多项式进行验证, r是增加到信息序列的冗余位。一个 CRC码所能检测到的错误位数和冗余位 r相关, 即一 个冗余位为 r的 CRC码不能检测超过 (1/ 2^)100%比例的错误。 例如, 当 r=32, 误检测错误 位概率是关于 10-1。的阶数。 由于原始文件通常比较大, 通过 CRC码所增加的冗余相对来 说就比较小。 例如, 一个( 100, 20, 38 ) MSR码中, 文件大小 B=19x20=380, 每个节点 存储量《 = 19 , 当使用有限域 GF(2U) ,原始文件总位数为 4180。如果 r=32,只增加了 0.77% 冗余。 因此, 在第一实施例中, 假设 CRC校验和已经加入到原始数据中并且合成后数据 大小为 B。
在数据重构或失效再生过程中, 为了证实所恢复的编码数据和失效节点所存储的数据 相同, 需要依赖于存储在其他节点的关于失效节点的校验和信息, 即相当于每个存储节 点都要存储其他 n-1个存储节点的 CRC校验和。 当新来者 (或修复者)访问 d个现有节 点进行数据修复时, 需要从这些存储节点中下载失效节点的 CRC校验和。 如果被墓改的 存储节点数不超过 LW-l) / 2」, 则新来者可以通过对所有接收的 CRC校验和进行判断来获 得正确的 CRC校验和。 考虑两种情况:
1 )当 ?比较大时,考虑一个数例:一个 (100,20,38)MSR码中,《 = 19,β = 4.18Μβ, ? = 1000。 每个节点所存储的总位数为 19x11x1000=209000 bits.如果在每个节点上增加一个 32 位 CTC校验和, 冗余为 r(n-l) / ?am = 32x 99 / 209000 « 1.5% , 传输 CRC校验和所需要的额外带 宽是 rJ / ¾m = 1216/ 418000 « 0.3%。 因此对于比较大的 β , 所增加的存储和带宽冗余都是可 接受的。 2 ) 当 比较小时, 采用纠错码来编码 r位的 CRC校验和。 这样可以提高存储和带宽 效应。 首先, 选择一个有限域 GF(2™'), 其中 2™'≥"-l。 然后通过一个 (《- U' =「r/m'])RS码 来编码 CRC校验和。 值得一提的是, 这个编码不同于用于 MSR数据再生的 RS码。 在将 一个存储节点的 CRC校验和编码成 n-1个字符,并将 n-1个字符分配给其他存储节点时, 每个节点需要存储额外的 (n-l)m,位。 当一个新来者通过访问 d个存储节点来恢复失效节 点 i时, 被访问的节点除了发送自己所存储的编码块, 也将节点 i的 CRC校验和发送出 去。 新来者通过纠错译码来恢复 CRC校验和。 在所访问的 d个存储节点中, 这种方案所 能处理的被篡改的节点最大数是 LW- )/2」, 所需要的额外带宽是 dm,。 由于 m'远小于 n- 1和 r , 因此存储和带宽的冗余均可 低。
在第一实施例中,釆用一个参数为 [n,k,d=2k-2]的 MSR码为例,对数据重构和失效(特 别是拜占庭失效) 的数据进行数据修复做出示例性说明。 因此, 在本步骤中, 当数据重 构开始时, 下载所选择的 k个存储节点上存储的编码数据及其存储的 CRC校验和, 并且 由上述下载得到的编码数据得到矩阵 Y。
在第一实施例一个参数为 [n,k,d=2k-2]的最佳 MSR码中, 将原文件分成大小相等的 k 份, 然后编码成 n份分别存储在 n个不同的节点上, 每个节点存储量为 并保证 n个节 点中任意 k 个节点的数据就可重构原文件; 当有节点 数据需要从 d 个可用节点下载数据。 假设所有
Figure imgf000010_0001
的数据字符都是来自有限域 G (2™)中的元, 在 = 1的情况下, 总数据为 mB比特。
将一个信息序列 m = (mo,m^..,mB— 转换成一个大小为 o <d的信息矢量 U , = (ί-1)(α + ί)-ί(ί + ΐ)/2+ j
Figure imgf000010_0002
2 =( 1+«/2)(«+1)— ^ + ivs+ ―"。 令 ί/^Α,^],从上述构造中可以得出 4均是大小为 α α的对称矩阵。
在这个编码中,信息矢量 U的每一行都是一个长度为 η的码字。采用一个 (w,J = 2c RS 码 来 构 造 MSR 码 , U 的 第 i 行 即 相 当 于 码 字 (Α0),Α·(Α··.,Α(""—
其中 Α.(χ)是以 U的第 i行所有元素作为系数的一个多项式, 即 ( = ^ , a是有 限域 GF、7T、 的一个生成元。 通过矩阵形 式可以描述为 : U G = C , 其 中 1 1 … 1
G , C是一个《><«维的码字向量。 将 C中的第 i列分布到存储
Figure imgf000010_0003
节 点 i , = l,... 。 RS 码 的 生 成 矩 阵 可 以 重 新 表 示 成 G 其中 是 G 的前 行矩阵, Δ是以
Figure imgf000011_0001
( )", ^1)", ..., ^"-1)"为对角线元素的对角线矩阵。 可以推出存储节点 i所存储的《个字符是
U 8i 其中 是 中第 i列。
(m
需要注意的是生成矩阵 G的任一列可以通过生成元 a和该列的指标计算, 因此每个存 储节点在精确再生过程不需要存储整个生成矩阵 G。
步骤 S202 在矩阵 Y的每一行执行错误擦出解码, 得到码字 C' : 在本步骤中, 在上 述得到的矩阵 Y中, 对其每一行的数据进行错误擦出解码, 进而得到已下载的 k个存储 节点的码字 C' 。 执行借误擦除解码来获得码字 C' , 即码字矩阵的前 d列, 令 为 G的 前 d列, 则恢复的信息序列 U,可以通过 [/ ' = C- G"-1来获得, 其中 G*-1是 的逆。
步驟 S203 由公式 t/^ C' . G ^-1恢复矩阵 U' , 进而获得信息序列 m' : 其中, G是生 成矩阵。 在第一实施例中, 由上述公式 (6 ) 所编码的 RS码的生成多项式以生成元的阶 即《 ,...,《"作为根。 为不失一般性, 设信宿从 k个存储节点)。,^..., ^来恢复编码文件。 可以看出生成矩阵 G为范德蒙矩阵, 为了使得矩阵为非奇异的, (a°r, (alr,-, ( 'Ύ必须互 不相同, 如果这个编码所在的有限域 GF(2™)满足 m >「log2 raC^ , 则这个条件可以满足。 在 第一实施例中, 步骤 S202和 S203是两个独立过程。 S202是对码字进行擦除解码, S203 是根据码字恢复信息序列, 然后如果得到的信息序列不能通过校验说明所选择的节点数 据被篡改(这里的错误擦除解码过程只能糾正有限错误, 当数据量大时就不能完全擦除 错误), 因而需要更多的存储节点数据再次进行擦除解码过程; 这是一个循环递推过程, 因为第一实施例的环境是在有拜占庭节点情况下即安全度不高易被攻击的条件下, 采用 这样一个过程是确保原数据被正确构造, 使得解码得到的数据可以抗拜占庭失效。
步骤 S204 CRCTest ^ )成功? 在本步骤, 对上述步骤中得到信息系列 进行 CRC 验证, 并判断验证是否成功, 如是, 执行步驟 S205; 否则, 执行步驟 S206;
步驟 S205 解码成功,返回 m' 并退出:由于取得的信息序列 m' 通过了 CRC验证, 判断重构数据正确, 因此将 m' 做为正常数据返回, 并退出数据重构。
步骤 S206 从剩余的存储节点中取 d-k个, 并和一开始的 k个节点的编码数据结合形 成矩阵 Xii : 在本步骤中, 由于信息序列 m' 没有通过 CRC验证, 这可能是存储节点的数 据失效(包括被非法修改) 或数据传输过程中出现错误, 为解决或验证这一问题, 除了 已下载的 k个存储节点中的编码数据之外,信宿还需要从剩下的存储节点中取 d+2-k个节 点来恢复编码字符。 这一措施包括了本步骤和步驟 S209; 这两个步骤总共下载了上述数 量的剩余节点编码, 重新得到在步驟 S201中得到的矩阵 Y, 并再一次进行上述步驟的处 理, 以得到正确的信息序列。 步骤 S207系统中剩下的未用的有效节点数 > 1 ? 在本步骤中, 判断系统中剩下的未用 的有效节点数是否大于 1, 如是, 执行步骤 S209; 否则, 执行步骤 S208;
步骤 S208 解码失败, 退出; 在本步骤, 由于已经没有足够的剩余存储节点, 判断本 次重构解码失败, 退出本次重构。
步骤 S209 取额外的两个存储节点, 并和已下载的编码数据构成新的矩阵 Y: 在本步 骤中, 如上所述, 下载两个存储节点中的更多字符来进行数据恢复, 这些数据和上述步 骤中已经下载的编码数据重新构成新的矩阵 Y, 并返回步骤 S202, 再次进行错误擦除解 码。
在上述方法中, 重构结束的条件是要么成功恢复原始数据, 要么系统中没有可用存 储节点。 可以看出第一实施例中所提出的 MSR码中总数据重构的解码算法所需要的计算 复杂性低, 并且所使用的 RS码可以糾正 ι - ί ) /2」个错误。 在实际中当 ? > 1时, MSR码 中总数据重构的解码过程需要执行 /?次来恢复原始信息数据。
如图 3 所示, 第一实施例中还涉及一种数据重构装置, 该数据重构装置包括: 数据 下载单元 31、 码字取得单元 32、 信息取得单元 33、 校验单元 34、 剩余节点判断单元 35 和数据替换单元 36; 其中, 数据下载单元 31用于从 k个存储节点下载其存储的编码数据 和校验值, 由这些编码数据得到矩阵 Y; 由下载的校验值得到校验和,所述校验和为 CRC 校验和; 码字取得单元 32用于对所述矩阵 Y进行错误擦除解码, 得到码字 C' ; 信息取 得单元 33用于将码字 C 与编码矩阵进行运算得到信息序列 m' ;校验单元 34用于判断 所述恢复的信息序列 m' 是否能够通过所述 CRC校验和的校验; 剩余节点判断单元 35 用于判断剩下的、 未下载的有效存储节点是否大于 1 ; 数据替换单元 36用于在剩下的存 储节点中下载两个节点存储的编码数据和校验值, 替代之前下载的两个存储节点, 得到 所述矩阵 Y和校全和。
如图 3A所示, 在第一实施例中, 信息取得单元 33进一步包括: 第一运算模块 301 和第一信息取得模块 302;其中,第一运算模块 301用于由公式 [/' = C' G 得到矩阵 U' ; 其中, G^-1是生成矩阵 G前 k列的逆; 第一信息取得模块 302用于依据所述矩阵 U' , 得到信息序列 m' 。
在第一实施例中还涉及一种 MSR码中丟失数据再生的方法。 如图 4所示, 该数据修 复方法包括如下步驟:
步骤 S401 节点 i失效, 新来者 (即修复者 ) 随机选择 d个存储节点进行修复: 在本 步骤中, 已经发现(或确定) 节点 i失效, 也就是节点 i上存储的编码数据已经失效或被 改, 由上述正常的数据重构过程已经不能将数据重构出来; 为此, 选择 d 个存储节点, 下载这些存储节点上存储的编码数据和 CRC校验值, 以便于修复节点 i上存储的编码数 据;
步骤 S402 被选择的存储节点计算所存储的 α个符号和 g,的内积: 在本步骤中, 被选 择的存储节点将其存储的 α个符号与 gi运算得到其内积, gi =[1, (α!'-1)1 , (α!'-1)2..., (α!'-1)"-1], 可 以通过节点标号 i和生成元构造, 并将合成的字符发送给修复者;
步骤 S403 根据所选择的 d个存储节点存储的编码数据得到矩阵 Y, 并得到节点 i的 CRC校验和: 取得上述步骤 S402中个存储节点发送的字符后, 得到矩阵 Y, 同时得到节 点 i的 CRC校验和; 步骤 S404 在矩阵 Y的每一行执行错误擦出解码过程, 获得码字 在本步骤中, 在上述得到的矩阵 Υ中的每一行执行错误擦除解码, 得到下载的码字 C';
步骤 S405 计算 M =C'-G- 1, 通过 M和公式( 7 ) (即 (g^ +(ai-ir(glA2y ), 得到存储 节点 i所存储的信息 m,; 在本步骤中, 得到了节点 i存储的信息 m,;
步骤 S406 CRCTestO,.)成功? 在本步骤中, 对上述步骤中得到的存储节点 i 中存储 的信息 m,进行验证, 并判断该 CRC验证是否通过(或成功), 如是, 执行步骤 S406; 否 则, 执行步骤 S407; 在本步骤中, 使用上述步骤中得到的节点 i的 CRC校验和与信息 进行 CRC验证;
步骤 S407 数据再生成功, 返回 ^并退出; 在本步骤中, 由于通过上述 CRC验证, 所以判断存储节点 i存储的数据被成功再生, 将其返回并退出本次数据再生(或失效数据 的修复);
步骤 S408 系统中剩余的有效节点数 >1? 在本步骤中, 判断系统中剩余的有效节点 数是否大于 1, 如是, 执行步驟 410; 否则执行步骤 S409;
步驟 S409 再生失败, 退出: 因为剩余的有效节点不够, 所以再生失败, 退出; 步骤 S410 取额外的两个存储节点, 和已下载的编码数据构成新的矩阵 Y: 在本步骤 中, 下载两个存储节点中的更多字符来进行节点 i的数据修复, 这两个新下载的有效节点 与上述步骤 S401中的 d个一起(此时,用于修复的节点数为 d+2个),并返回步骤 S402, 再次进行错误擦除解码。
综上所述, 在第一实施例中, 如果节点 i失效, 在再生过程中通过访问 s个现有存储 节点来进行数据恢复, 其中 d≤s≤w-l。 不失一般性, 假设访问的存储节点是 , ,..., — 每个被访问的存储节点计算它的《个字符和& =[1,(α,-1)1,(α'-1)2...,(α'-1Γ1]的内积, gi可以通 过节点标号 i和生成元构造, 并将合成的字符发送给修复者(即具体执行修复的部分或设 备)。 由于 MSR码是一个线性编码, 通过所传输的合成字符, y,. ,^ ,...,)^ 可以被解码成 码字 C, 其中 c = ([/.G) = (g, ·ί/)·<5。 如果 (n s) + 2e<n d + 1, 其中 e是这 S个合成字符中 错误的数, 用 G 的前 d 列矩阵 G*的逆乘以码字 c, 可以获得& .[/, 也就相当于 •041,4) = (gi .4,gi .A2)。 由于 & 是 第 i 列的转置, 是对称矩阵, 因此 (g,A = A . · = 1,2。 失效节点 i 所存储的 个字符可以通过公式 ( 7 ) 来恢复: {81 )7 +{ai-l)a{giA2)T.{l)
通过 y,. ,^ ,..., 进行丟失数据再生的解码过程分为两步: 首先, 新来者访问 d个存 储节点并解出 y , ,y. ,...,y. 来获得 C并恢复节点 i所存储的 α个字符;然后检验 CRC校验 和。 如果通过 CRC认证, 则再生过程成功; 否则, 新来者将访问两个更多的存储节点, 然后通过对所收到的 解码来获得 C并恢复节点 i所存储的 个字符。 这个过程 直到失效节点所存储的字符被正确恢复才结束。 在实际中当 ?>1时, 在进行 CRC校验和 认证之前, MSR码中丟失数据再生的解码过程需要执行 次来恢复 βα个字符。
在第一实施例中还涉及一种 MSR码中丢失数据再生的装置,如图 5所示,该装置包括: 失效数据下载单元 51、 失效数据码字生成单元 52、 失效数据信息取得单元 53、 失效数据 CRC验证单元 54、 剩余存储节点判断单元 55和失效数据节点替换单元 56; 其中, 失效 数据下载单元 51用于选择 d个存储节点对失效的存储节点 i中存储的编码数据进行修复; 被选择的 d个存储节点分别计算所存储的编码数据中的 α个字符和 的内积; 依据所述 d 个存储节点存储的编码数据, 得到矩阵 i xd , 并得到存储节点 i的 CRC校验和; 其中, gi =[i, '-1)1^'-1)2,..^'-1)叫, 通过存储节点标号 i和生成元构建; 失效数据码字生成单元
52用于在所述矩阵 U 每一行执行错误擦除解码, 得到码字 失效数据信息取得单元
53用于通过公式 M C'.CT1和 (gAy +^H A , 得到存储节点 i所存储的信息 s; 失效 数据 CRC验证单元 54用于判断所述恢复的信息 s是否能够通过所述存储节点 i的 CRC 校验和的校验; 剩余存储节点判断单元 55用于判断剩下的、 未下载的有效存储节点是否 大于 1; 失效数据节点替换单元 56用于在剩下的存储节点中下载两个节点存储的编码数 据和校验值, 替代之前下载的两个存储节点, 得到所述矩阵 Y和校验和。
在第一实施例中, 上述数据重构装置和失效数据修复装置均是虚拟的功能模块, 实 际上, 这些模块均是实现上述方法的软件功能模块。 其相互之间可以处于同一个物理载 体上, 也可以处于不同的物理载体上。 实际上, 后面的第二实施例所涉及的装置也是如 此。
在本发明的第二实施例中, 同样涉及一种抗拜占庭失效的数据重构方法, 与第一实 施例中不同的是, 第二实施例中涉及的数据编码采用 MBR 码 (Minimum-bandwidth Regenerating 最小带宽再生); 由于编码的不同, 第二实施例中的数据重构方法较第一 实施例中稍有不同。
请参见图 6, 图 6示出了第二实施例中的数据重构方法, 包括:
步骤 S601 选择 k个存储节点,并由各节点所存储的编码数据得到矩阵 Y:本步骤中, 任意(或随机)选择 k个存储节点, 下载其存储的编码数据集 CRC校验值,得到矩阵丫。 本步骤与步骤 S201基本一致;
步骤 S602 在上述矩阵 Y的最后 d-k行执行错误擦出解码,获得码字 C' :本步骤中, 在上述得到的矩阵 Y中的最后 d-k行执行 RS码的数据解码算法, 即错误擦出解码, 得到 码字 C ;
步骤 S603由¾ = ^— ^ ( 1得到 , 并计算 由 得到矩阵 其中, 是 Λ的转置矩阵, G是(n,d ) RS码生成矩阵, Gk和 B是构成生成矩阵 G的两个子 矩阵, ( 1是子矩阵<¾的逆; E是 Α . 中的第 Λ列、 第 列 第 列重新组成的 矩阵, s是编码时设定的帮助节点数; 在本步骤中, 就是通过计算, 得到最后可以由其得 到信息序列的一些中间参数;
步骤 S604 在矩阵 的每一行执行错误擦除解码, 获得码字向量(即码字 C' )的前 k行: 在本步骤中, 对矩阵 的每一行执行错误擦除解码;
步骤 S605 由 = . -1得到 Λ ; 通过取得的 和 , 恢复信息序列 m' ; 在本步骤
「A A
中, 得到中间矩阵 并与之前得到的中间参数一起, 通过 得到信息系列 m' ;
ΑΊ 0
其中, < 是一个(J -Wx(J -W的全零矩阵;
步骤 S606 CRCTest( ' )成功? 在本步骤中, 对上述步骤中得到的信息序列 '进行 CRC验证, 并判断信息序列 m'是否通过 CRC验证, 如是, 执行步骤 S607; 否则, 执行 步骤 S608:
步骤 S607 取得数据信息 ', 退出: 判断为正确地重构了数据, 送出该取得的数据并 退出本次数据重构;
步骤 S608 系统中剩下的有效存储节点数 >1? 在本步骤中, 判断系统中剩下的有效 存储节点数是否大于 1, 即判断系统中存在的、 仍未被下载其编码数据参与数据重构的存 储节点数是否大于 1, 如是, 执行步骤 610; 如否, 执行步驟 S609;
步骤 S609 解码失败, 退出: 如果上一步骤中的有效节点数不大于 1, 判断数据重构 解码失败, 退出本次数据重构;
步骤 S610 取额外的两个存储节点, 和已下载的编码数据构成新的矩阵 Y: 在本步 驟中, 下载两个存储节点中的更多字符来进行数据恢复, 这些数据和上述步骤中已经下 载的编码数据重新构成新的矩阵 Y, 并返回步驟 S602, 再次进行错误擦除解码。
综上所述, 在第二实施例中, 以一个参数任意的 [n,k,d] 最佳 MBR码为例说明数据重 构的方法。 将一个信息序列《 = ¾,》¾,. 转换成一个大小为《xJ的信息矢量 U, 令 ufi m. i≤j≤k
m k + l<i<d,l< ^ / 其中 =( - l)(k + lH( l)/2 + j , k2 = (i-k-\)k + k(k + \)l2 + j
0, otherwise
令 ί/ = A A ,从上述构造中可以得出 4是一个 kxk的矩阵, 4是一个 (d-k)xk的矩阵, 4 o
0是一个 (d-k)x(d-k)的全零矩阵。 也就是说, 信息序列 m转换为一个信息适量 U表示, 而信息矢量 U可以用矩阵 4、 矩阵 ^以及一个全零矩阵 0的运算关系表示; 其中 4,4都 是对称矩阵, 显然 U的维数为 dxd (或 axJ )。 在本发明的实施例中, 4、 ^分别是一个 由信息序列 m (该信息序列是正确的或原始的信息序列)导出的矩阵, 而在稍后所提及 的^、 是解码过程所获得的矩阵, 由 、 两个矩阵倒推就可得到信息序列 m' (该信 息序列由解码而得,未知是否有错),信息序列 m'需要进行校验判断是否和原信息序列 m 一致。
采用一个 (w,J)RS码来编码 U的每一行,U的第 i行即相当于码字 CP^ AW),...,^^"-1))。 其中 是以 U的第 i行所有元素作为系数的一个多项式, 即;^ 二^^-;^^ , a是有限 域 G (2M) 的 一个生成元。 通过矩阵形 式可以描述为 : U G = C , 其 中
1 1 · ... i
0 1
a a · ■·· a
G 1 ia1†-1 . ··· (an-l)k-] , C是一个《x«维的码字向量。 G是 (n,d)RS码的生成矩阵:
(a°)k ··· (an-1
( 1)" ■ ··· (a - -- 可以拆 •(8)
Figure imgf000016_0001
B
(a ) (a ) …- ( ,z )
需要注意的是 Gk是 (n,k)RS 码的一个生成矩阵, 它将在数据恢复的解码过程中用到。 由公式(8)所编码的1½码的生成多项式以生成元的阶即《 ,...,《"-¾作为根, 和第一实施 例中 MSR码解码过程不同的是: 在 MSR码中使用一个 (n,d)RS解码器, 而在 MBR码中 需用一个 (n,k)RS解码器。
设信宿从 s个存储节点 js_,,k <s≤n中下载数据来恢复编码文件。由于 MBR码中 a = d , 因此信宿接收 d个向量并且每个向量有 s个字符。 将 d个向量中的前 k个向量收 集为 Yk,剩下的 d-k个向量收集为 Ydk ,本发明中可以将码矩阵 C的最后 d-k行看成是由 Gk 而不是 G编码而来。 因此, 这个 (n,k)RS码的数据解码过程可以通过 来恢复 C中最后 d-k行码字。 令 4为 Gk的前 k列, 为所恢复的矩阵 C的最后 d-k行中码字。
U中 A可以通过公式 4= — .4 .(9)恢复; 然后计算 . β, 将所得矩阵的第 ·。列、 第 Λ列、到第 列重新组成矩阵 Ε, 并将 減去矩阵 Ε从而获得矩阵 = - (10)。 在 上 执行 RS码的数据解码算法从而获得 A: A = Ck -Gk l.(U)。
对解码的信息序列进行 CRC校验来检验所恢复数据的正确性。 如果通过 CRC校验, 则取得原始数据并退出; 否则, 需要执行进一步的解码过程, 也就是在每一轮循环中需 要从剩下的存储节点中访问两个更多的存储节点, 该循环结束的条件是要么所有存储节 点都被访问, 要么取得正确的原始数据 (通过 CRC校验)。
在本发明第二实施例中, 同样涉及失效数据的修复方法及装置, 由于第二实施例 中 MBR码中失效数据的再生 (修复) 方法及装置和第一实施例中 MSR码的类似。 就其 装置而言,与第一实施例中的区别在于信息取得单元不同。请参见图 7 ,在第二实施例中, 该数据重构装置包括: 第二运算模块 311、 第三运算模块 312、 第四运算模块 313和第二 信息取得模块 314; 其中, 第二运算模块 311用于通过公式 ¾= «.4 得到矩阵 , 并 计算 · ; 其中, 4 是 4的转置矩阵, G是(n,d) RS码编码时的生成矩阵, 和 B 是构成生成矩阵 G的两个子矩阵, 是子矩阵<¾的逆; 0k 是子矩阵<¾的前 k列, 5dk 是所恢复码字向量 C中的最后 d- k行中的码字;第三运算模块 312用于通过公式 = -E , 得到矩阵 其中, E 是 Α .β中的第 。列、 第 ^列 第 — i列重新组成的矩阵, s 是编码时设定的帮助节点数; 第四运算模块 313用于在矩阵 F 的每一行中执行错误擦除 解码, 得到码字向量 的前 k行矩阵 (^; 按照 4= . ( 1得到 Λ; 第二信息取得模块 313 用于通过取得的 和 , 通过 恢复信息序列 m'; 其中, 0是一个(J- )x(c/- 的全零矩阵。
在第二实施例中, 就方法而言, 在获得 & ·ί/后, 取它的转置, 由于 U是对称的, 所 以 即得出 .f/f = .g「= i/ . ^。 所再生的所有 ^个字符都要进行 CRC校验, 如果通过 CRC校验, 则说明;¾个字符是失效节点所存储的原字符; 否则, 需要执行进一 步解码过程。 所以, 在此不再赞述。
图 8综合上述两个实施例对 MSR码和 MBR码在错误容忍度、 安全强度、存储和带宽 负载上进行了量的分析。 并将 MSR码和 MBR码中数据重构和数据再生过程分开讨论。 从表中数据可以看出这些实施例中能够抗拜占庭失效并且是有效的且不会带来更多的系 统负担。
在对失效容忍度分析中, 主要考虑两种失效: 宕机失效和拜占庭失效。 假设节点之间 失效是相关独立的, 在这两种情况下, 失效容忍度均是由系统所能处理的的最大失效节 点数衡量。
宕机失效: 宕机失效可以看成是码字中个别字符被擦除。 由于在总数据重构中至少需 要 k个节点,很容易得出系统所能冗余的最大宕机失效数是 n-k。对于丢失数据再生过程, 需要访问 d个存储节点, 因此失效容忍度是 n-d。 值得一提的是, 由于现有节点均包含正 确的数据符号, 因此 CRC校验总是正确的。
拜占庭失效: 一般情况下, 在 RS码中需要两个额外的正确编码分组来鉴别一个错误 的编码分组。 然而, 在丢失数据的再生过程, 新来者获得正确的 CRC校验和的性能也会 影响失效容忍度。 假设在获得正确的 CRC校验和过程中使用了错误糾正码, 如果新来者 没有获得正确的 CRC校验和, 在这种情况下即使失效的节点数没有超过 RS码所能处理 的最大失效数, 丟失数据的再生过程也都会失败。 因此, 失效容忍度必须取 RS 码 (在 MBR和 MSR码中)的能力和恢复正确 CRC校验和能力的较小者。在 MSR和 MBR码中, 总数据重构过 丢失数据的再生过程中失 效容忍度均为 中的较小者
Figure imgf000017_0001
在分析安全强度时, 考虑假冒攻击, 即一类拜占庭攻击者通过相互合作伪造数据来破 坏总数据的重构和丢失数据的再生过程, 也就是说考虑一种合谋攻击。 本发明通过在总 数据重构和丢失数据的再生过程中, 判断伪造数据的攻击者最小数, 而安全强度取低于 这个数的一个数值。 伪造在丟失数据的再生过程是非常有效的, 因为即使一个攻击者只 能访问 艮少的节点, 但是通过数据再生过程可以将伪造的数据传输到其他存储节点上并 且最终会判断这些数据是有效的, 因此会导致所重构的原始数据是错误的。
在总数据重构过程, 在最糟糕的情况下, 考虑矩阵 υ中只有一行被篡改的安全强度。 令攻击者为 …, — 并且她们可以合谋伪造一个新的信息符号。 假设 y是 U中被伪造 的行, 令 = y + ", 其中 u是矩阵 U中被伪造行的正确信息符号。 通过 RS码编码过程, 可以得出 yG = ( + M)G = 3 G + MG = v + c, 其中 c是存储节点所存储的原始数据, V是由攻击 者所篡改的数据。 假设 V中非零符号数为 h, 由于 V必须是一个码字, 则/^ J + l, 其 中 n-d+1是 RS码的最小汉明距离。 为了成功伪造信息符号, 攻击者必须攻击一些存储节 点, 使得这些节点存储 yG中相应的编码符号, 从而使节点所存储的码字和伪造的信息符 号一致。 如果攻击者攻击 k 个存储节点, 当信宿恰好访问到这些被攻击的节点, 根据解 码过程, 攻击者可以成功的伪造数据。假设攻击者攻击 b<k个存储节点, 根据解码过程, 当 h— b 是 RS码的错误糾正能力, 解码算法仍可能将接收
Figure imgf000018_0001
n - d + 2
的向量解码为 yG。 取更小的 b值, 令& 因此在 MSR码中, 总数据重构的安
2
n - d + 2
全强度为 min{ t -1。 由于在 MBR码解码中使用(n,k)RS码, 因此 MBR码的安全
2
n - k + 2
强度为 min{ t } - ι
2
在再生过程的假冒攻击中, 由于 CRC校验和的计算是一个线性操作, 因此攻击者没 有必要破坏失效节点的 CRC校验和, 只需要伪造冗余位均为 0的数据即可。 因此再生过
- d + 2
程的安全强度为 minW,
~2 ~
通过上述分析可知 CRC校验并没有增加在假冒攻击中的安全强度。 由于获得哈希值 的操作是非线性的, 因此通过使用哈希值可以提高安全强度。 在这种情况下, 攻击者不 仅需要获得原始数据信息, 也需要伪造相应的哈希值。 因此安全强度在总数据重构过程 中至少为 k-l, 在丢失数据再生过程中至少为 d-l。
CRC校验和在存储和带宽的消耗中增加了额外的负担。在总数据重构过程中的冗余为 CRC校验和的大小即 r比特。每个信息序列后都要增加额外的 r比特, 来使得数据重构后 可以进行数据验证。由于 MSR码的信息位数为 mkcc— r ,因此在存储上的冗余率为 ~ - ~; mka - r 而 MBR码的信息位数为 l)/¾ -r , 因此对于冗余率为
niU- k-l)l2)-r
码和 MBR码在恢复原始数据的过程中,所下载的数据量恰好为 k个节点所存储编码模块, 因此在带宽上的冗余率等于存储上的冗余率。
对于再生过程, 假设通过 (n-l,k')RS码来将编码的 CRC字符分配给其他 n-1个存储节 点, 其中 , m log2(« - 由于每个节点必须存储其他 n-1 个存储节点所编码的 m
CRC字符, 因此每个节点所需要的额外存储是 (n-l)m,比特。 根据 MSR码和 MBR码编码 特性, 即存储在每个节点的编码数据字符是 比特, 得出这两种最佳码在存储上的冗 余率均为 '。
新来者必须获得失效节点的正确 CRC校验和, 才可以检验所恢复数据的正确性。 被 访问的 d 个存储节点需要向新来者提供它们所存储的数据, 该数据还应包括失效节点的 CRC校验和。由于校验和长度为 m,比特,则总的额外带宽为 dm,比特,而 MSR码和 MBR 码中修复失效节点所存储的 ¾字符的总共带宽为 ? , 得出这两种最佳码在存储上的冗 余率均为 = 。
以上所述实施例仅表达了本发明的几种实施方式, 其描述较为具体和详细, 但并不能 因此而理解为对本发明专利范围的限制。 应当指出的是, 对于本领域的普通技术人员来 说, 在不脱离本发明构思的前提下, 还可以做出若干变形和改进, 这些都属于本发明的 保护范围。 因此, 本发明专利的保护范围应以所附权利要求为准。

Claims

权利要求书
1、 一种网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 包括如下步骤:
A )信宿从 k个存储节点下载其存储的编码数据和校验值, 由这些编码数据得到 矩阵 Y; 由下载的校验值得到校验和, 所述校验和为 CRC校验和;
B) 对所述矩阵 γ进行错误擦除解码, 得到码字 σ ;
C) 将码字 C' 与编码矩阵进行运算得到信息序列 m' ;
D )判断所述恢复的信息序列 m' 是否能够通过所述 CRC校验和的校验,如能, 结束数据恢复; 否则, 执行步骤 E);
E)判断剩下的、未下载的有效存储节点是否大于 1,如是,执行步骤 F); 否则, 判断解码失败并退出;
F)在剩下的存储节点中下载两个节点存储的编码数据和校验值, 替代之前下载 的两个存储节点, 得到所述矩阵 Y和校验和; 并返回步骤 B )。
2、 根据权利要求 1 所述的网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 所述数据编码包括最小存储再生码或最小带宽再生码。
3、 根据权利要求 1 所述的网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 所述 CRC校验值通过 RS编码后与存储在所述存储节点上的编码数据一起存储在所述存 储节点上; 所述步驟 A ) 中, 其编码数据和编码后的校验值一起下载。
4、 根据权利要求 3 所述的网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 所述步骤 B)进一步包括: 对所述矩阵 Y的每一行执行错误擦除解码, 得到码字 C' 。
5、 根据权利要求 4所述的网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 所述步骤 C)进一步包括:
C1 ) 由公式 t/^C'.G ^-1得到矩阵 U' ; 其中, G是编码时的生成矩阵, G^-1是 生成矩阵前 k列的逆;
C2)依据所述矩阵 U' , 得到信息序列 m' 。
6、 根据权利要求 3 所述的网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 所述步骤 B)进一步包括: 对所述矩阵 Y的最后 d-k行执行错误擦除解码, 得到所恢复的 码字 C' 的最后 d-k行码字 CdΑ; 其中, 所述 C'是一个《χη维的码字向量。
7、 根据权利要求 6所述的网络存储中抗拜占庭失效的数据重构方法, 其特征在于, 所述步骤 C)进一步包括:
CY )通过公式 = -¾·4得到矩阵 4, 并计算 ·β; 其中, ^是 ¾的转置 矩阵, G是(n,d) RS码编码时的生成矩阵, G 和 B是构成生成矩阵 G的两个子矩阵, G 1是子矩阵 的逆; Gk 是子矩阵 的前 k列, λ是所恢复码字向量 C' 中的最后 d-k 行中的码字;
C2' )通过公式
Figure imgf000020_0001
得到矩阵 其中, E是 ·β中的第 Λ列、第 列、…、 第 — i列重新组成的矩阵, s是编码时设定的帮助节点数;
C3' )在矩阵 F 的每一行中执行错误擦除解码,得到码字向量 C'的前 k行矩阵 C¾; 按照 Λ = ·^得到 A; Α1 Α2'
C4' )通过取得的 和 4, 通过 恢复信息序列 m'; 其中, 6>是一个
Α2 Ο
(J- )x(i - 的全零矩阵。
8、 一种网络存储中抗拜占庭失效的数据重构装置, 其特征在于, 包括:
数据下载单元: 用于从 k个存储节点下载其存储的编码数据和校验值, 由这些 编码数据得到矩阵 Y; 由下载的校验值得到校验和, 所述校验和为 CRC校验和;
码字取得单元: 用于对所述矩阵 γ进行错误擦除解码, 得到码字 σ ; 信息取得单元: 用于将码字 σ 与编码矩阵进行运算得到信息序列 m' ; 校验单元: 用于判断所述恢复的信息序列 m' 是否能够通过所述 CRC校验和的 校验;
剩余节点判断单元: 用于判断剩下的、 未下载的有效存储节点是否大于 1;
数据替换单元: 用于在剩下的存储节点中下载两个节点存储的编码数据和校验 值, 替代之前下载的两个存储节点, 得到所述矩阵 Y和校验和。
9、 根据权利要求 7所述的网络存储中抗拜占庭失效的数据重构装置, 其特征在于, 所述信息取得单元包括:
第一运算模块: 用于由公式 t/^C'.G^-1得到矩阵 U' ; 其中, 是生成矩阵 前 k列的逆;
第一信息取得模块: 用于依据所述矩阵 U' , 得到信息序列 m' 。
10、根据权利要求 7所述的网络存储中抗拜占庭失效的数据重构装置,其特征在于, 所述信息取得单元包括:
第二运算模块:用于通过公式 ^^ .C 1得到矩阵¾,并计算 ¾τ·β;其中, 是 的转置矩阵, G是(n,d) RS码编码时的生成矩阵, 和8是构成生成矩阵 G的两 个子矩阵, ( 1是子矩阵 的逆; 0k 是子矩阵<¾的前 k列, A是所恢复码字向量 中的最后 d-k行中的码字;
第三运算模块: 用于通过公式 得到矩阵 其中, E是 Α · 中的 第 J。列、 第 Λ列 第 — i列重新组成的矩阵, s是编码时设定的帮助节点数;
第四运算模块:用于在矩阵 '的每一行中执行错误擦除解码,得到码字向量 C'的 前 k行矩阵 ; 按照 4= . 得到 Λ;
第二信息取得模块: 用于通过取得的 和¾,通过 A
, 恢复信息序列 0
其中, 0是一个(J-Wx(i - )的全零矩阵。
11、 一种网络存储中抗拜占庭失效的失效数据恢复方法, 其特征在于, 包括如下步 骤:
M) 选择 d个存储节点对失效的存储节点 i中存储的编码数据进行修复; 被选择 的 d个存储节点分别计算所存储的编码数据中的 α个字符和 g,的内积;依据所述 d个存储 节点存储的编码数据, 得到矩阵 y„Xii , 并得到存储节点 i 的 CRC 校验和; 其中, gi =k (d-i ,{ct~l)\---it-l)a-1], 通过存储节点标号 i和生成元 a构建; N )在所述矩阵 Yaxd的每一行执行错误擦除解码, 得到码字 C;
0 )通过公式 M = C' . G- 1和( Α Υ^Α , 得到存储节点 i所存储的信息 s; P )判断所述恢复的信息 s是否能够通过所述存储节点 i的 CRC校验和的校验, 如能, 结束数据恢复; 否则, 执行步骤 Q );
Q )判断剩下的、 未下载的有效存储节点是否大于 1 , 如是,执行步骤 R ); 否则, 判断恢复失败并退出;
R )在剩下的存储节点中下载两个节点存储的编码数据和校验值, 替代之前下载 的两个存储节点, 得到所述矩阵 Y和校验和; 并返回步骤 N )。
12、根据权利要求 11所述的网络存储中抗拜占庭失效的失效数据恢复方法,其特征 在于, 所述编码数据包括最小存储再生码编码数据或最小带宽再生码编码数据。
13、根据权利要求 11所述的网络存储中抗拜占庭失效的失效数据恢复方法,其特征 在于, 所述 CRC校验值通过 RS编码后与存储在所述存储节点上的编码数据一起存储在 所述存储节点上; 所述步骤 M ) 中, 其编码数据和编码后的校验值一起下载。
14、 一种网络存储中抗拜占庭失效的失效数据恢复装置, 其特征在于, 包括: 失效数据下载单元: 用于选择 d个存储节点对失效的存储节点 i中存储的编码数 据进行修复;被选择的 d个存储节点分别计算所存储的编码数据中的 α个字符和&的内积; 依据所述 d个存储节点存储的编码数据,得到矩阵 i xrf ,并得到存储节点 i的 CRC校验和; 其中, & ^i 1)1,^-1)2,… ' ' 叫, 通过存储节点标号 i和生成元构建;
失效数据码字生成单元: 用于在所述矩阵 i xrf的每一行执行错误擦除解码, 得到 码字
失效数据信息取得单元: 用于通过公式 A^ C' .CT1和( 1 + («14)"(& , 得到存 储节点 i所存储的信息 s;
失效数据 CRC臉证单元: 用于判断所述恢复的信息 s是否能够通过所述存储节 点 i的 CRC校验和的校验;
剩余存储节点判断单元: 用于判断剩下的、 未下载的有效存储节点是否大于 1 ; 失效数据节点替换单元: 用于在剩下的存储节点中下载两个节点存储的编码 数据和校验值, 替代之前下载的两个存储节点, 得到所述矩阵 Y和校验和。
PCT/CN2012/076694 2012-06-11 2012-06-11 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置 WO2013185271A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2012/076694 WO2013185271A1 (zh) 2012-06-11 2012-06-11 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置
CN201280032806.8A CN103703446B (zh) 2012-06-11 2012-06-11 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/076694 WO2013185271A1 (zh) 2012-06-11 2012-06-11 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置

Publications (1)

Publication Number Publication Date
WO2013185271A1 true WO2013185271A1 (zh) 2013-12-19

Family

ID=49757397

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/076694 WO2013185271A1 (zh) 2012-06-11 2012-06-11 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置

Country Status (2)

Country Link
CN (1) CN103703446B (zh)
WO (1) WO2013185271A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10243583B2 (en) * 2017-06-16 2019-03-26 Western Digital Technologies, Inc. CPU error remediation during erasure code encoding
CN111224747A (zh) * 2019-12-19 2020-06-02 湖北大学 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
US11405420B2 (en) * 2020-08-28 2022-08-02 Seagate Technology Llc Distributed secure edge heterogeneous storage network with redundant storage and byzantine attack resilience
CN113296999B (zh) * 2021-05-20 2022-11-11 山东云海国创云计算装备产业创新中心有限公司 一种raid6编码方法及编码电路
CN114244853A (zh) * 2021-11-29 2022-03-25 国网北京市电力公司 大数据共享方法、装置以及大数据共享系统
CN116560957A (zh) * 2023-04-21 2023-08-08 珠海云艺网络科技有限公司 一种受损文档修复结果的测试方法、系统、装置及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859115A (zh) * 2006-01-24 2006-11-08 华为技术有限公司 一种网络数据的分布式存储下载系统、设备及方法
US7555673B1 (en) * 2002-10-17 2009-06-30 Symantec Operating Corporation Cluster failover for storage management services
US7657781B1 (en) * 2003-07-25 2010-02-02 Cisco Technology, Inc. System and method for providing redundant data load sharing in a distributed network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555673B1 (en) * 2002-10-17 2009-06-30 Symantec Operating Corporation Cluster failover for storage management services
US7657781B1 (en) * 2003-07-25 2010-02-02 Cisco Technology, Inc. System and method for providing redundant data load sharing in a distributed network
CN1859115A (zh) * 2006-01-24 2006-11-08 华为技术有限公司 一种网络数据的分布式存储下载系统、设备及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHANG, QIAN: "Design and Implementation of Network Coding Based Distributed File System", CHINA'S MASTER'S THESES FULL-TEXT DATABASE, 2010, UNIVERSITY OF SCIENCE AND TECHNOLOGY OF CHINA *
JIANG' CHUNMAO ET AL.: "A highly-reliable data recovery model based on parallel transmission IANG, Chunmao et al., A highly-reliable data recovery model based on parallel transmission for a P2P destributed system", JOURNAL OF HARBIN ENGINEERING UNIVERSITY, vol. 33, no. 3, March 2012 (2012-03-01), pages 347 - 354 *

Also Published As

Publication number Publication date
CN103703446B (zh) 2016-08-17
CN103703446A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
KR101451338B1 (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
US10951236B2 (en) Hierarchical data integrity verification of erasure coded data in a distributed computing system
CN103124182B (zh) 文件下载和流系统
JP4546246B2 (ja) 連鎖的暗号化反応の系統的記号化および復号化
US8132073B1 (en) Distributed storage system with enhanced security
US7240236B2 (en) Fixed content distributed data storage using permutation ring encoding
Chen et al. Robust dynamic provable data possession
KR101041762B1 (ko) 통신 채널을 통해 소스로부터 목적지로 데이터를 송신 및 인코딩하는 방법
CN110532126B (zh) 纠删码存储系统数据快速恢复方法、装置及存储介质
WO2013185271A1 (zh) 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置
RU2680350C2 (ru) Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации
JP5316411B2 (ja) 送信装置と受信装置
BRPI0815934B1 (pt) sinal de informação, aparelho e método para codificar um conteúdo de informação, e aparelho e método para correção de erro de um sinal de informação
Han et al. Exact regenerating codes for byzantine fault tolerance in distributed storage
EP3852275A1 (en) Method, device and apparatus for storing data, computer readable storage medium
Chen et al. Robust dynamic remote data checking for public clouds
WO2013159341A1 (zh) 基于同态的自修复码的编码、解码和数据修复方法及其存储系统
Han et al. Efficient exact regenerating codes for byzantine fault tolerance in distributed networked storage
Huang et al. An improved decoding algorithm for generalized RDP codes
Han et al. Progressive data retrieval for distributed networked storage
US20140317162A1 (en) Using Carry-less Multiplication (CLMUL) to Implement Erasure Code
Sengupta et al. An efficient secure distributed cloud storage for append-only data
RU2758943C1 (ru) Способ распределенного хранения данных с подтвержденной целостностью
Hou et al. Cauchy MDS array codes with efficient decoding method
Vins et al. A survey on regenerating codes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12879121

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12879121

Country of ref document: EP

Kind code of ref document: A1