IP Library Granted Patent US 9,037,547
Granted Patent B1
US 9,037,547 · App. 12/882,373 · Granted May 19, 2015

Backup time deduplication of common virtual disks from virtual machine backup images

Inventor: Vinayak Sudhakar Shivdeo (Pune, IN)
Assignee: Symantec Corporation
G06F17/30156G06F17/30575
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,037,547
App. No.
12/882,373
Granted
May 19, 2015
Kind
B1
Abstract

Various techniques deduplicate common virtual disks during backups of virtual machines. For example, one method involves receiving a request to perform a backup operation to backup one or more virtual machine and then performing the backup operation in response to receiving the request. Performing the backup operation involves detecting whether a virtual disk associated with a virtual machine is already identified in a backup catalog for the backup operation, based upon a globally unique identifier associated with the virtual disk, and selecting to create a reference to a backup copy of the virtual disk instead of creating another copy of the virtual disk, if the backup catalog already identifies the virtual disk. Performing the backup operation can also involve accessing information identifying a hierarchy of virtual disks.

Claims (95)

1. A method comprising:

receiving a request to perform a backup operation to backup a first virtual machine;

performing the backup operation, in response to the receiving the request, wherein the performing the backup operation comprises:

determining a first identifier of a first virtual disk, wherein

the first virtual disk is associated with the first virtual machine;

determining whether the first identifier is included in a plurality of identifiers by comparing the first identifier to the plurality of identifiers,

in response to a determination that the first identifier is included in the plurality of identifiers, determining that a first backup copy of the first virtual disk is already stored in a backup storage, wherein

the first virtual disk is a common virtual disk, and

the first virtual disk is shared by the first virtual machine and at least a second virtual machine to store common configuration data used by both the first virtual machine and the second virtual machine

updating a backup catalog to include a reference to the first backup copy of the first virtual disk already stored in the backup storage instead of creating another copy of the first virtual disk in the backup storage, wherein

the reference indicates a location of the first backup copy in the backup storage, and

the reference associates the first virtual machine and the second virtual machine with the first virtual disk;

receiving another request to restore the first virtual machine from a backup image;

detecting that the first virtual disk is the common virtual disk, in response to the reference being associated with a second virtual machine;

detecting that a pointer to the common virtual disk has been modified subsequent to performance of the backup operation, wherein

a user has specified that restoration of the first virtual machine should not overwrite any common virtual disks; and

displaying a message to the user, indicating that the pointer has been modified subsequent to the performance of the backup operation.

2. The method of claim 1 , wherein the performing the backup operation further comprises accessing information identifying a hierarchy of virtual disks.

3. The method of claim 2 , further comprising:

identifying the first virtual disk as a common virtual disk, in response to the first virtual disk being identified as a parent disk in the hierarchy of virtual disks.

4. The method of claim 1 , further comprising displaying a message to a user, wherein

the message indicates that restoration of the first virtual machine involves restoring the common virtual disk.

5. The method of claim 1 , wherein

the first identifier is a first globally unique identifier (GUID), and

the plurality of identifiers is a plurality of globally unique identifiers (GUIDs).

6. The method of claim 1 , wherein

the first backup copy of the first virtual disk was created at a point in time,

the updating the backup catalog is performed in response to a determination that the first virtual disk has not been modified since the point in time, and

the updating the backup catalog further comprises:

associating a pointer with the first virtual machine, wherein

the pointer identifies the first backup copy in the backup storage.

7. The method of claim 6 , further comprising:

identifying the first virtual disk as a common virtual disk, in response to detecting that the pointer is also associated with a second virtual machine.

8. The method of claim 1 , wherein

the plurality of identifiers is stored in a backup catalog, and

each of the plurality of identifiers identify one of a plurality of backup copies of virtual disks stored in backup storage.

9. The method of claim 1 , wherein

the common configuration data is used to implement a common configuration between the first virtual machine and the second virtual machine.

10. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable to:

receive a request to perform a backup operation to backup a first virtual machine;

perform the backup operation, in response to the receiving the request, wherein to perform the backup operation the program instructions are executable to:

determine a first identifier of a first virtual disk, wherein

the first virtual disk is associated with the first virtual machine;

determine whether the first identifier is included in a plurality of identifiers by comparing the first identifier to the plurality of identifiers,

determine that a first backup copy of the first virtual disk is already stored in a backup storage, in response to a determination that the first identifier is included in the plurality of identifiers, wherein

the first virtual disk is a common virtual disk, and

the first virtual disk is shared by the first virtual machine and at least a second virtual machine to store common configuration data used by both the first virtual machine and the second virtual machine, and

update a backup catalog to include a reference to the first backup copy of the first virtual disk already stored in the backup storage instead of creating another copy of the first virtual disk in the backup storage, wherein

the reference indicates a location of the first backup copy in the backup storage, and

the reference associates the first virtual machine and the second virtual machine with the first virtual disk;

receive another request to restore the first virtual machine from a backup image;

detect that the first virtual disk is the common virtual disk, in response to the reference being associated with a second virtual machine;

detect that a pointer to the common virtual disk has been modified subsequent to performance of the backup operation, wherein

a user has specified that restoration of the first virtual machine should not overwrite any common virtual disks; and

display a message to the user, indicating that the pointer has been modified subsequent to the performance of the backup operation.

11. The system of claim 10 , wherein performance of the backup operation comprises accessing information identifying a hierarchy of virtual disks.

12. The system of claim 11 , wherein the program instructions are further executable to:

identify the first virtual disk as a common virtual disk, in response to the first virtual disk being identified as a parent disk in the hierarchy of virtual disks.

13. The system of claim 10 , wherein

the plurality of identifiers is stored in a backup catalog, and

each of the plurality of identifiers identify one of a plurality of backup copies of virtual disks stored in backup storage.

14. The system of claim 10 , wherein

the common configuration data is used to implement a common configuration between the first virtual machine and the second virtual machine.

15. A non-transitory computer readable storage medium storing program instructions executable to:

receive a request to perform a backup operation to backup a first virtual machine;

perform the backup operation, in response to the receiving the request, wherein to perform the backup operation the program instructions are executable to:

determine a first identifier of a first virtual disk, wherein

the first virtual disk is associated with the first virtual machine;

determine whether the first identifier is included in a plurality of identifiers by comparing the first identifier to the plurality of identifiers

determine that a first backup copy of the first virtual disk is already stored in a backup storage, in response to a determination that the first identifier is included in the plurality of identifiers, wherein

the first virtual disk is a common virtual disk, and

the first virtual disk is shared by the first virtual machine and at least a second virtual machine to store common configuration data used by both the first virtual machine and the second virtual machine,

update a backup catalog to include a reference to the first backup copy of the first virtual disk already stored in the backup storage instead of creating another copy of the first virtual disk in the backup storage, wherein

the reference indicates a location of the first backup copy in the backup storage, and

the reference associates the first virtual machine and the second virtual machine with the first virtual disk;

receive another request to restore the first virtual machine from a backup image;

detect that the first virtual disk is the common virtual disk, in response to the reference being associated with a second virtual machine;

detect that a pointer to the common virtual disk has been modified subsequent to performance of the backup operation, wherein

a user has specified that restoration of the first virtual machine should not overwrite any common virtual disks; and

display a message to the user, indicating that the pointer has been modified subsequent to the performance of the backup operation.

16. The non-transitory computer readable storage medium of claim 15 , wherein performance of the backup operation comprises accessing information identifying a hierarchy of virtual disks.

17. The non-transitory computer readable storage medium of claim 15 , wherein the program instructions are further executable to:

identify the first virtual disk as a common virtual disk, in response to the virtual disk being identified as a parent disk in the hierarchy of virtual disks.

18. The non-transitory computer readable storage medium of claim 15 , wherein the program instructions are further executable to:

receive a request to restore the first virtual machine from a backup image; and

detect that the first virtual disk is a common virtual disk, in response to the pointer being associated with a second virtual machine.

19. The non-transitory computer readable storage medium of claim 18 , wherein the program instructions are further executable to

display a message to a user, wherein

the message indicates that restoration of the first virtual machine involves restoring the common virtual disk.

20. The non-transitory computer readable storage medium of claim 16 , wherein

the pointer is stored in a backup catalog, and

the pointer identifies one of a plurality of backup copies of virtual disks stored in backup storage.

21. The non-transitory computer readable storage medium of claim 16 , wherein the common configuration data is used to implement a common configuration between the first virtual machine and the second virtual machine.

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 AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
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 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2010
From: SHIVDEO, VINAYAK SUDHAKAR
To: SYMANTEC CORPORATION
Reel/Frame 024989/0619 →