IP Library Granted Patent US 11,176,102
Granted Patent B2
US 11,176,102 · App. 16/705,078 · Granted Nov 16, 2021

Incremental virtual machine metadata extraction

Inventors: Chinmaya Manjunath (San Jose, CA); Anirvan Duttagupta (San Jose, CA); Anubhav Gupta (Sunnyvale, CA); Sidharth Mishra (Santa Clara, CA); Zhihuan Qiu (San Jose, CA)
Assignee: Cohesity, Inc.
G06F16/188G06F16/128
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 11,176,102
App. No.
16/705,078
Granted
Nov 16, 2021
Kind
B2
Abstract

A virtual machine container file is analyzed to determine which portion of the virtual machine container file corresponds to a virtual machine file system metadata of the virtual machine container file. One or more differences between a first version of a virtual machine container file and a second version of the virtual machine container file are determined at least in part by traversing a snapshot structure associated with the virtual machine container file. The determined one or more differences that corresponds to the virtual machine file system metadata portion of the virtual machine container file are identified based at least in part on the analysis of the virtual machine container file. The identified one or more differences corresponding to the virtual machine file system metadata portion of the virtual machine file are utilized to identify one or more changes from the content files included in the first version of the virtual machine container file to content files included in the second version of the virtual machine container file.

Claims (53)

1. A method, comprising:

analyzing a virtual machine container file to determine which portion of the virtual machine container file corresponds to a virtual machine file system metadata of the virtual machine container file, wherein the virtual machine container file includes data associated with a plurality of virtual machine content files and metadata associated with the plurality of virtual machine content files;

analyzing the virtual machine container file to determine a file offset range corresponding to the virtual machine file system metadata portion of the virtual machine container file;

determining which portion of the file offset range corresponding to the virtual machine file system metadata portion corresponds to which virtual machine content file of a plurality of virtual machine content files included in the virtual machine container file, comprising:

determining that a first portion of the file offset range corresponding to a first virtual machine file system metadata portion corresponds to a first virtual machine content file;

determining one or more differences between a first version of the virtual machine container file and a second version of the virtual machine container file at least in part by determining one or more nodes indicating corresponding locations of data of a snapshot structure associated with the virtual machine container file that are not shared between the first version of the virtual machine container file and the second version of the virtual machine container file, comprising:

comparing the first portion associated with the first version and the first portion associated with the second version; and

in response to a determination the first portion associated with the first version and the first portion associated with the second version differ, determining that the first virtual machine content file has been modified;

identifying which of the determined one or more nodes indicating corresponding locations of data correspond to the virtual machine file system metadata portion of the virtual machine container file based at least in part on the analysis of the virtual machine container file;

utilizing the identified one or more nodes indicating corresponding locations of data that correspond to the virtual machine file system metadata portion of the virtual machine file to identify one or more changes from virtual machine content files included in the first version of the virtual machine container file to virtual machine content files included in the second version of the virtual machine container file; and

scanning the virtual machine content files that are included in the second version of the virtual machine container file based in part on the virtual machine file system metadata.

2. The method of claim 1 , further comprising receiving from a primary system a backup snapshot of file system data that includes the second version of the virtual machine container file.

3. The method of claim 2 , further comprising generating a view of the backup snapshot of the file system data, wherein the view includes a tree data structure associated with the second version of the virtual machine container file.

4. The method of claim 3 , wherein the tree data structure associated with the second version of the virtual machine container file includes a first reference to the snapshot structure associated with the second version of the virtual machine container file and a second reference to the snapshot structure associated with the first version of the virtual machine container file.

5. The method of claim 1 , further comprising generating and storing a data structure that associates file offset ranges of the virtual machine file system metadata portion with its corresponding virtual machine content file.

6. The method of claim 1 , further comprising reading the metadata of the identified one or more differences corresponding to the virtual machine file system metadata portion of the virtual machine container file to identify the one or more changes from content files included in the first version of the virtual machine container file to content files included in the second version of the virtual machine container file.

7. The method of claim 1 , wherein scanning the virtual machine content files that are included in the second version of the virtual machine container file includes performing a virus scan.

8. The method of claim 1 , further comprising:

receiving a request for a particular version of a virtual machine content file;

using a file system index to determine a virtual machine container file that stores the particular version of the virtual machine content file; and

providing the data associated with the particular version of the virtual machine content file.

9. The method of claim 1 , wherein the analysis of the virtual machine container file to determine which portion of the virtual machine container file corresponds to a virtual machine file system metadata of the virtual machine container file is utilized for analysis of a different version of the virtual machine container file.

10. The method of claim 1 , further comprising analyzing a later version of the virtual machine container file to determine which portion of the later version of the virtual machine container file corresponds to a virtual machine file system metadata of the later version of the virtual machine container file, wherein the determined portion for the later version of the virtual machine container file is different than determined portion for a previous version of the virtual machine container file.

11. The method of claim 1 , wherein the one or more nodes indicating corresponding locations of data are leaf nodes.

12. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

analyzing a virtual machine container file to determine which portion of the virtual machine container file corresponds to a virtual machine file system metadata of the virtual machine container file, wherein the virtual machine container file includes data associated with a plurality of virtual machine content files and metadata associated with the plurality of virtual machine content files;

analyzing the virtual machine container file to determine a file offset range corresponding to the virtual machine file system metadata portion of the virtual machine container file;

determining which portion of the file offset range corresponding to the virtual machine file system metadata portion corresponds to which virtual machine content file of a plurality of virtual machine content files included in the virtual machine container file, comprising:

determining that a first portion of the file offset range corresponding to a first virtual machine file system metadata portion corresponds to a first virtual machine content file;

determining one or more differences between a first version of the virtual machine container file and a second version of the virtual machine container file at least in part by determining one or more nodes indicating corresponding locations of data of a snapshot structure associated with the virtual machine container file that are not shared between the first version of the virtual machine container file and the second version of the virtual machine container file, comprising:

comparing the first portion associated with the first version and the first portion associated with the second version; and

in response to a determination the first portion associated with the first version and the first portion associated with the second version differ, determining that the first virtual machine content file has been modified;

identifying which of the determined one or more nodes indicating corresponding locations of data correspond to the virtual machine file system metadata portion of the virtual machine container file based at least in part on the analysis of the virtual machine container file;

utilizing the identified one or more nodes indicating corresponding locations of data corresponding to the virtual machine file system metadata portion of the virtual machine file to identify one or more changes from virtual machine content files included in the first version of the virtual machine container file to virtual machine content files included in the second version of the virtual machine container file; and

scanning the virtual machine content files that are included in the second version of the virtual machine container file based in part on the virtual machine file system metadata.

13. The computer program product of claim 12 , further comprising computer instructions for receiving from a primary system a backup snapshot of file system data that includes the second version of the virtual machine container file.

14. The computer program product of claim 13 , further comprising computer instructions for generating a view of the backup snapshot of the file system data, wherein the view includes a tree data structure associated with the second version of the virtual machine container file.

15. The computer program product of claim 14 , wherein the tree data structure associated with the second version of the virtual machine container file includes a first reference to the snapshot structure associated with the second version of the virtual machine container file and a second reference to the snapshot structure associated with the first version of the virtual machine container file.

16. The computer program product of claim 12 , further comprising computer instructions for analyzing the virtual machine container file to determine a file offset range corresponding to metadata associated with a plurality of virtual machine content files included in the virtual machine container file.

17. The computer program product of claim 12 , wherein scanning the virtual machine content files that are included in the second version of the virtual machine container file includes performing a virus scan.

18. A system, comprising:

a processor configured to:

analyze a virtual machine container file to determine which portion of the virtual machine container file corresponds to a virtual machine file system metadata of the virtual machine container file, wherein the virtual machine container file includes data associated with a plurality of virtual machine content files and metadata associated with the plurality of virtual machine content files;

analyze the virtual machine container file to determine a file offset range corresponding to the virtual machine file system metadata portion of the virtual machine container file;

determine which portion of the file offset range corresponding to the virtual machine file system metadata portion corresponds to which virtual machine content file of a plurality of virtual machine content files included in the virtual machine container file, comprising:

determine that a first portion of the file offset range corresponding to a first virtual machine file system metadata portion corresponds to a first virtual machine content file;

determine one or more differences between a first version of the virtual machine container file and a second version of the virtual machine container file at least in part by determining one or more nodes indicating corresponding locations of data of a snapshot structure associated with the virtual machine container file that are not shared between the first version of the virtual machine container file and the second version of the virtual machine container file, comprising:

compare the first portion associated with the first version and the first portion associated with the second version; and

in response to a determination the first portion associated with the first version and the first portion associated with the second version differ, determine that the first virtual machine content file has been modified;

identify which of the determined one or more nodes indicating corresponding locations of data correspond to the virtual machine file system metadata portion of the virtual machine container file based at least in part on the analysis of the virtual machine container file;

utilize the identified one or more nodes indicating corresponding locations of data corresponding to the virtual machine file system metadata portion of the virtual machine file to identify one or more changes from virtual machine content files included in the first version of the virtual machine container file to virtual machine content files included in the second version of the virtual machine container file; and

scan the virtual machine content files that are included in the second version of the virtual machine container file based in part on the virtual machine file system metadata; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (5)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED ON REEL 051635 FRAME 0114. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 21, 2020
From: MANJUNATH, CHINMAYA; DUTTAGUPTA, ANIRVAN; GUPTA, ANUBHAV; MISHRA, SIDHARTH; QIU, ZHIHUAN
To: COHESITY, INC.
Reel/Frame 051987/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: MANJUNATH, CHINMAYA; DUTTAGUPTA, ANIRVAN; GUPTA, ANUBHAV; MISHRA, SIDHARTH; QIU, ZHIHUAN
To: COHESITY, INC.
Reel/Frame 051635/0114 →
Continuity (2)
Continuation 16110314 · Aug 23, 2018
Related Publication 20200142865A1 · May 7, 2020