Ronen Friedman [Thu, 20 Nov 2025 13:54:20 +0000 (07:54 -0600)]
osd/scrub: do not attempt to read past the end of an object
When performing deep scrubs, the scrubber reads object data
in strides. Existing code uses a short read to detect the end
of the object (and if the object size is a multiple of the
stride - an extra read is performed, which returns 0 bytes).
The proposed change is to avoid such extra read attempts,
by using our knowledge of the object size.
Also - some minor code cleanups in the relevant function.
Ronen Friedman [Thu, 13 Nov 2025 13:12:03 +0000 (07:12 -0600)]
qa/standalone: osd-scrub-dump.sh: test large object scrubs
following a change to the default stride size for deep scrubs,
adding a standalone test to verify that scrubs of large objects
work correctly (and to perform some minimal performance
measurements).
Ronen Friedman [Thu, 13 Nov 2025 13:01:12 +0000 (07:01 -0600)]
osd/scrub: increasing the default data-read stride
When performing deep scrubs, the scrubber reads object
data in strides, to avoid monopolizing the OSD's I/O capacity.
The default stride was set to 0.5MB, which is too low for
modern storage devices. This commit increases the default
stride to 4MB.