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

Assignees

No one assigned

    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