Bug 1867127

Summary: FFWD2 13->16 livemigration fails on newer CPUs due to arch-facilities vs arch-capabilities
Product: Red Hat OpenStack Reporter: Lukas Bezdicka <lbezdick>
Component: openstack-tripleo-heat-templatesAssignee: Lukas Bezdicka <lbezdick>
Status: CLOSED DUPLICATE QA Contact: David Rosenfeld <drosenfe>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 16.1 (Train)CC: jpretori, kchamart, mburns, smooney
Target Milestone: zstreamKeywords: Triaged, UpgradeBlocker
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-08-07 12:49:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lukas Bezdicka 2020-08-07 12:12:55 UTC
Description of problem:
During the final step of FFWD2 the live migration fails to migrate instances from OSP13 EL7.8 hybrid state to OSP16.1 compute with the error:

ERROR nova.virt.libvirt.driver [...] CPU doesn't have compatibility.
internal error: Unknown CPU feature arch-facilities

This is due to RHEL7 naming the feature 'arch-facilities' vs RHEL8 naming the feature 'arch-capabilities'.

A suggested workaround is to remove the 'arch-facilities' feature from /usr/share/libvirt/cpu_map.xml in the libvirt container on the RHEL7 source when switching it into hybrid mode.

While a workaround through documentation is possible, the process to do this is better handled through automation to prevent mistakes.

Comment 1 Kashyap Chamarthy 2020-08-07 12:42:39 UTC
To be more precise, the workaround:

1. On the El-7 host, double-check none of the EL7 instance XML contain 
  'arch-facilities' CPU feature.  Normally, the guests do _not_ have it.

2. Run `virsh capabilities | grep arch-facilities` — it will be present.

3. Comment out 'arch-facilities' in /usr/share/libvirt/cpu_share.xml

4. Restart 'libvirtd' and 'nova-compute' service (both are needed).

5. Then run `virsh capabilities`, again: it will now be absent
   (expected).
   
6. Now migrate the guest from EL7 to EL8: it must succeed.


(Thanks: Jiri Denemark from libvirt team.)

Comment 2 Jesse Pretorius 2020-08-07 12:49:10 UTC

*** This bug has been marked as a duplicate of bug 1867128 ***