ceph/doc/dev/osd_internals/scrub.rst
David Zafman b3e1c58b0e osd: Replace active/pending scrub tracking for local/remote
This is similar to how recovery reservations are split between
local and remote.

It was the case that scrubs_pending was used for reservations at
the replicas as well as at the primary while requesting reservations
from the replicas.  There was no need for scrubs_pending to turn
into scrubs_active at the primary as nothing treated that value
as special.  scrubber.active = true when scrubbing is
actually going.

Now scurbber.local_reserved indicates scrubs_local incremented
Now scrubber.remote_reserved indicates scrubs_remote incremented

Fixes: https://tracker.ceph.com/issues/41669

Signed-off-by: David Zafman <dzafman@redhat.com>
2019-09-10 13:33:27 -07:00

42 lines
2.2 KiB
ReStructuredText

Scrub internals and diagnostics
===============================
Scrubbing Behavior Table
------------------------
+-------------------------------------------------+----------+-----------+---------------+----------------------+
| Flags | none | noscrub | nodeep_scrub | noscrub/nodeep_scrub |
+=================================================+==========+===========+===============+======================+
| Periodic tick | S | X | S | X |
+-------------------------------------------------+----------+-----------+---------------+----------------------+
| Periodic tick after osd_deep_scrub_interval | D | D | S | X |
+-------------------------------------------------+----------+-----------+---------------+----------------------+
| Initiated scrub | S | S | S | S |
+-------------------------------------------------+----------+-----------+---------------+----------------------+
| Initiated scrub after osd_deep_scrub_interval | D | D | S | S |
+-------------------------------------------------+----------+-----------+---------------+----------------------+
| Initiated deep scrub | D | D | D | D |
+-------------------------------------------------+----------+-----------+---------------+----------------------+
- X = Do nothing
- S = Do regular scrub
- D = Do deep scrub
State variables
---------------
- Periodic tick state is !must_scrub && !must_deep_scrub && !time_for_deep
- Periodic tick after osd_deep_scrub_interval state is !must_scrub && !must_deep_scrub && time_for_deep
- Initiated scrub state is must_scrub && !must_deep_scrub && !time_for_deep
- Initiated scrub after osd_deep_scrub_interval state is must scrub && !must_deep_scrub && time_for_deep
- Initiated deep scrub state is must_scrub && must_deep_scrub
Scrub Reservations
------------------
An OSD daemon command dumps total local and remote reservations::
ceph daemon osd.<id> dump_scrub_reservations