1. A system for storing files, comprising: an interface to receive a first file; and a processor configured to: break the first file into a plurality of segments that includes a first segment; determine whether the contents of the first segment is identical to the contents of at least a second segment stored in a first storage unit, wherein the second segment is a different segment from the first file or from a second file; and in the event that the contents of the first segment is determined not to be identical to the contents of the second segment stored in the first storage unit: store the first segment in the first storage unit; and add metadata to the first storage unit so that the first file can be reconstructed independent of a second storage unit, wherein a single namespace enables access for files stored in the first storage unit and the second storage unit.