A method for storing data includes receiving, by a data cluster, a request to store data from a host, deduplicating, by the data cluster, the data to obtain deduplicated data on a first data node, replicating the deduplicated data to generate a plurality of replicas, and storing a first replica of the plurality of replicas on a second data node and a second replica of the plurality of replicas on a third data node, wherein the first data node, the second data node and the third data node are in the data cluster.