Time-based virtual machine reversion

US10474542B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10474542-B2
Application numberUS-201815924004-A
CountryUS
Kind codeB2
Filing dateMar 16, 2018
Priority dateMar 24, 2017
Publication dateNov 12, 2019
Grant dateNov 12, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Recovery points can be used for replicating a virtual machine and reverting the virtual machine to a different state. A filter driver can monitor and capture input/output commands between a virtual machine and a virtual machine disk. The captured input/output commands can be used to create a recovery point. The recovery point can be associated with a bitmap that may be used to identify data blocks that have been modified between two versions of the virtual machine. Using this bitmap, a virtual machine may be reverted or restored to a different state by replacing modified data blocks and without replacing the entire virtual machine disk.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method of reverting to an earlier version of a virtual machine, the computer-implemented method comprising: as implemented by a filter driver within a first computing system comprising one or more hardware processors and configured with computer-executable instructions, wherein the filter driver operates between an input/output framework of a virtual machine hosted by the first computing system and a virtual disk of the virtual machine, receiving an identification of a recovery point of the virtual machine; at the first computing system, initiating the virtual machine in a first state, wherein the first state is more recent than a second state corresponding to the recovery point; by the filter driver, accessing a bitmap corresponding to the recovery point, wherein the bitmap is stored at a second computing system comprising one or more hardware processors and configured with computer-executable instructions, and wherein the second computing system is part of a secondary storage system that is communicatively coupled to the first computing system; identifying a set of data blocks to retrieve from the secondary storage system based at least in part on the bitmap, wherein the bitmap indicates data blocks stored in the secondary storage system that differ in content compared to corresponding data blocks of the virtual disk of the virtual machine; to revert the virtual machine to the second state corresponding to the recovery point, initiating a data block retrieval process to retrieve the set of data blocks from the secondary storage system; by the filter driver, receiving an input/output command from the virtual machine that references a data block from the set of data blocks, wherein the data block has yet to be retrieved from the secondary storage system; and by the filter driver, prioritizing the data block for retrieval over remaining data blocks from the set of data blocks. 2. The computer-implemented method of claim 1 , further comprising executing the input/output command subsequent to retrieval of the data block. 3. The computer-implemented method of claim 1 , further comprising providing the virtual machine with a copy of the data block subsequent to retrieval of the data block. 4. The computer-implemented method of claim 1 , further comprising prioritizing for retrieval a collocated data block of the data block from the set of data blocks over the remaining data blocks from the set of data blocks. 5. The computer-implemented method of claim 1 , wherein prioritizing the data block for retrieval comprises: pausing retrieval of the remaining data blocks from the set of data blocks; retrieving the data block; and resuming retrieval of the remaining data blocks subsequent to retrieving the data block. 6. The computer-implemented method of claim 1 , wherein prioritizing the data block for retrieval comprises initiating a new retrieval thread to retrieve the data block. 7. The computer-implemented method of claim 1 , wherein initiating the virtual machine in the first state comprises initiating the virtual machine to a current state. 8. The computer-implemented method of claim 1 , wherein initiating the virtual machine in the first state comprises: identifying a snapshot of the virtual machine that is closest in time to the recovery point; and loading the snapshot of the virtual machine. 9. The computer-implemented method of claim 1 , wherein identifying the set of data blocks to retrieve comprises determining differences between the bitmap and a second bitmap corresponding to the first state of the virtual machine. 10. The computer-implemented method of claim 1 , wherein identifying the set of data blocks to retrieve comprises determining a storage location at the secondary storage system of one or more data blocks from the set of data blocks. 11. A system for reverting to an earlier version of a virtual machine, the system comprising: a filter driver implemented on a first computing system comprising one or more hardware processors, wherein the filter driver operates between an input/output framework of a virtual machine and a virtual disk of the virtual machine to monitor and capture input/output commands between the virtual machine and the virtual disk; a secondary storage system in communication with the first computing system, wherein the secondary storage system comprises one or more secondary storage devices, a second computing system comprising one or more hardware processors, and a bitmap corresponding to a recovery point of the virtual machine; and wherein the filter driver is configured to: receive an identification of the recovery point of the virtual machine; initiate the virtual machine in a first state, the first state more recent than a second state corresponding to the recovery point; access the bitmap corresponding to the recovery point; identify a set of data blocks to retrieve from the secondary storage system based at least in part on the bitmap, wherein the bitmap indicates data blocks stored in the secondary storage system that differ in content compared to corresponding data blocks of the virtual disk of the virtual machine; to revert the virtual machine to the second state corresponding to the recovery point, initiate a data block retrieval process to retrieve the set of data blocks from the secondary storage system; capture an input/output command from the virtual machine that references a data block from the set of data blocks, wherein the data block has yet to be retrieved from the secondary storage system; and prioritize the data block for retrieval over remaining data blocks from the set of data blocks. 12. The system of claim 11 , wherein the filter driver is further configured to permit execution of the input/output command subsequent to retrieval of the data block. 13. The system of claim 11 , wherein the filter driver is further configured to provide the virtual machine with a copy of the data block subsequent to retrieval of the data block. 14. The system of claim 11 , wherein the filter driver is further configured to prioritize for retrieval a collocated data block of the data block from the set of data blocks over the remaining data blocks from the set of data blocks. 15. The system of claim 11 , wherein the filter driver is further configured to prioritize the data block for retrieval by: pausing retrieval of the remaining data blocks from the set of data blocks; retrieving the data block; and resuming retrieval of the remaining data blocks subsequent to retrieving the data block. 16. The system of claim 11 , wherein the filter driver is further configured to prioritize the data block for retrieval by initiating a new retrieval thread to retrieve the data block. 17. The system of claim 11 , wherein initiating the virtual machine in the first state comprises initiating the virtual machine to a current state. 18. The system of claim 11 , wherein initiating the virtual machine in the first state comprises: identifying a snapshot of the virtual machine that is closest in time to the recovery point; and loading the snapshot of the virtual machine. 19. The system of claim 11 , wherein the filter driver is further configured to identify the set of data blocks to retrieve by determining differences between the bitmap and a second bitmap corresponding to the first state of the virtual machine. 20. The system of claim 11 , wherein identifying the set of data blocks to retrieve comprises determining a

Assignees

Inventors

Classifications

  • Display of status information · CPC title

  • where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50) · CPC title

  • Creating, deleting, cloning virtual machine instances · CPC title

  • where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097) · CPC title

  • Network integration; Enabling network access in virtual machine instances · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10474542B2 cover?
Recovery points can be used for replicating a virtual machine and reverting the virtual machine to a different state. A filter driver can monitor and capture input/output commands between a virtual machine and a virtual machine disk. The captured input/output commands can be used to create a recovery point. The recovery point can be associated with a bitmap that may be used to identify data blo…
Who is the assignee on this patent?
Commvault Systems Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 12 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).