IP Library Granted Patent US 11,841,797
Granted Patent B2
US 11,841,797 · App. 17/684,450 · Granted Dec 12, 2023

Optimizing instant clones through content based read cache

Inventor: Shirish Vijayvargiya (Pune, IN)
Assignee: VMWARE, INC.
G06F12/0802G06F9/45558G06F2212/65
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,841,797
App. No.
17/684,450
Granted
Dec 12, 2023
Kind
B2
Abstract

The disclosure provides an approach for content based read cache (CBRC) digest file creation. Embodiments include determining a mapping between entries in a CBRC and physical block addresses (PBAs) associated with a source virtual machine (VM). Embodiments include creating a clone VM based on the source VM. Embodiments include, for each data block associated with the clone VM: determining a PBA associated with a logical block address (LBA) of the data block, determining, based on the mapping, whether data associated with the PBA is cached in the CBRC, and, if the data associated with the PBA is cached in the CBRC, copying a hash of the data from a first digest file of the source VM to a second digest file of the clone VM and associating the hash with the LBA in the second digest file.

Claims (48)

1. A method for content based read cache (CBRC) digest file creation, comprising:

determining a mapping between entries in a CBRC and physical block addresses (PBAs) associated with a source virtual machine (VM);

creating a clone VM based on the source VM; and

for each data block associated with the clone VM:

determining a PBA associated with a logical block address (LBA) of the data block;

determining, based on the mapping, whether data associated with the PBA is cached in the CBRC; and

if the data associated with the PBA is cached in the CBRC, copying a hash of the data from a first digest file of the source VM to a second digest file of the clone VM and associating the hash with the LBA in the second digest file.

2. The method of claim 1 , further comprising, if the data associated with the PBA is not cached in the CBRC, computing the hash of the data and associating the hash with the LBA in the second digest file.

3. The method of claim 2 , further comprising, if the data associated with the PBA is not cached in the CBRC:

creating a new entry in the CBRC comprising the data associated with the hash; and

storing a new mapping between the new entry in the CBRC and the PBA.

4. The method of claim 1 , further comprising:

receiving a storage read request comprising a given LBA associated with the clone VM; and

retrieving, based on the storage read request, given data from the CBRC using a given hash associated with the LBA in the second digest file.

5. The method of claim 1 , wherein determining the mapping between entries in the CBRC and the PBAs associated with the source VM is based on the first digest file and a page table associated with the source VM that maps LBAs to PBAs.

6. The method of claim 1 , wherein creating the clone VM based on the source VM comprises performing an instant clone operation in which the clone VM is created from a running state of the source VM while the source VM is powered on, and wherein the clone VM is created in a powered on state.

7. The method of claim 6 , wherein the instant clone operation is performed as part of a virtual desktop interface (VDI) deployment.

8. The method of claim 1 , wherein the PBAs are associated in the mapping with one or more identifiers of one or more storage devices.

9. The method of claim 1 , wherein the mapping is stored in the first digest file.

10. A system for content based read cache (CBRC) digest file creation, the system comprising:

at least one memory; and

at least one processor coupled to the at least one memory, the at least one processor and the at least one memory configured to:

determine a mapping between entries in a CBRC and physical block addresses (PBAs) associated with a source virtual machine (VM);

create a clone VM based on the source VM; and

for each data block associated with the clone VM:

determine a PBA associated with a logical block address (LBA) of the data block;

determine, based on the mapping, whether data associated with the PBA is cached in the CBRC; and

if the data associated with the PBA is cached in the CBRC, copy a hash of the data from a first digest file of the source VM to a second digest file of the clone VM and associating the hash with the LBA in the second digest file.

11. The system of claim 10 , wherein the at least one processor and the at least one memory are further configured to, if the data associated with the PBA is not cached in the CBRC, compute the hash of the data and associating the hash with the LBA in the second digest file.

12. The system of claim 11 , wherein the at least one processor and the at least one memory are further configured to, if the data associated with the PBA is not cached in the CBRC:

create a new entry in the CBRC comprising the data associated with the hash; and

store a new mapping between the new entry in the CBRC and the PBA.

13. The system of claim 10 , wherein the at least one processor and the at least one memory are further configured to:

receive a storage read request comprising a given LBA associated with the clone VM; and

retrieve, based on the storage read request, given data from the CBRC using a given hash associated with the LBA in the second digest file.

14. The system of claim 10 , wherein determining the mapping between entries in the CBRC and the PBAs associated with the source VM is based on the first digest file and a page table associated with the source VM that maps LBAs to PBAs.

15. The system of claim 10 , wherein creating the clone VM based on the source VM comprises performing an instant clone operation in which the clone VM is created from a running state of the source VM while the source VM is powered on, and wherein the clone VM is created in a powered on state.

16. The system of claim 15 , wherein the instant clone operation is performed as part of a virtual desktop interface (VDI) deployment.

17. The system of claim 10 , wherein the PBAs are associated in the mapping with one or more identifiers of one or more storage devices.

18. The system of claim 10 , wherein the mapping is stored in the first digest file.

19. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

determine a mapping between entries in a CBRC and physical block addresses (PBAs) associated with a source virtual machine (VM);

create a clone VM based on the source VM; and

for each data block associated with the clone VM:

determine a PBA associated with a logical block address (LBA) of the data block;

determine, based on the mapping, whether data associated with the PBA is cached in the CBRC; and

if the data associated with the PBA is cached in the CBRC, copy a hash of the data from a first digest file of the source VM to a second digest file of the clone VM and associating the hash with the LBA in the second digest file.

20. The non-transitory computer-readable medium of claim 19 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to, if the data associated with the PBA is not cached in the CBRC, compute the hash of the data and associating the hash with the LBA in the second digest file.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2022
From: VIJAYVARGIYA, SHIRISH
To: VMWARE, INC.
Reel/Frame 059140/0892 →
Priority Claims (1)
IN 202241002047 · Jan 13, 2022 · national
Continuity (1)
Related Publication 20230251967A1 · Aug 10, 2023