1. A distributed file storage system comprising: multiple storage units configured to communicate with each other, each storage unit comprising a storage device, a processor, and at least one executable software module stored on the storage unit, the processor configured to execute the at least one executable software module; a first file stored on the distributed file system in a first set of a plurality of stripes, the first file comprising multiple data blocks, each of the first set of a plurality of stripes comprising a subset of the multiple data blocks, wherein at least a first one of the multiple data blocks is stored on a first one of the multiple storage units and at least a second one of the multiple data blocks is stored on a second one of the multiple storage units; error correction data related to the first file stored on the distributed file system wherein the error correction data is configured to be used in conjunction with available data blocks to reconstruct the first file; a first metadata block associated with the first file stored on a third one of the multiple storage units, the first metadata block comprising an address location of each of the multiple data blocks of a stripe stored on the distributed file system and at least one address location of error correction data stored on the distributed file system; a second file stored on the distributed file system in a second set of a plurality of stripes; a second metadata block associated with the second file stored on a fourth one of the multiple storage units which is different than the third one of the multiple storage units, wherein the second metadata block is different than the first metadata block; wherein the at least one executable software module of each storage unit is configured to: access one or more metadata blocks stored on one or more different storage units; restripe, according to one or more preferences, at least a portion of the first file among two or more of the multiple storage units, wherein the one or more preferences comprise one or more of the following: minimizing movement of data, distributing the at least a portion of the first file or at least a portion of the error correction data among two or more of an optimal or preferred subset of the multiple storage units, distributing the at least a portion of the first file or at least a portion of the error correction data among two or more of an optimal or preferred ordered subset of the multiple storage units, or distributing the at least a portion of the first file or at least a portion of the error correction data based on one or more performance metrics; restripe, according to the one or more preferences, at least a portion of the error correction data among two or more of the multiple storage units; and update the first metadata block to include a new address location for each of the multiple data blocks that was restriped and a new address location for each of the error correction data that was restriped, wherein the new address location includes data locations on different storage units.