Patent ID: 7559005

Claim:
A method for storing data with a controller by distributing the data into plural storage units that are accessible independently of one another; the method comprising: dividing data to be stored into plural data blocks; generating first parity data corresponding to the plural data blocks; distributing the plural data blocks and the first parity data into the plural storage units to let the storage units store the plural data blocks and the first parity data; responding to a situation where any of the plural storage units becomes inaccessible, reconstructing data stored in the storage unit that has become inaccessible before the situation occurs based on data stored in the remaining storage units; dividing the data thus reconstructed into plural reconstructed data blocks; generating second parity data corresponding to the plural reconstructed data blocks; and distributing the plural reconstructed data blocks and the second parity data corresponding to the plural reconstructed data blocks into plural accessible storage units of the plural storage units to let the accessible storage units store the plural reconstructed data blocks and the second parity data.