Nova can't create instances for a different arch

Bug #1863728 reported by Belmiro Moreira
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Wishlist
Jonathan Race

Bug Description

This is more a wish feature than a bug but considering the use cases I'm surprised that it's not supported by nova.

*Support to create instances for a different architecture than the host architecture*

My use case: Running ARM instances in x86_64 compute nodes.

This is not possible because nova always assume the host architecture.
Also, there's different assumptions considering the different architectures.

Some examples:
- cpu_mode for AARC64 is passthrough (not good if trying to emulate).
- Nova always checks the cpu_model against the host so is not possible to define an ARM cpu.
- architecture image property is not used for defining instance domain
(...)

This is mostly for discussion and to see if the community is interested in supporting this use case.

Tags: compute
Revision history for this message
Sylvain Bauza (sylvain-bauza) wrote :

This sounds a very interesting usecase for discussion. Obviously more something we should discuss at a PTG instead of within a Launchpad bug ;)

FWIW, I'll close this bug as Invalid/Wishlist but I still think this usecase deserves a proper brainstorming session, hence a blueprint once we see some ideas bubbling up.

Changed in nova:
status: New → Invalid
importance: Undecided → Wishlist
tags: added: compute
Revision history for this message
Sylvain Bauza (sylvain-bauza) wrote :

I also added this idea into https://etherpad.opendev.org/p/nova-victoria-ptg

There is a ML thread from gibi for Nova attendees, let us know if you could attend those sessions.

Revision history for this message
Belmiro Moreira (moreira-belmiro-email-lists) wrote :

Thank you Sylvain. Yes, the PTG is the right place to discuss this.

Changed in nova:
status: Invalid → In Progress
Revision history for this message
Jonathan Race (chateaulav) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-specs (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/nova-specs/+/824044

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-specs (master)

Reviewed: https://review.opendev.org/c/openstack/nova-specs/+/824044
Committed: https://opendev.org/openstack/nova-specs/commit/69ddbf090ef8c3c26aeb471a5c60bbf64536aa44
Submitter: "Zuul (22348)"
Branch: master

commit 69ddbf090ef8c3c26aeb471a5c60bbf64536aa44
Author: Jonathan Race <email address hidden>
Date: Mon Jan 10 13:13:12 2022 -0500

    Adds Pick guest CPU architecture based on host arch in libvirt driver support

    Implement new image meta property that allows for the selection of the
    correct QEMU binary, cpu architecture, and machine type for a guest
    architecture that is different than the host architecture; An x86_64
    guest running on an AArch64 host, and vice versa.

    Expanded and added content for nova scheduler and os-traits to
    be leveraged by the prefilter, and added current support for proposed
    architectures.

    Implements: blueprint pick-guest-arch-based-on-host-arch-in-libvirt-driver
    Closes-Bug: 1863728
    Signed-off-by: Jonathan Race <email address hidden>
    Change-Id: Iccfa53e06b44be3f8a70de6082fe0990b2ed23e8

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/os-traits 2.7.0

This issue was fixed in the openstack/os-traits 2.7.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.opendev.org/c/openstack/nova/+/822053
Committed: https://opendev.org/openstack/nova/commit/31ff7ce7e21fc7c654ab7b4187774fec5be371ca
Submitter: "Zuul (22348)"
Branch: master

commit 31ff7ce7e21fc7c654ab7b4187774fec5be371ca
Author: Jonathan Race <email address hidden>
Date: Thu Dec 16 17:17:42 2021 -0500

    driver/secheduler/docs for Adds Pick guest CPU architecture based on
    host arch in libvirt driver support

    This is split 2 of 3 for the architecture emulation feature.

    This implements emulated multi-architecture support through qemu
    within OpenStack Nova.

    Additional config variable check to pull host architecture into
    hw_architecture field for emulation checks to be made.

    Adds a custom function that simply performs a check for
    hw_emulation_architecture field being set, allowing for core code to
    function as normal while enabling a simple check to enable emulated
    architectures to follow the same path as all multi-arch support
    already established for physical nodes but instead levaraging qemu
    which allows for the overall emulation.

    Added check for domain xml unit test to strip arch from the os tag,
    as it is not required uefi checks, and only leveraged for emulation
    checks.

    Added additional test cases test_driver validating emulation
    functionality with checking hw_emulation_architecture against the
    os_arch/hw_architecture field. Added required os-traits and settings
    for scheduler request_filter.

    Added RISCV64 to architecture enum for better support in driver.

    Implements: blueprint pick-guest-arch-based-on-host-arch-in-libvirt-driver
    Closes-Bug: 1863728
    Change-Id: Ia070a29186c6123cf51e1b17373c2dc69676ae7c
    Signed-off-by: Jonathan Race <email address hidden>

Changed in nova:
assignee: nobody → Jonathan Race (chateaulav)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 25.0.0.0rc1

This issue was fixed in the openstack/nova 25.0.0.0rc1 release candidate.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (master)

Change abandoned by "sean mooney <email address hidden>" on branch: master
Review: https://review.opendev.org/c/openstack/nova/+/772156
Reason: we have now added emulation support in yoga using a different series so ill abandon this alternitve approch

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.