Add the missing tracked mclock config options related to the background
best effort clients of mclock scheduler within handle_conf_change().
The method mClockScheduler::set_global_recovery_options() doesn't serve
the purpose fully as in addition to overriding the "osd_max_backfills"
config option, the local and remote Async reserver objects have to be
updated accordingly which is not possible currently from within the
mClockScheduler. Therefore, rather than complicate the mClockScheduler
code to achieve this, a better option is to override the recovery options
during OSD init (and handle config changes) which the previous commit
introduced. Therefore, this method is removed.
Fixes: https://tracker.ceph.com/issues/50501
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
Make the osd_*_sleep options modifiable during runtime and add them
to the set of tracked conf keys. This is to ensure that the sleep
options can be disabled/overridden during OSD bring-up if mclock
scheduler is employed.
Introduce OSD::maybe_override_options_for_qos():
This method does the following if the mclock scheduler is enabled:
- overrides the "recovery_max_active" to a high limit of 1000,
- overrides "osd_max_backfills" option to a high limit of 1000 and
sets the corresponding Async local and remote reserver objects also
to the same value (1000),
- disables osd_*_sleep options so that appropriate QoS may be
provided with the mclock scheduler.
The above method is called in the following scenarios:
- After all the op shards are brought up during OSD initialization.
- In OSD::handle_conf_change() to override any settings related to
QoS that the user intended to change.
Modify the mclock config reference to accurately reflect what options
can be changed when using mclock's "custom" profile and clean up
some whitespaces.
Fixes: https://tracker.ceph.com/issues/50501
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
since liburing's configure checks the CC and CXX env variables, let's
pass them when calling "configure". otherwise "make" still uses gcc and
g++ by default as they are specified in the "configure" script. this
also matches with the way how debian/rules calls "make".
Signed-off-by: Kefu Chai <kchai@redhat.com>
Scene:
The mgr daemon is active. After execing restart command, it may be save "scheduled_daemon_actions": {"mgr.xxx": "restart"}}" to config-key.
So the mgr daemon will restart before call rm_scheduled_daemon_action which case mgr daemon will load restart forever.
Fix mgr infinite restart issue refering to the same solution as 'ceph orch daemon redeploy'.
Signed-off-by: jianglong01 <jianglong01@qianxin.com>
Fixes: https://tracker.ceph.com/issues/50319
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Support from Dashboard UI to create Ingress service type.
rgw: return OK on consecutive complete-multipart reqs
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
before this change, `pmem_VERSION_STRING` is not set if it is not able
to fulfill the specified version requirement. the intention was to check
if the version is able to satisfy the requirement. but actually, passing
an empty `pmem_VERSION_STRING` to `find_package_handle_standard_args()`
as the option of `VERSION_VAR` does not fail this check. on the
contrary, it prints
-- Found pmem: pmem_pmemobj_INCLUDE_DIR;pmem_pmem_INCLUDE_DIR (Required
is at least version "1.17")
if we requires pmem 1.17, while the found version is, for instance,
1.10.
if the required version is 1.7, and the found version is 1.10, the
output from cmake is:
-- Found pmem: pmem_pmemobj_INCLUDE_DIR;pmem_pmem_INCLUDE_DIR (found
suitable version "1.10", minimum required is "1.7")
in this change, the version spec is not specified when calling
`pkg_check_modules()`. so, `PKG_${component}_VERSION` is always set.
and we can always delegate the version checking to
`find_package_handle_standard_args()`. please note, we use the lower
version returned by pkg-config if multiple components are required and
both pkg-config settings return their versions.
Signed-off-by: Kefu Chai <kchai@redhat.com>
we need to use libpmem 1.10 in #40493.
without enabling the module stream offering libpmem 1.9.2, we can only
have access to libpmem 1.6.1. and fedora 33 only has libpmem 1.9
packaged. the same applies to openSUSE Tumbleweed and openSUSE Leap. so
let's stop using libpmem packaged by distro by default, until these
distros include libpmem 1.10.
Signed-off-by: Kefu Chai <kchai@redhat.com>
build(deps): bump elliptic from 6.5.3 to 6.5.4 in /src/pybind/mgr/dashboard/frontend
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
The status should return a valid list, prior to this path the code was
only appending json blob next to each other resulting in an invalid
json. Now the blobs will be enclosed properly so a valid list is
returned.
Signed-off-by: Sébastien Han <seb@redhat.com>
When listing for available snapshot schedules, we should not an error in case
there is none. We should just return 0 with an empty dict.
Fixes: https://tracker.ceph.com/issues/49837
Signed-off-by: Sébastien Han <seb@redhat.com>
`_hosts_with_daemon_inventory` was renamed to `_schedulable_hosts`
in f260c48f72 which was merged before
eebb842d04 got merged, hence the
regression.
this change just updates the test with the new method name.
Signed-off-by: Kefu Chai <kchai@redhat.com>
let OSDMonitor::_get_pending_crush() return by return value not by a
input parameter, C++17 ensures that the copy ellision in this case, so
no overhead is introduced because of copying or even moving.
and this change improves the readability.
Signed-off-by: Kefu Chai <kchai@redhat.com>