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; determine any segments of the first file that have previously been stored in a first storage unit, wherein a single namespace enables access for files stored in the first storage unit and a second storage unit; store any segments of the plurality of segments that have not been previously stored in the first storage unit; determine whether the first storage unit is full, wherein the first storage unit is full in the event that a new file and associated metadata exceeds a storage capacity of the first storage unit; in the event that the first storage unit is full: add metadata to the first storage unit so that the first file can be reconstructed independent of the second storage unit, wherein the metadata comprises a name of the first file and reconstruction information for the first file, wherein reconstruction information for the first file comprises at least a location of any segments that have not previously been stored and a reference to segments that have previously been stored, and select the second storage unit to store the new file and associated metadata; and remove a partial file and metadata associated with the new file, in the event that the new file and associated metadata would not fit in the first storage unit.