Limit scrub abort/pause/resume commands to mds.0. mds.0 sends messages
to other mds, asks them to abort/pause/resume scrubs.
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Scrubs are always initialized from mds.0. So mds.0 can ensure that scrub
tags are unique globally. mds.0 periodically gathers scrubs running in
itself and in other mds. A scrub is finished only if it's not running in
any mds.
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
A CInode/CDir is scrubbed no longer means corresponding subtree is fully
scrubbed. The on_finish in {CInode,CDir}::scrub_info_t become useless.
This patch also removes code that flushs journal if scrub has repaired
anything. Later patch will add the code back at different place.
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
If a non-auth object is encountered during scrubbing, forward scrub
to the object's auth mds.
Fixes: https://tracker.ceph.com/issues/12274
Signed-off-by: Simon Gao <simon29rock@gmail.com>
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
After using breadth-first search, scrubing a dir inode does not need
to wait until all of its descendant difrags/inodes are scrubbed. This
simplfies scrub code a lot. The downside is that a scrubbed dir inode
no longer implies corresponding subtree has been fully scrubbed. It
makes later scrub (without force option) less efficient.
Signed-off-by: Simon Gao <simon29rock@gmail.com>
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Making CDir as entity of scrub is preparetion for scrubbing across
multiple mds. When subtree bound is encountered, scrub should be
forwarded to subtree's auth mds. The auth mds adds CDir to scrub stack.
Signed-off-by: Simon Gao <simon29rock@gmail.com>
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
* refs/pull/34842/head:
qa/tasks/vstart_runner.py: disable the ns unsharing if using localhost
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
* refs/pull/37746/head:
client: add a dedicated thread for the Client tick
client: try to renew caps and flush old cap releases
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/37982/head:
qa/cephfs: add code for when config is None in __init__
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
mgr/dashboard: fix cephadm e2e test failure on deleting OSDs
Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Michael Fritch <mfritch@suse.com>
log,mon: use libfmt to format string and use range-based loop
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
cephadm: verify root privileges before log dir create
Reviewed-by: Dimitri Savineau <dsavinea@redhat.com>
Reviewed-by: Juan Miguel Olmo <jolmomar@redhat.com>
Null yield is fine at top levels where we know what kind of thread
we're running into, but do not belong in general use functions.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>