IP Library Granted Patent US 10,235,247
Granted Patent B1
US 10,235,247 · App. 15/275,749 · Granted Mar 19, 2019

Compressing memory snapshots

Inventors: Assaf Natanzon (Tel Aviv, IL); Philip Derbeko (Modi'in, IL); Moran Zahavy (Beer-Sheva, IL); Maya Bakshi (Beer-Sheva, IL); Anton Pavlinov (Beer-Sheva, IL)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1453G06F9/45558G06F12/0891G06F12/0893G06F12/123G06F17/30132G06F17/30233G06F2009/45583G06F2201/815G06F2201/84G06F2212/1032G06F2212/152G06F2212/463G06F2212/60G06F2212/69
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 10,235,247
App. No.
15/275,749
Granted
Mar 19, 2019
Kind
B1
Abstract

A computer program product, system, and method for generating coded fragments comprises receiving a request to generate a memory snapshot for a virtual machine (VM), copying the VM's memory to generate a memory snapshot, obtaining information about cache structures within the memory snapshot, invalidating one or more of the cache structures and zeroing out corresponding cache data within the memory snapshot, and storing the memory snapshot to storage.

Claims (40)

1. A method comprising:

receiving a request to generate a memory snapshot for a virtual machine (VM);

generating a memory snapshot of the VM's memory, the memory snapshot including a first portion that represents a state of the VM's memory and a second portion that represents a state of a cache that is associated with the VM's memory;

identifying a configuration setting that specifies a cache management policy for invalidating contents of the cache that is associated with the VM's memory;

post-processing the memory snapshot based on the configuration setting, the post-processing including zeroing out cache data within the second portion of the memory snapshot based on the configuration setting; and

compressing the memory snapshot after zeroing out corresponding cache data within the second portion of the memory snapshot, and storing the memory snapshot to storage.

2. The method of claim 1 further comprising invalidating one or more cache structures in the cache that is associated with the VM's memory.

3. The method of claim 2 wherein invalidating the one or more cache structures comprises erasing the one or more cache structures.

4. The method of claim 3 wherein erasing the one or more cache structures from cache comprises setting an invalid bit within each of the one or more cache structures.

5. The method of claim 2 further comprising obtaining information about the one or more cache structures, wherein obtaining information about the one or more cache structures includes obtaining information about cache structures used by application processes running within the VM.

6. The method of claim 2 wherein invalidating the one or more cache structures comprises selecting the one or more cache structures using a least-recently used (LRU) heuristic.

7. The method of claim 1 wherein at least a portion of the post processing is performed using a driver specific to a guest operating system (OS) of the VM.

8. The method of claim 1 wherein storing the memory snapshot to storage comprises storing the compressed memory snapshot to a deduplicated storage system.

9. The method of claim 1 further comprising:

retrieving the memory snapshot from storage; and

restoring the VM using the retrieved memory snapshot.

10. A system comprising:

one or more processors;

a volatile memory; and

a non-volatile memory storing computer program code that when executed on the processor causes execution across the one or more processors of a process operable to perform the operations of:

receiving a request to generate a memory snapshot for a virtual machine (VM);

generating a memory snapshot of the VM's memory, the memory snapshot including a first portion that represents a state of the VM's memory and a second portion that represents a state of a cache that is associated with the VM's memory;

identifying a configuration setting that specifies a cache management policy for invalidating contents of the cache that is associated with the VM's memory;

post-processing the memory snapshot based on the configuration setting, the post-processing including zeroing out corresponding cache data within the second portion of the memory snapshot; and

compressing the memory snapshot after zeroing out corresponding cache data within the second portion of the memory snapshot, and storing the memory snapshot to storage.

11. The system of claim 10 wherein the one or more processors are further operable to perform the operation of invalidating one or more cache structures in the cache that is associated with the VM's memory.

12. The system of claim 11 wherein invalidating the one or more cache structures comprises erasing the one or more cache structures.

13. The system of claim 12 wherein erasing the one or more cache structures from cache comprises setting an invalid bit within each of the one or more cache structures.

14. The system of claim 10 wherein:

the one or more processors are further operable to perform the operation of obtaining information about one or more cache structures, and

obtaining information about the one or more cache structures within the memory snapshot includes obtaining information about cache structures used by application processes running within the VM.

15. The system of claim 11 wherein invalidating the one or more cache structures comprises selecting the one or more cache structures using a least-recently used (LRU) heuristic.

16. The system of claim 10 wherein at least a portion of the post-processing is performed using a driver specific to a guest operating system (OS) of the VM.

17. The system of claim 10 wherein storing the memory snapshot to storage comprises storing the compressed memory snapshot to a deduplicated storage system.

18. A computer program product tangibly embodied in a non-transitory computer-readable medium, the computer-readable medium storing program instructions that are executable to:

receive a request to generate a memory snapshot for a virtual machine (VM);

generate a memory snapshot of the VM's memory, the memory snapshot including a first portion that represents a state of the VM's memory and a second portion that represents a state of a cache that is associated with the VM's memory;

identify a configuration setting that specifies a cache management policy for invalidating contents of the cache that is associated with the VM's memory;

post-process the memory snapshot based on the configuration setting, the post-processing including zeroing out corresponding cache data within the second portion of the memory snapshot; and

compress the memory snapshot after zeroing out corresponding cache data within the memory snapshot and store the memory snapshot to storage.

Assignments (4)
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
CORRECTIVE NOTICE TO RELEASE SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 29, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053079/0957 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2016
From: NATANZON, ASSAF; DERBEKO, PHILIP; ZAHAVY, MORAN; BAKSHI, MAYA; PAVLINOV, ANTON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040221/0720 →
Cited By (1)
US 12,504,986