Support for Fast and Reliable VMM Live Upgrades in Libvirt
summary
Libvirt + QEMU implement a local live-migration that passes open memory backend FDs instead of copying RAM, adding a QMP command fetch-backend-fd and reusing libvirt FD-passing to start the new QEMU process. Implementation adds a shadow remote hash table and symlinked monitor paths to handle duplicate UUIDs. Measured on 8–32 GB VMs with heavy dirtying, migration time is ~0.8–0.85 s and downtime stays <50 ms, invoked as virsh migrate --local.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:47Problems with VMM upgrades
- 3:01Local migration workflow
- 4:21Design challenges
- 6:29Bypassing memory copy
- 8:52Handling Qemu monitor and log files
- 11:24Changes to migration flow
- 15:16Demo
- 18:55Results - migration time
- 21:22Results - downtime
- 22:30Conclusion and Future Work
related talks
14mDeep Optimization of VMM Live Upgrade
15mKVM Live Upgrade with Properly Handling of Passthrough Devices
22mDevice Keepalive State for Local Live Migration and VMM Fast Restart
22mQEMU/KVM Upgrade Test (Stable Guest ABI and in Place Upgrade)
33mPreserving IOMMU States During Kexec Reboot
25mThe Challenges of Asynchronous Teardown of KVM Guests
29mQEMU & KVM Automated Performance Benchmarking @ SUSE
29mPostcopy Preemption
