Virtual Machine Restore with Filter Module I/O Redirection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Restoring virtual machines and virtual disks from backup storage often results in performance degradation due to the need to wait for complete data copying and inefficient I/O operations, leading to delays and potential data corruption.
Innovation Solution
Implementing a system with a filter module and redirect module that allows virtual machines to operate during restoration by redirecting I/O requests to backup storage and managing data writes and reads efficiently, using a sparse virtual disk file and migration metadata to track progress and prevent data overwrites.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If virtual machine and virtual disk data are copied from backup storage to local storage before allowing operations, then data integrity is ensured, but restoration time and system downtime increase significantly
Solution Approach 1:
The system performs preliminary actions by creating a sparse virtual disk file structure before complete data restoration, allowing the virtual machine to be registered and partially operational while data copying continues in the background. The sparse file structure pre-allocates space but only actually writes data as it is accessed or copied.
Solution Approach 2:
A filter module is introduced as an intermediary between the virtual machine I/O operations and the storage system. This filter module intercepts and manages read/write requests, redirecting them appropriately during the restoration process, allowing operations to proceed without waiting for complete data copying while maintaining data integrity.
2Productivity
If virtual machine operations are allowed during restoration by redirecting I/O requests to backup storage, then productivity is maintained, but performance degradation occurs due to slow backup storage access
Solution Approach 1:
The system segments I/O operations into different paths: reads are redirected to backup storage while writes are directed to local storage. This segmentation allows the virtual machine to remain operational with acceptable performance for write operations, while read operations tolerate the slower backup storage speed.
Solution Approach 2:
The system dynamically adjusts I/O routing based on the restoration progress and operation type. As data is copied from backup to local storage, the system can transition operations from backup storage to local storage, optimizing performance dynamically throughout the restoration process.
3Productivity
If data writing is allowed during restoration before complete copying, then operational continuity is maintained, but data corruption risk increases from potential overwrites
Solution Approach 1:
A migration metadata file serves as feedback mechanism, tracking which data blocks have been copied from backup to local storage. The filter module queries this metadata to determine whether to allow writes to specific blocks, preventing overwrites of blocks that have not yet been fully restored from backup.
Solution Approach 2:
The filter module acts as an intermediary that intercepts write requests and checks the migration metadata before allowing the write to proceed. This intermediary layer prevents data corruption by blocking writes to blocks that are still being restored, while allowing writes to blocks that have been fully copied.
Data Source
AI summary
Various systems and methods for restoring a virtual machine and virtual machine data. For example, one method can involve receiving a request to restore the virtual machine and virtual machine data. The virtual machine data can include part or all of a virtual disk associated with the virtual machine. Both the virtual machine and the virtual machine data are stored in one or more backup storage devices. In response to the request, the virtual machine is restored from the backup storage device to a local storage device, and restoration of the virtual machine data is initiated. While the virtual machine data is being migrated from backup to local storage, I/O requests are received and processed. Processing the I/O request can involve performing the I/O requests to both the backup storage device and the local storage device.


