Skip to content

Support for CPU templates/CPU types/CPU profiles #7068

@pojntfx

Description

@pojntfx

Right now, Cloud Hypervisor lacks the ability to change how the vCPU is represented to the guest. There is no way to make a cluster of heterogenous hosts look homogenous to the guest, which is a big problem for live migration; if the CPU model of the destination isn't exactly the same as the source, then the migration fails since the MSRs can't be applied.

Firecracker and QEMU solve this problem by introducing CPU templates in the case of Firecracker or CPU types in the case of QEMU. In the case of Firecracker, using a CPU template allows restricting the vCPU to e.g. Intel Skylake by selecting the C3 CPU type, and then the VM can be migrated to any CPU that's newer (or includes the features of) Intel Skylake. Same in the case of QEMU, you can select the CPU type Skylake-Server-v1, which means that the VM can then be live migrated to any host that has a CPU newer than Intel Skylake.

Adding a CPU templating systems/CPU types would significantly improve Cloud Hypervisor's existing live migration capabilities, which right now are quite limited in practical use cases since they only really work if the source and destination host are exactly the same. From Loophole Labs' perspective, we'd love to add Cloud Hypervisor to our Drafter open source project where we migrate VMs between different cloud providers without the need of bare-metal instances thanks to the work-in-progress PVM patches, but without this feature it's impossible to migrate between even slightly different instance types.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions