A method of handling a first input/output operation (IO) from a first virtual machine (VM), wherein the first VM is located in a first data center and the first IO is directed to a data store in a second data center, includes the steps of: connecting, by a proxy located in the first data center, to the data store; after connecting to the data store, caching, by the proxy, data of the first VM stored in the data store, wherein caching the data of the first VM comprises storing the data of the first VM in a cache located in the first data center; redirecting, by a redirection filter to the proxy, the first IO; and performing, by the proxy, the first IO on the cache in the first data center.