1. A data storage system, comprising: a plurality of storage units; a plurality of client systems, wherein each client system has a file system through which an application executed on the client system accesses data; a network interconnecting the plurality of storage units and the plurality of client systems; wherein the file system of each client system accesses data in one or more files using the plurality of storage units, wherein a file has a name and includes segments of data and redundancy information for each segment, wherein the redundancy information for a segment is one or more copies of the segment; wherein the application executed on the client system accesses data in a file using a request to the file system indicating the name of the file; wherein client code accessed by the file system in each client system includes means for writing data to a file comprising: means for selecting, for each segment of the data, at least two of the storage units for storing the segment; means for initiating a request to store each segment of the data to each of the at least two storage units selected for the segment, wherein the request includes an identifier of the segment; and means for locally accessing information indicative of the at least two storage units on which each segment of a file is stored; wherein each storage unit identifies a location on the storage unit for storing a received segment of data, stores the received segment of data at the identified location and maintains information associating the identifier of the segment of data with a location of each segment of data on the storage unit; wherein client code accessed by the file system in each client system includes means for reading data from a file comprising: means for selecting, for each segment of the requested data, one of the storage units on which the segment is stored using the locally accessed information indicative of the at least two storage units on which each segment of a file is stored; and means for reading each segment of the requested data from the selected storage unit for the segment, including sending a request, for each segment, to the storage unit selected for the segment including the identifier of the segment; and means for providing the read data to the application; and wherein each storage unit retrieves a requested segment of data from the storage unit using the information associating the identifier of the segment of data with a location of each segment of data on the storage unit to obtain the location of the segment of data on the storage unit.