-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Mount the disabled storage pools by default #11666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 4.20
Are you sure you want to change the base?
Mount the disabled storage pools by default #11666
Conversation
@blueorangutan package |
@sureshanaparti a [SL] 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. |
@blueorangutan package |
@sureshanaparti a [SL] 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the default value of the mount.disabled.storage.pool
configuration setting from false to true, restoring the previous default behavior where disabled storage pools are mounted by default. This addresses access issues with existing volumes on disabled pools that were not being re-mounted after host reconnection.
- Changed the default value from "false" to Boolean.TRUE.toString() for the MountDisabledStoragePool configuration key
- Ensures disabled storage pools are mounted by default for new installations while preserving existing installation settings
- Restores behavior that was present until version 4.17.0.0
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
Show resolved
Hide resolved
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.20 #11666 +/- ##
============================================
+ Coverage 16.17% 17.39% +1.22%
- Complexity 13297 15284 +1987
============================================
Files 5656 5889 +233
Lines 498151 526184 +28033
Branches 60441 64242 +3801
============================================
+ Hits 80588 91543 +10955
- Misses 408591 424296 +15705
- Partials 8972 10345 +1373
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 15076 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
@sureshanaparti
any doc needed ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clgtm
will check/update |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sureshanaparti this LGTM. one request out of the scope of this issue. I see this setting is of cluster scope and there is a usage of this without clusterId, can you please add that here too.
did you mean |
@sureshanaparti |
no @weizhouapache clusterId only, as the scope is of cluster |
@harikrishna-patnala @weizhouapache for zone-wide pools, we cannot consider clustered scope value (as each cluster in the zone can have different setting), so I think, that's the reason it's picked from global scope there. in case, to change to multi-scope config, we can address later in a separate pr. |
thanks @sureshanaparti @harikrishna-patnala @sureshanaparti |
@blueorangutan test |
@weizhouapache a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
checked @weizhouapache, updated the description |
checked in a new env
|
verified the global setting when host is rebooted
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks @sureshanaparti
[SF] Trillian test result (tid-14423)
|
Description
This PR updates the default value of the setting 'mount.disabled.storage.pool' to true, and mounts the disabled pools by default (for new installations only, old installation should explicitly update the setting to true if required). It keeps the disabled pools mounted (as these are restricted for further allocation only).
Issue
The disabled pools that are unmounted (and entries removed from storage_pool_host_ref table) during host disconnection on management server / agent stop, are not re-mounted (and added back to storage_pool_host_ref table) during host connection on management server / agent start, which is resulting in access issues for the existing volumes on them and impacting the VM/Volume operations.
Background
Further allocation of the pools is not allowed when the pools are disabled. The disabled pools are expected to be mounted by design (and host/pool entries to be added for the disabled pools in storage_pool_host_ref table) for accessing the existing volumes. The setting 'mount.disabled.storage.pool' (introduced in 4.17.0.0) is false by default to keep the same behavior, and also doesn't allow mount of disabled pools. There was a discussion about mounting the disabled pools by default (and only unmount during pool maintenance) in the PR #6164 (where the setting 'mount.disabled.storage.pool' is introduced), but it was not addressed.
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
Disable the pool and restart management server / agent, and notice that the pool is mounted (and host/pool entry exists in storage_pool_host_ref table)
How did you try to break this feature and the system with this change?