1. A method for maintaining data integrity of a plurality of copies of a piece of data, the plurality of copies being stored in a plurality of data servers across multiple data centers, comprising: providing a plurality of active data servers to be the plurality of data servers, such that the plurality of copies stored therein are simultaneously accessible; selecting one of the plurality of data servers to be a primary data server, storing the piece of data on the primary data server, and duplicating the piece of data to the other ones of the plurality of data servers; maintaining a cluster of catalog servers, and designating one of the catalog servers to be a master catalog server; recording data state information of the piece of data to the master catalog server, including registering the plurality of data servers that store the plurality of copies of the piece of data, and duplicating the data state information to the other catalog servers of the cluster of catalog servers; and routing each of a plurality of service requests for the piece of data either to the primary data server or to one of the other data servers that is closest to the service request, in accordance with the data state information of the piece of data, to thereby simultaneously access the copies of the piece of data on the plurality of data servers including the copy on the primary data server, wherein the routing includes selecting, using the recorded data state information, a closest one of the registered plurality of data servers and routing the service request to the selected data server.