Patent ID: 8286029

Claim:
A storage system for managing unavailable storage devices comprising: a plurality of storage devices comprising at least a first storage device and a second storage device; one or more computer processors, each of the one or more computer processors in electronic communication with one or more of the plurality of storages devices; and at least one executable software module executed by the one or more computer processors, wherein the executable software module is configured to reconstruct data on an unavailable device on a read request, wherein the read request does not result in the executable software module copying the reconstructed data to an alternate available device, and wherein the executable software module is configured to: store a set of data on the plurality of storage devices, wherein the set of data comprises a plurality of blocks, and wherein storing the set of data comprises storing at least a first block and a second block on the first storage device; determine that the first storage device is unavailable; receive a read request corresponding to the first block on the first storage device; in response to the read request, reconstruct the first block using one or more other blocks in the plurality of blocks, wherein the read request does not trigger modifying an association between the first block and the first storage device in metadata based on a future availability of the first storage device after a period of temporary unavailability; return the reconstructed data block; receive a write request comprising a request to write an updated block corresponding to the second block; in response to the write request, store the updated block on a second storage device in the plurality of storage devices, the second storage device different from the first storage device, and modify an association between the second block and the first storage device in metadata to reflect an association between the second block and the second storage device, determine that the first storage device is available after a period of unavailability; and in response to determining that the first storage device is available, free the second block on the first storage device.