Patent ID: 8306948

Claim:
A method of implementing a global deduplication file system between a plurality of interconnected systems located in different geographic locations, the plurality of interconnected systems including at least a first system and a second system, the method being implemented by at least one computer processor and comprising: transferring a first snapshot of metadata and data stored in the first system to the second system, wherein the first system includes a first deduplication table that comprises a set of hash values that identify data blocks stored in the first system, wherein the first snapshot includes one or more hash values from the first deduplication table; receiving at the first system a second snapshot of metadata and data stored in the second system, wherein the second system includes a second deduplication table that comprises a set of hash values that identify data blocks stored in the second system, wherein the second snapshot includes one or more hash values from the second deduplication table; updating the first deduplication table to reflect the one or more hash values included in the second snapshot, wherein the updated first deduplication table includes the sets of hash values that identify all of the data blocks stored in the plurality of interconnected systems, wherein periodic exchanges of snapshots ensure that each system's deduplication table is updated to include the sets of hash values that identify the data blocks stored in the plurality of interconnected systems; receiving in the first system additional data from a client device; determining one or more hash values for the additional data; determining based on the hash values for the additional data and the first deduplication dictionary table whether the additional data is stored in the plurality of interconnected systems; and transferring a third snapshot of a portion of the additional data from the first system to the second system upon determining from the first deduplication table that the second system does not include the portion of the additional data; wherein the first system comprises a first file system including at least a first virtual device (vdev) that stores the metadata and a second vdev that stores the data, the first vdev being different from the second vdev, and the first system is a lock owner that manages write accesses to the data in the first file system.