Intelligent data propagation using performance monitoring
US-2015134607-A1 · May 14, 2015 · US
US10474542B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10474542-B2 |
| Application number | US-201815924004-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 16, 2018 |
| Priority date | Mar 24, 2017 |
| Publication date | Nov 12, 2019 |
| Grant date | Nov 12, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.