IP Library Granted Patent US 9,946,605
Granted Patent B2
US 9,946,605 · App. 14/952,831 · Granted Apr 17, 2018

Systems and methods for taking snapshots in a deduplicated virtual file system

Inventors: Xianbo Zhang (Plymouth, MN); Haigang Wang (Shoreview, MN); Shuangmin Zhang (Beijing, CN); Jeffrey Van Voorst (Shakopee, MN); Weibao Wu (Vadnais Heights, MN); Sameer Kulkarni (Minneapolis, MN); Nilesh Joshi (Roseville, MN); Kai Li (Beijing, CN); Yun Yang (Beijing, CN); Scott Brons (Eden Prairie, MN)
Assignee: Veritas Technologies LLC
G06F11/1453G06F3/0617G06F3/0641G06F3/0646G06F3/0683G06F17/30088G06F17/30156G06F17/30233G06F17/30371G06F2201/84
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,946,605
App. No.
14/952,831
Granted
Apr 17, 2018
Kind
B2
Abstract

A computer-implemented method for taking snapshots in a deduplicated virtual file system may include (1) maintaining a deduplicated virtual file system that stores, at an original location within a non-virtual file system, at least one configuration file storing metadata for a target file and an extent map for the target file, the extent map defining how to construct the target file from deduplicated data segments in a deduplicated storage system, (2) receiving a request to take a snapshot of the target file corresponding to the configuration file, (3) copying the configuration file storing metadata for the target file and the extent map for the target file into a snapshot location within the non-virtual file system, and (4) transmitting a file reference request to the deduplicated storage system to add a file reference within the deduplicated storage system. Various other methods, systems, and computer-readable media are also disclosed.

Claims (57)

1. A computer-implemented method for taking snapshots in a deduplicated virtual file system, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

maintaining a deduplicated virtual file system that stores, at an original location within a non-virtual file system, at least one configuration file storing metadata for a target file and an extent map for the target file, the extent map defining how to construct the target file from deduplicated data segments in a deduplicated storage system;

receiving a request to take a snapshot of the target file corresponding to the configuration file;

copying, in response to receiving the request to take the snapshot of the target file, the configuration file storing metadata for the target file and the extent map for the target file into a snapshot location within the non-virtual file system that is different than the original location;

transmitting, in response to receiving the request to take the snapshot of the target file, a file reference request to the deduplicated storage system to add a file reference within the deduplicated storage system, the file reference indicating that the snapshot of the target file references at least one deduplicated data segment within the deduplicated storage system.

2. The method of claim 1 , wherein:

the configuration file stores at least the metadata for the target file;

the original location of the configuration file comprises a metadata directory.

3. The method of claim 1 , wherein:

the configuration file stores at least the extent map for the target file;

the original location of the configuration file comprises a map directory.

4. The method of claim 1 , wherein:

the original location of the configuration file comprises a directory;

the snapshot location of the configuration file comprises a subdirectory of the directory.

5. The method of claim 4 , wherein the subdirectory of the directory is created in response to receiving the request to take the snapshot.

6. The method of claim 4 , wherein creating the subdirectory of the directory comprises assigning the subdirectory a name of the snapshot that was assigned to the snapshot prior to creating the subdirectory.

7. The method of claim 1 , wherein the at least one configuration file comprises:

a file storing the metadata for the target file;

a separate file storing the extent map for the target file.

8. The method of claim 1 , further comprising:

identifying, by the deduplicated storage system, the deduplicated data segment referenced by the snapshot of the target file;

marking, by the deduplicated storage system, the deduplicated data segment as referenced by the snapshot of the target file to prevent removal of the deduplicated data segment.

9. The method of claim 8 , further comprising marking, by the deduplicated storage system, each deduplicated data segment referenced by the snapshot of the target file as referenced by the snapshot of the target file to prevent removal of the respective deduplicated data segment.

10. The method of claim 1 , further comprising:

modifying content of the snapshot;

modifying the extent map stored at the snapshot location to reference both:

an additional deduplicated data segment that the snapshot newly references due to the modifying;

an additional deduplication container storing the additional deduplicated data segment separate from an original deduplication container storing the deduplicated data segment of the snapshot prior to the modifying.

11. A system comprising:

a maintenance module, stored in memory, that maintains a deduplicated virtual file system that stores, at an original location within a non-virtual file system, at least one configuration file storing metadata for a target file and an extent map for the target file, the extent map defining how to construct the target file from deduplicated data segments in a deduplicated storage system;

a reception module, stored in memory, that receives a request to take a snapshot of the target file corresponding to the configuration file;

a copying module, stored in memory, that copies, in response to receiving the request to take the snapshot of the target file, the configuration file storing metadata for the target file and the extent map for the target file into a snapshot location within the non-virtual file system that is different than the original location;

a transmission module, stored in memory, that transmits, in response to receiving the request to take the snapshot of the target file, a file reference request to the deduplicated storage system to add a file reference within the deduplicated storage system, the file reference indicating that the snapshot of the target file references at least one deduplicated data segment within the deduplicated storage system;

at least one physical processor configured to execute the maintenance module, the reception module, the copying module, and the transmission module.

12. The system of claim 11 , wherein:

the configuration file stores at least the metadata for the target file;

the original location of the configuration file comprises a metadata directory.

13. The system of claim 11 , wherein:

the configuration file stores at least the extent map for the target file;

the original location of the configuration file comprises a map directory.

14. The system of claim 11 , wherein:

the original location of the configuration file comprises a directory;

the snapshot location of the configuration file comprises a subdirectory of the directory.

15. The system of claim 14 , wherein the subdirectory of the directory is created in response to receiving the request to take the snapshot.

16. The system of claim 14 , wherein the copying module creates the subdirectory of the directory by assigning the subdirectory a name of the snapshot that was assigned to the snapshot prior to creating the subdirectory.

17. The system of claim 11 , wherein the at least one configuration file comprises:

a file storing the metadata for the target file;

a separate file storing the extent map for the target file.

18. The system of claim 11 , wherein the deduplicated storage system is programmed to:

identify the deduplicated data segment referenced by the snapshot of the target file;

mark the deduplicated data segment as referenced by the snapshot of the target file to prevent removal of the deduplicated data segment.

19. The system of claim 18 , wherein the deduplicated storage system is programmed to mark each deduplicated data segment referenced by the snapshot of the target file as referenced by the snapshot of the target file to prevent removal of the respective deduplicated data segment.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

maintain a deduplicated virtual file system that stores, at an original location within a non-virtual file system, at least one configuration file storing metadata for a target file and an extent map for the target file, the extent map defining how to construct the target file from deduplicated data segments in a deduplicated storage system;

receive a request to take a snapshot of the target file corresponding to the configuration file;

copy, in response to receiving the request to take the snapshot of the target file, the configuration file storing metadata for the target file and the extent map for the target file into a snapshot location within the non-virtual file system that is different than the original location;

transmit, in response to receiving the request to take the snapshot of the target file, a file reference request to the deduplicated storage system to add a file reference within the deduplicated storage system, the file reference indicating that the snapshot of the target file references at least one deduplicated data segment within the deduplicated storage system.

Assignments (13)
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 Nov 28, 2015
From: ZHANG, XIANBO; WANG, HAIGANG; ZHANG, SHUANGMIN; VAN VOORST, JEFFREY; WU, WEIBAO; KULKARNI, SAMEER; JOSHI, NILESH; LI, KAI; YANG, YUN; BRONS, SCOTT
To: SYMANTEC CORPORATION
Reel/Frame 037161/0337 →
Continuity (1)
Related Publication 20170147446A1 · May 25, 2017