Speculative Virtual Machine Execution via Prefetching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Live migration of virtual machines often results in downtime due to the need to quiet or suspend the virtual machine during the transfer process, which is unacceptable for many operations.
Innovation Solution
The method involves post-copy migrating a guest virtual machine by executing its instruction stream on the migration target host, requesting and prefetching not-present pages from the migration source host, and emulating continued execution to identify future page references, allowing parallel requests for both current and future pages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If live migration suspends the virtual machine to copy memory pages, then migration reliability is improved, but migration time increases causing unacceptable downtime
Solution Approach 1:
The system performs preliminary actions by starting to transfer memory pages before the virtual machine actually needs them. The migration system proactively copies pages from source to target host in advance, using prediction algorithms to identify which pages will be needed soon, thus reducing downtime when the VM resumes execution.
Solution Approach 2:
The system maintains continuity of useful action by allowing the virtual machine to continue executing on the target host while memory pages are being transferred in the background. The VM is not fully suspended but operates with a subset of pages, and the migration process continuously transfers remaining pages without completely stopping VM operations.
2Loss of time
If the virtual machine executes on the target host during migration, then migration time is reduced, but page faults increase causing execution stalls
Solution Approach 1:
The system implements feedback mechanisms where the target host monitors page fault occurrences and adjusts the migration strategy accordingly. When page faults are detected, the system responds by prioritizing the transfer of the specific pages that caused faults, using the fault information to guide subsequent page transfer decisions and improve execution stability.
Solution Approach 2:
The system introduces an intermediary migration management layer that handles page fault events. This intermediary component receives page fault notifications from the executing VM, translates them into targeted page transfer requests, and coordinates the retrieval of missing pages from the source host, thereby mediating between VM execution and memory management.
3Ease of manufacture
If memory pages are transferred on-demand when page faults occur, then migration simplicity is maintained, but migration performance decreases due to sequential transfers
Solution Approach 1:
The system performs preliminary actions by proactively transferring memory pages before they are actually needed by the virtual machine. Using prediction algorithms, the migration system identifies and transfers pages in advance, converting the reactive on-demand model into a proactive prefetching approach that improves performance while maintaining the basic on-demand transfer mechanism.
Solution Approach 2:
The system applies partial or excessive action by transferring more pages than immediately necessary. Instead of waiting for exact page fault events, the migration system transfers additional pages that are predicted to be needed soon, exceeding the minimum requirement and thereby reducing future page faults and improving overall migration performance.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
A method includes post copy migrating a guest virtual machine (200) from a migration source host (110, 110a) to a migration target host (110, 110b), executing the instruction stream of the guest virtual machine on the migration target host, and determining, by the migration target host, when the guest virtual machine encounters the page fault (240). When the guest virtual machine encounters the page fault, the method includes requesting the not-present page (230, 230a) from the migration source host for loading on the migration target host, and emulating, on an emulator (250), continued execution of the instruction stream of the guest virtual machine. The method also includes identifying, by the emulator, future page references (220) to future pages (230, 230b) from the emulated continued execution of the instruction stream, and requesting the future pages from the migration source host in parallel with the not-present page request.