Patent ID: 8489916

Claim:
A multi-disk fault-tolerant system, comprising a disk array and a calculation module connected through a system bus, wherein the disk array is formed by p disks, wherein p is a natural number greater than or equal to 5, and a fault-tolerant disk amount of the disk array is q, wherein q is a natural number smaller than p/2 and not smaller than 2; data in the disk array is arranged according to a form of a matrix M of (m+q)×p, wherein m is a prime number smaller than or equal to p−q; in the matrix M, a 0 th row is virtual data blocks being virtual and having values being 0, a 1 st row to an (m−1) th row are data blocks, an m th row to an (m+q−1) th row are a check area; wherein for each data block in a check group in which a check block C m-1+l,n in the check area is located, a row number is (m−k×l) % m, a column number is (n+k) % p, a span of k is from l to m−1+l, wherein l is a row number of the check block in the check area, 1≦l≦q, n is a column number corresponding to the check block, 0≦n≦p−1; data in the check block is an (exclusive-or) XOR value of data of all data blocks in the check group to which the check block belongs; and the calculation module is configured to calculate the check block C m-1+l,n according to a formula C m - 1 + l , n = ⊕ m - 1 + l k = 1 ⁢ C ( m - k · l ) m , ( n + k ) p , 0 ≤ n ≤ p - 1 , and recover the data block according to the check block when the disk is damaged.