1. A distributed file storage system comprising: a plurality of storage devices comprising at least a first storage device, a second storage device, a third storage device, and a fourth storage device, wherein each of the plurality of storage devices comprises a computer processor and at least one executable software module; a file comprising multiple data blocks, the multiple data blocks comprising at least a first data block and a second data block, the first data block stored on the first storage device and the second data block stored on the second storage device; file metadata comprising address locations of the first data block and the second data block, the file metadata stored on the third storage device; and directory metadata comprising an address location of the file metadata, the directory metadata stored on the fourth storage device; wherein the at least one executable software module of each of the first storage device, the second storage device, the third storage device, and the fourth storage device is executed by a computer processor and configured to: receive a request for the file; and in response to the request: access the directory metadata stored on the fourth storage device to obtain the address location of the file metadata; access the file metadata stored on the third storage device to obtain the address locations of the first data block and the second data block; and access the first data block stored on the first storage device and the second data block stored on the second storage device.