IP Library Granted Patent US 9,251,020
Granted Patent B1
US 9,251,020 · App. 13/646,858 · Granted Feb 2, 2016

Systems and methods for file-level replication

Inventors: Santosh Kalekar (Maharashtra, IN); Makarand Chatur (Maharashtra, IN)
Assignee: Symantec Corporation
G06F11/2066G06F17/30212
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,251,020
App. No.
13/646,858
Filed
Oct 8, 2012
Granted
Feb 2, 2016
Kind
B1
Art Unit
2137
USPC
711/162
Abstract

A computer-implemented method for file-level replication may include 1) identifying a selection of at least one source file to replicate from a primary volume to a secondary volume, 2) identifying extent information that indicates a volume location of the source file within the primary volume, 3) identifying a volume offset within the primary volume of a write operation performed on the source file within the primary volume, 4) converting the volume offset to a file offset within the source file using the extent information, and 5) replicating the write operation and the file offset to the secondary volume. Various other methods and systems are also disclosed.

Claims (62)

1. A computer-implemented method for file-level replication, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a selection of at least one source file to replicate from a primary volume to a secondary volume;

identifying extent information that indicates a volume location of the source file within the primary volume;

identifying a volume offset within the primary volume of a write operation performed on the source file within the primary volume;

converting the volume offset to a file offset within the source file using the extent information;

replicating the write operation and the file offset to the secondary volume.

2. The computer-implemented method of claim 1 ,

wherein converting the volume offset to the file offset is performed based on an extent map that maps volume offsets to file offsets.

3. The computer-implemented method of claim 2 , wherein:

the volume offset comprises a logical cluster number;

the file offset comprises a virtual cluster number.

4. The computer-implemented method of claim 1 ,

wherein converting the volume offset to the file offset comprises subtracting the volume offset of the write operation from a volume location of an extent to which the write operation applies to determine an offset within the extent.

5. The computer-implemented method of claim 4 , wherein converting the volume offset to the file offset further comprises, after subtracting the volume offset of the write operation from the volume location of the extent to which the write operation applies, adding a file offset of the extent to the determined offset of the extent to identify the file offset.

6. A computer-implemented method for file-level replication, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a target file on a secondary volume as a replicated version of a source file on a primary volume;

receiving a replicated write operation to apply to the target file on the secondary volume;

identifying extent information that indicates a volume location of the target file within the secondary volume;

identifying a file offset within the replicated write operation;

converting the file offset to a volume offset of the replicated write operation within the secondary volume using the extent information;

applying the replicated write operation on the secondary volume using the volume offset.

7. The computer-implemented method of claim 6 , further comprising:

receiving new extent information that indicates a change in a size of the source file on the primary volume;

modifying the target file on the secondary volume to match the source file on the primary volume based on the new extent information.

8. The computer-implemented method of claim 7 , wherein receiving the new extent information comprises configuring a file system filter driver to receive the new extent information for modifying the target file.

9. The computer-implemented method of claim 8 , wherein the secondary volume is mounted to allow read operations and write operations for replication.

10. The computer-implemented method of claim 9 , further comprising:

identifying a failover of the primary volume to the secondary volume;

reconfiguring the file system filter driver to intercept file operations that change metadata of the target file to replicate to a new secondary volume in response to identifying the failover.

11. A system for file-level replication, the system comprising:

an identification module programmed to identify a selection of at least one source file to replicate from a primary volume to a secondary volume;

a location module programmed to identify extent information that indicates a volume location of the source file within the primary volume;

an offset module programmed to identify a volume offset within the primary volume of a write operation performed on the source file within the primary volume;

a conversion module programmed to convert the volume offset to a file offset within the source file using the extent information;

a replication module programmed to replicate the write operation and the file offset to the secondary volume;

at least one processor configured to execute the identification module, the location module, the offset module, the conversion module, and the replication module.

12. The system of claim 11 , wherein the location module is further programmed to:

identify new extent information that indicates a change in a size of the source file on the primary volume;

transmit the new extent information to the secondary volume.

13. The system of claim 11 , wherein the location module is programmed to identify the extent information by receiving the extent information from a file system driver.

14. The system of claim 11 , wherein:

the offset module is programmed to:

identify an additional write operation performed on the primary volume;

compare the additional write operation to the extent information and determine, based on the extent information, that the additional write operation does not apply to the source file;

the replication module is programmed to:

prevent replication of the additional write operation to the secondary volume based on determining that the additional write operation does not apply to the source file.

15. The system of claim 11 , wherein the identification module is programmed to identify the selection of the source file to replicate from the primary volume to the secondary volume by configuring a file system filter driver to identify future file operations performed on the source file.

16. The system of claim 11 , further comprising:

a target-identification module programmed to identify a target file on the secondary volume as a replicated version of the source file on the primary volume;

a target-receiving module programmed to receive a replicated write operation to apply to the target file on the secondary volume;

a target-location module programmed to identify target file extent information that indicates a target volume location of the target file within the secondary volume;

a target-offset module programmed to identify the file offset of the replicated write operation;

a target-conversion module programmed to convert the file offset to a target volume offset of the replicated write operation within the secondary volume using the target file extent information;

a target-application module programmed to apply the replicated write operation on the secondary volume using the target volume offset.

17. The system of claim 16 , wherein the target-location module is further programmed to:

receive new extent information that indicates a change in a size of the source file on the primary volume;

modify the target file on the secondary volume to match the source file on the primary volume based on the new extent information.

18. The system of claim 17 , wherein the target-location module is programmed to receive the new extent information by configuring a file system filter driver to receive the new extent information for modifying the target file.

19. The system of claim 18 , wherein the secondary volume is mounted to allow read operations and write operations for replication.

20. The system of claim 19 , further comprising a failover module programmed to:

identify a failover of the primary volume to the secondary volume;

reconfigure the file system filter driver to intercept file operations that change metadata of the target file to replicate to a new secondary volume in response to identifying the failover.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2012
From: KALEKAR, SANTOSH; CHATUR, MAKARAND
To: SYMANTEC CORPORATION
Reel/Frame 029089/0853 →