Skip to content
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

quincy: osd: Restore defaults of mClock built-in profiles upon modification #50097

Merged
merged 1 commit into from Feb 22, 2023

Conversation

sseshasa
Copy link
Contributor

backport tracker: https://tracker.ceph.com/issues/58708


backport of #48703
parent tracker: https://tracker.ceph.com/issues/57533

this backport was staged using ceph-backport.sh version 16.0.0.6848
find the latest version at https://github.com/ceph/ceph/blob/main/src/script/ceph-backport.sh

The QoS parameters (res, wgt, lim) of mClock profiles are not allowed to
be modified by users using commands like "config set" or via admin socket.
handle_conf_change() does not allow changes to any built-in mClock profile
at the mClock scheduler. But the config subsystem showed the change as
expected for the built-in mClock profile QoS parameters. This misled the
user into thinking that the change was made at the mClock server when
it was not the case.

The above issue is the result of the config "levels" used by the config
subsystem. The inital built-in QoS params are set at the CONF_DEFAULT
level. This allows the user to modify the built-in QoS params using
"config set" command which sets values at CONF_MON level which has higher
priority than CONF_DEFAULT level. The new value is persisted on the mon
store and therefore the config subsystem shows the change when "config
show" command is issued.

To prevent the above, this commit adds changes to restore the defaults set
for the built-in profiles by removing the new config changes from the MON
store. This results in the original defaults to come back into effect and
maintain a consistent view of the built-in profile across all levels.

To accomplish this, the mClock scheduler is provided with additional
information like the OSD id, shard id and a pointer to the MonClient
using which the Mon store command to remove the option is executed.

A standalone test is added to verify that built-in params cannot be
modified and the original profile params are retained.

Fixes: https://tracker.ceph.com/issues/57533
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
(cherry picked from commit b127806)
@sseshasa sseshasa requested a review from a team as a code owner February 13, 2023 14:58
@sseshasa sseshasa added this to the quincy milestone Feb 13, 2023
@sseshasa sseshasa added the core label Feb 13, 2023
@github-actions github-actions bot added the tests label Feb 13, 2023
@ljflores
Copy link
Contributor

Rados suite review: https://pulpito.ceph.com/?branch=wip-yuri5-testing-2023-02-17-1400-quincy

Failures, unrelated:
1. https://tracker.ceph.com/issues/44587
2. https://tracker.ceph.com/issues/58585
3. https://tracker.ceph.com/issues/58146
4. https://tracker.ceph.com/issues/58744

Details:
1. failed to write to cgroup.procs - Ceph - Orchestrator
2. rook: failed to pull kubelet image - Ceph - Orchestrator
3. test_cephadm.sh: Error: Error initializing source docker://quay.ceph.io/ceph-ci/ceph:master - Ceph - Orchestrator
4. qa: intermittent nfs test failures at nfs cluster creation - Ceph - CephFS

@ljflores
Copy link
Contributor

@sseshasa @neha-ojha QA looks good on this PR.

@yuriw yuriw merged commit 819d980 into ceph:quincy Feb 22, 2023
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants