Live Migration of Virtual Machines From the Bottom Up
Hypervisors get deployed in wildly different scenarios: datacenters are different from clouds, and both of these are different from the way we use virtualization on our workstations or laptops. This has resulted in the different projects using a layered approach, which makes everything modular, but prone to a lot of mismatches and errors. Effort has been ongoing on making these layers behave as a cohesive whole, while addressing the usecases and demands from the various deployment scenarios in a way that scales well. This talk will be focussed on the live migration aspect of virtualization, showcasing some of the usecases, and actual problems that have been solved while keeping all the usecases in mind.
Virtualization is now commonplace, and the focus has shifted from hypervisors to the various usecases of virtualization. OpenStack, oVirt, virt-manager all use the hypervisor and various virtualization capabilities to varying extents, and in different ways.
For oVirt and OpenStack, there are several layers involved in the making of the projects -- Linux, KVM, QEMU, libvirt, and project-specific layers on top like oVirt node and OpenStack Nova. Interactions between these layers is tricky and complicated. Work has been ongoing in bridging gaps between the communities from these projects, and forming a cohesive whole rather than being a bag of parts.
This talk is from the perspective of a QEMU developer, from the low levels of the complete system showcasing the challenges faced and new additions that benefit the higher layers.
There are also some surprising results, like older QEMU versions successfully migrate modern workloads whereas newer ones could not. Modern VMs, which have several vCPUs and lots of RAM make live migration very interesting. One solution may not fit all use-cases, so several ways of attacking various problems have to be thought of.
This talk will go through the various scenarios in which hypervisors get deployed, and the different expectations from higher layers of the stack. Some prickly problems that have shown up will be discussed, along with the solutions that have been engineered.