Accelerated loading of guest virtual machine from live snapshot
AssigneeAvast Software s.r.o.
InventorsLubos Hnanícek, Petr Kurtin
Life of this patent
Estimating the term…
Abstract
Loading a guest virtual machine from a snapshot includes determining a plurality of executable modules loaded in a guest operating system. Hash values for pages of guest physical memory in the snapshot file are determined. Hash values for pages of the executable modules executing in the guest operating system are determined. Matches to the pages in the guest physical memory and the pages of the executable modules are searched for using the hash values. Context information associated with the matching pages in the guest physical memory and the pages of the executable modules is written to the snapshot. The snapshot is modified to link the guest physical memory to the pages of the executable modules.
Claims18
A method for optimizing a guest virtual machine (VM) snapshot, the method comprising the steps of:
- loading a plurality of executable modules in a guest operating system (OS);
- extracting information of the executable modules in the guest OS;
- creating a memory hash for pages of guest physical memory of the guest OS;
- creating a module hash for pages of the executable modules executing in the guest OS;
- searching for matches to the pages of guest physical memory and the pages of the executable modules;
- storing context information associated with the matches to the pages of guest physical memory and the pages of the executable modules to a snapshot;
- and
- modifying the snapshot to link the guest physical memory to the pages of the executable modules.
A method for loading a guest virtual machine (VM) snapshot, the method comprising the steps of:
- determining to extract a plurality of executable modules in a guest operating system (OS);
- extracting information of the executable modules in the guest OS;
- creating a memory hash value for pages of guest physical memory;
- creating a module hash value for pages of the executable modules executing in the guest OS;
- searching for matches to the pages of the guest physical memory and the pages of the executable modules;
- storing context information associated with the matches to the pages of the guest physical memory and the pages of the executable modules to a guest snapshot file;
- modifying the snapshot file to link the guest physical memory to the pages of the executable modules;
- reading the context information from the snapshot file;
- mapping modules containing matching pages from the snapshot file into a host process virtual;
- relocating the matching pages for the modules to match a guest load address, the relocating using the context information;
- and
- checking a first hash value of the relocated matching page with a hash value stored in the context information.
A non-transitory computer readable storage medium having a program stored thereon, the program causing a computer to execute the steps of:
- determining to extract a plurality of executable modules in a guest operating system (OS);
- extracting information of the executable modules in the guest OS;
- creating a memory hash value for pages of guest physical memory;
- creating a module hash value for pages of the executable modules executing in the guest OS;
- searching for matches to the pages of the guest physical memory and the pages of the executable modules;
- storing context information associated with the matches to the pages of the guest physical memory and the pages of the executable modules to a guest snapshot file;
- modifying the snapshot file to link the guest physical memory to the pages of the executable modules;
- reading the context information from the snapshot file;
- mapping modules containing matching pages from the snapshot file into a host process virtual;
- relocating the matching pages for the modules to match a guest load address, the relocating using the context information;
- and
- checking a first hash value of the relocated matching page with a hash value stored in the context information.
Dependencies are inferred from the claim text.