Skip to content

Conversation

@slavkap
Copy link
Contributor

@slavkap slavkap commented Apr 12, 2022

Description

This PR fixes #6252
When using advanced virtualization, the IO Driver is not supported. The admins will decide if they want to enable/disable this configuration from agent.properties file. It's enabled by default

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true
@nvazquez
Copy link
Contributor

@blueorangutan package

@blueorangutan
Copy link

@nvazquez a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@nvazquez nvazquez added this to the 4.17.0.0 milestone Apr 12, 2022
@blueorangutan
Copy link

Packaging result: ✔️ el7 ✔️ el8 ✔️ debian ✔️ suse15. SL-JID 3146

@nvazquez
Copy link
Contributor

@blueorangutan test

Copy link
Member

@weizhouapache weizhouapache left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

code lgtm

Copy link
Member

@GabrielBrascher GabrielBrascher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @slavkap!
Code LGTM.

Copy link
Contributor

@Pearl1594 Pearl1594 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code LGTM

@Pearl1594
Copy link
Contributor

@blueorangutan test

@blueorangutan
Copy link

@Pearl1594 a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Copy link
Contributor

@wido wido left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good!

Copy link
Contributor

@nvazquez nvazquez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - manually tested OK

@blueorangutan
Copy link

Trillian test result (tid-3886)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31565 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6253-t3886-kvm-centos7.zip
Smoke tests completed. 92 look OK, 0 have errors
Only failed tests results shown below:

Test Result Time (s) Test File

rohityadavcloud pushed a commit to shapeblue/cloudstack that referenced this pull request May 18, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

(cherry picked from commit 42a92dc)
Signed-off-by: Rohit Yadav <[email protected]>
rohityadavcloud pushed a commit to shapeblue/cloudstack that referenced this pull request May 18, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

(cherry picked from commit 42a92dc)
Signed-off-by: Rohit Yadav <[email protected]>
rohityadavcloud pushed a commit to shapeblue/cloudstack that referenced this pull request May 18, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

(cherry picked from commit 42a92dc)
Signed-off-by: Rohit Yadav <[email protected]>
rohityadavcloud pushed a commit to shapeblue/cloudstack that referenced this pull request May 18, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

(cherry picked from commit 42a92dc)
Signed-off-by: Rohit Yadav <[email protected]>
rohityadavcloud pushed a commit to shapeblue/cloudstack that referenced this pull request May 18, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

(cherry picked from commit 42a92dc)
Signed-off-by: Rohit Yadav <[email protected]>
rohityadavcloud pushed a commit to shapeblue/cloudstack that referenced this pull request May 18, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

(cherry picked from commit 42a92dc)
Signed-off-by: Rohit Yadav <[email protected]>
@NuxRo
Copy link
Contributor

NuxRo commented May 18, 2022

@slavkap Nice feature, but I want to voice my concern over the default value of "true".

This will out of the box break Cloudstack upgrades as well as new installations on many distributions which do not ship a io_uring capable qemu-kvm.
To my knowledge this affects the following platforms: EL8, EL9, current Debian Stable & Opensuse Leap.

@slavkap
Copy link
Contributor Author

slavkap commented May 18, 2022

Thanks, @NuxRo, for your comment! You're right, but the reason to set the default value to true was for the users already using this functionality. And I didn't want to break something for them

@nvazquez
Copy link
Contributor

nvazquez commented May 18, 2022

@NuxRo what would you advise as a solution? If the default value is false, administrators may be aware to update all their KVM hosts if they want to enable back IO uring, right? (in case it was supported before the upgrade)

@NuxRo
Copy link
Contributor

NuxRo commented May 18, 2022

@slavkap I get it, it's a sensitive lose-lose situation.
@nvazquez I looked at whether we can determine io_uring in kvm, but build parameters don't seem advertised anywhere, we could have enabled/disabled uring dynamically based on this.

The only option we have to somewhat salvage this without hurting anyone is to default to false in the agent.properties so at least new installations work out of the box. Upgrades will still break unless the admins are aware of this change and amend their config file.

On the other hand io_uring is very new and I doubt there are many users. The EL8 and EL9 user bases are probably much bigger than them.
So.. for who do we break the experience? Is it worth going to the mailing list and have a vote or somethin?

@weizhouapache
Copy link
Member

@NuxRo
can we enable io_uring for Ubuntu (and suse 15 if io_uring is supported as well) and disable it for other OSes (EL, CentOS, etc) ?

@GabrielBrascher @wido
are you using io_uring in your platforms ? what's the OS and libvirt/qemu version ?

@rohityadavcloud
Copy link
Member

rohityadavcloud commented May 19, 2022

2cents - not all supported distros have io_uring available, having the feature enabled by default breaks the general ACS+kvm deployment. If this is a relatively new feature this should ship as (a) disabled by default and to be enabled on per-host basis via agent.properties by the admin, or (b) be enabled by default based on capabilities discovered by the host/agent and still enabled/disabled override by the agent.properties. I'm not sure if (b) is possible but that would be a good compromise to support both new, existing/upgraded env which may be using io_uring.

@weizhouapache
Copy link
Member

@rohityadavcloud good.
I am +1 on (b)
If (b) is not feasible, (a) is ok to me.

fyi, it looks io_uring will be supported since RHEL 9.1
https://bugzilla.redhat.com/show_bug.cgi?id=1947230

@rohityadavcloud
Copy link
Member

Makes sense @weizhouapache, if (b) is not feasible then we should not enable io_uring by default and let it be overriden via agent.properties and document in release notes for 4.17 that on upgrade people using it need to update it on per-host basis.
/cc @GabrielBrascher @slavkap @wido

weizhouapache pushed a commit to weizhouapache/cloudstack that referenced this pull request May 24, 2022
…6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true
Pearl1594 pushed a commit to shapeblue/cloudstack that referenced this pull request Sep 6, 2022
* Extract the IO_URING configuration into the agent.properties (apache#6253)

When using advanced virtualization the IO Driver is not supported. The
admin will decide if want to enable/disable this configuration from
agent.properties file. The default value is true

* kvm: truncate vnc password to 8 chars (apache#6244)

This PR truncates the vnc password of kvm vms to 8 chars to support latest versions of libvirt.

* merge fix

Signed-off-by: Abhishek Kumar <[email protected]>

* [KVM] Enable IOURING only when it is available on the host (apache#6399)

* [KVM] Disable IOURING by default on agents

* Refactor

* Remove agent property for iouring

* Restore property

* Refactor suse check and enable on ubuntu by default

* Refactor irrespective of guest OS

* Improvement

* Logs and new path

* Refactor condition to enable iouring

* Improve condition

* Refactor property check

* Improvement

* Doc comment

* Extend comment

* Move method

* Add log

* [KVM] Fix VM migration error due to VNC password on libvirt limiting versions (apache#6404)

* [KVM] Fix VM migration error due to VNC password on libvirt limiting versions

* Fix passwd value

* Simplify implementation

Co-authored-by: slavkap <[email protected]>
Co-authored-by: Wei Zhou <[email protected]>
Co-authored-by: Nicolas Vazquez <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

9 participants