Patent ID: 8478957

Claim:
A data storage system, comprising: a plurality of client systems, each client system having a file system through which applications executed on the client system access data stored in files of the file system; a plurality of independent storage servers, each server storing data from files of the file system; a computer network interconnecting the plurality of independent storage servers and the plurality of client systems; wherein each file stored on the plurality of independent storage servers is divided into segments, with two or more copies of each segment being distributed among the plurality of independent storage servers, such that each segment is stored on at least two of the storage servers; storage maintaining information indicating the storage servers on which the segments of files are stored; at least one of the client systems being configured to: access, before reading data from a file, the storage to obtain the information indicating the storage servers on which the segments of the file are stored, and communicate directly with the storage servers to request the segments of the file using the accessed information; wherein, after writing data to a file, the information indicating the storage servers on which segments of the file are stored is updated in the storage; and wherein, if a storage server is unavailable, segments of files stored on the unavailable storage server are copied from other storage servers that store the segments of files to other available storage servers.