Patent ID: 8140755

Claim:
A computer implemented process for managing data storage in a system comprising a plurality of clients, each client having a file system through which applications executed on the client systems access data stored in files of the file system, the system further comprising a plurality of independent storage servers, each operating independently of the clients and without central control, and a computer network interconnecting the plurality of independent storage servers and the plurality of clients wherein data of 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, comprising: maintaining information for each file indicating the storage servers on which the segments of data of the file are stored; before reading data from a file, accessing, using the client, the information for the file indicating the storage servers on which the segments of the file are stored ,wherein the client uses said information to communicate directly with the storage servers to request the segments of the file; and after writing data to a file, accessing the storage to update the information for the file indicating the storage servers on which the segments of the file are stored.