apache / cloudstack

Apache CloudStack is an opensource Infrastructure as a Service (IaaS) cloud computing platform
https://cloudstack.apache.org/
Apache License 2.0
1.99k stars 1.09k forks source link

No support for xcp-ng 8.2.1 - many hypervisor capabilities not available #6349

Closed AlexanderKgr closed 2 years ago

AlexanderKgr commented 2 years ago
ISSUE TYPE
COMPONENT NAME
Support for xcp-ng 8.2.1
CLOUDSTACK VERSION
4.16.1.-
CONFIGURATION

Advanced Networking

OS / ENVIRONMENT

UbuntuServer20

SUMMARY

Since last update on xcp-ng via yum update (8.2.1), Cloudstack management platform does not recognize hypervisor capabilities Live storage migration is no more available due that capabilities of xcp-ng could not be retrieved anymore

STEPS TO REPRODUCE
Try to live migrate storage and you have an error that it is not supported from the hypervisor
EXPECTED RESULTS
https://xcp-ng.org/forum/topic/5825/xcp-ng-8-2-no-more-recognized-with-cloudstack-since-last-update
ACTUAL RESULTS
https://xcp-ng.org/forum/topic/5825/xcp-ng-8-2-no-more-recognized-with-cloudstack-since-last-update
BenoitLair commented 2 years ago

Hi @AlexanderKgr There is too a topic in the ACS Mailing list here : Acs ML

Xcp-ng 8.2 which is fully supported by Cloudstack is now broken after update His hypervisor capabilities are available trough hypervisor_capabilities

There are description of Xenserver capabilities with a version 8.2.0

However after updating trough official process of xcp-ng, a yum update caused to change the minor version of the hypervisor

Now it has changed from 8.2.0 to 8.2.1

When Cloudstack management server is reconnecting to Hypervisors, the host table, field hypervisor_version is updated with value 8.2.1 This is causing this error message on Cloudstack management server :

2022-05-02 15:52:33,157 ERROR [c.c.s.ManagementServerImpl] (qtp1850777594-186961:ctx-2ee90dcf ctx-d6c062ae) (logid:1b094155) Capabilities for host Host {"id": "2", "name": "xcp-cluster1-node2", "uuid": "ae51578b-928c-4d25-9164-3bd7ca0afed4", "type"="Routing"} couldn't be retrieved. 2022-05-02 15:52:33,157 INFO [c.c.s.ManagementServerImpl] (qtp1850777594-186961:ctx-2ee90dcf ctx-d6c062ae) (logid:1b094155) Volume Vol[320|vm=191|DATADISK] is attached to a running vm and the hypervisor doesn't support storage motion.

The Xen live storage migration is no more available

I used this fix to have fully features working with xcp-ng 8.2.1 and ACS 4.16.0

#add hypervisor xcp 8.2.1 to acs 4.16 INSERT IGNORE INTOcloud.hypervisor_capabilities`(uuid, hypervisor_type, hypervisor_version, max_guests_limit, max_data_volumes_limit, max_hosts_per_cluster, storage_motion_supported) values (UUID(), 'XenServer', '8.2.1', 1000, 253, 64, 1);

+-- Copy XenServer 8.1.0 hypervisor guest OS mappings to XenServer 8.2.0 +INSERT IGNORE INTO cloud.guest_os_hypervisor (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) SELECT UUID(),'Xenserver', '8.2.1', guest_os_name, guest_os_id, utc_timestamp(), 0 FROM cloud.guest_os_hypervisor WHERE hypervisor_type='Xenserver' AND hypervisor_version='8.2.0';`

I used xcp-ng 8.2.0 capabilities in order to create xcp-ng 8.2.1 entries

BenoitLair commented 2 years ago

There is also some bugs with "Debian 11" vms

Vms running "Debian 11" on 8.2.0 were finding their mapping with ACS trough "Other media" Now with 8.2.1, features like snapshots are no more working due to error of guest os mapping

I used this fix in order to get it working with "Debian 11"

INSERT INTO cloud.guest_os_hypervisor (hypervisor_type, guest_os_name, guest_os_id, hypervisor_version, uuid, created, removed, is_user_defined) VALUES ('Xenserver', 'Debian Bullseye 11', 337, '8.2.1', uuid(), now(), NULL, 0); INSERT INTO guest_os_hypervisor (id, hypervisor_type, guest_os_name, guest_os_id, hypervisor_version, uuid, created, removed, is_user_defined) VALUES (8231, 'Xenserver', 'Debian Bullseye 11', 338, '8.2.1', uuid(), now(), NULL, 0);

It could be done too for adding support for "WIndows server 2022", "AlmaLinux 8", "Gooroom Platform 2.0" and "Rocky Linux 8"

BenoitLair commented 2 years ago

I tested a set of features after modyfing so the Cloudstack databases entries :

test export vm OK test import vm OK (adding template via URL)

test migration XenMotion live OK test migration XenStorageMotion live OK (was bugged)

test snapshot OK test snapshot vm OK (was bugging before patching guest os mapping)

test revert snapshot OK test revert snapshot vm OK (was bugged)

This has been tested on Centos, Debian 10 and Debian 11 vms

BenoitLair commented 2 years ago

@AlexanderKgr from my point of vue, this is not an improvement but a critical bug.

Xcp-NG have not changed of version Xcp-NG 8.2.1 is in life cycle of Xcp-NG 8.2 LTS as @stormi from @vates said

This is a maintenance release, no new features So we shall talk about 8.2 and not 8.2.1

AlexanderKgr commented 2 years ago

@nvazquez anyone to check this?

nvazquez commented 2 years ago

Thanks @AlexanderKgr @BenoitLair for testing. We can include the DB records as you have done but document that the version 8.2.1 is not fully tested, and plan to add full support on next release

stormi commented 2 years ago

I'm the release manager for XCP-ng. 8.2.1 is really 8.2. If 8.2 is supported, then 8.2.1 and any 8.2.x is de facto. They are (will be) just maintenance releases.

stormi commented 2 years ago

Anyone using XCP-ng 8.2 and who installs security and bugfix updates will end-up with version 8.2.1, so I really advise to consider they're the same in your context.

AlexanderKgr commented 2 years ago

I'm the release manager for XCP-ng. 8.2.1 is really 8.2. If 8.2 is supported, then 8.2.1 and any 8.2.x is de facto. They are (will be) just maintenance releases.

@nvazquez

AlexanderKgr commented 2 years ago

Anyone using XCP-ng 8.2 and who installs security and bugfix updates will end-up with version 8.2.1, so I really advise to consider they're the same in your context.

@nvazquez

BenoitLair commented 2 years ago

@nvazquez as @stormi said (Also confirmed by @olivierlambert from @vates) , Xcp-ng 8.2.1 has no new features It has any changes with Xapi nor interactions with hypervisor features trough the Cloud agent

nvazquez commented 2 years ago

Thanks @stormi - that makes sense. I have added the SQL inserts tested by @BenoitLair on PR #6362 - full support can be added later for missing guest OS

stormi commented 2 years ago

Thanks. As XCP-ng 8.2 is a LTS, it will probably receive more minor numbered updates like 8.2.1 in the future. Main component versions don't change (linux kernel, Xen, XAPI...).

stormi commented 2 years ago

Oh, by the way: I don't know how you test for the version currently. If you source /etc/xensource-inventory, then PRODUCT_VERSION_TEXT_SHORT will remains with value 8.2 for all of XCP-ng 8.2's lifetime.

nvazquez commented 2 years ago

@stormi the version is read from field 'product_version' (or 'platform_version' if the first is empty) of the 'softwareVersion' XCP host field while connecting it to CloudStack. Reading the version from xensource-inventory could be a good refactor for us, avoiding the DB records addition each time a 8.2.x version is released

stormi commented 2 years ago

So, I had some internal discussion and it turns out my promise that component versions won't change is not 100% accurate. Although we have a policy of not updating, there may be major events that force us to upgrade major components (for example security issues).

So maybe it's safer to keep adding records for each new 8.2.x version (there aren't such versions so often).

AlexanderKgr commented 2 years ago

sorry checked again and there is no problem