1. A distributed file storage system comprising: a plurality of storage units configured to communicate with each other; said plurality of storage units including: a first storage unit including a storage disk and a processor; a second storage unit including a storage disk and a processor; a third storage unit including a storage disk and a processor; and a fourth storage unit including a storage disk and a processor; a file stored on the distributed file storage system; a first file portion of the file comprising a first set of file data stored in the first storage unit; a second file portion of the file comprising a second set of file data stored in the second storage unit, wherein the second set of file data is different from the first set of file data; a first metadata to identify in part the location of the file, the first metadata stored on the first storage unit, the second storage unit, the third storage unit, and the fourth storage unit; a second metadata, different at least in part from the first metadata, to supplement the first metadata in identifying the location of the file, the second metadata stored on at least one, but not all, of the first storage unit, the second storage unit, the third storage unit, and the fourth storage unit; a switch in communication with the plurality of storage units, the switch configured to receive a read request for the file stored on the distributed file storage system and to send the read request to one of the plurality of storage units wherein each of the plurality of storage units is operable to monitor in real time a pattern of access to the file, a latency to access each copy of the file, and content included in the file, such that a block cache module will perform K packet read aheads, where K is calculated using a current read rate and a current latency of an access link; and each of the plurality of storage units is configured to use the first metadata to process a read request on behalf of the distributed file storage system, wherein the distributed file storage system is arranged for dynamically determining at least one copy of the file to be replicated and dynamically determining a quantity of the plurality of storage units to store each replicated copy of the file based at least in part on the real time monitoring of the pattern of access to the file, the latency to access each copy of the file, and content included in the file.