US 12,111,795 B2
Efficient replication of file clones
Abhay Kumar Jain, Cupertino, CA (US); Sriram Patil, San Jose, CA (US); Junlong Gao, Vancouver (CA); and Wenguang Wang, Santa Clara, CA (US)
Assigned to VMware LLC, Palo Alto, CA (US)
Filed by VMware LLC, Palo Alto, CA (US)
Filed on Jun. 24, 2021, as Appl. No. 17/357,044.
Prior Publication US 2022/0414064 A1, Dec. 29, 2022
Int. Cl. G06F 7/00 (2006.01); G06F 16/16 (2019.01); G06F 16/17 (2019.01); G06F 16/174 (2019.01); G06F 16/178 (2019.01); G06F 16/182 (2019.01)
CPC G06F 16/1844 (2019.01) [G06F 16/164 (2019.01); G06F 16/1734 (2019.01); G06F 16/1756 (2019.01); G06F 16/178 (2019.01)] 21 Claims
OG exemplary drawing
 
1. A method comprising:
determining, at a source system in a storage replication environment, that a first file on the source system has been cloned to create a second file on the source system;
changing, at the source system, a status of a first extent associated with the first file from non-cloned to cloned;
sending, from the source system to a replica system in the storage replication environment, an update message comprising an address of the first extent on the source system and an indication that the status of the first extent has changed from non-cloned to cloned, the address of the first extent acting as a token;
changing, at the replica system, based on the update message, a status of a second extent associated with a replica of the first file on the replica system from non-cloned to cloned;
creating, at the replica system, based on the update message, a mapping of the address of the first extent on the source system to an address of the second extent on the replica system;
replacing the token with the address of the second extent utilizing the mapping;
creating, at the replica system, based on the mapping, a replica of the second file comprising a reference to the address of the second extent on the replica system;
determining, at the source system, that a portion of the first file has been modified, wherein the portion of the first file begins at a given block offset;
assigning, at the source system, a separate extent on the source system to the portion of the first file; and
updating, at the source system, metadata associated with the first file to indicate that an initial portion of the first file is associated with the address of the first extent up to the given block offset and that the portion of the first file is associated with an address of the separate extent.