Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ZPOOL-SCRUB(8)		FreeBSD	System Manager's Manual		ZPOOL-SCRUB(8)

     zpool-scrub -- begin or resume scrub of ZFS storage pools

     zpool scrub [-s|-p] [-w] poola|

     Begins a scrub or resumes a paused	scrub.	The scrub examines all data in
     the specified pools to verify that	it checksums correctly.	 For repli-
     cated (mirror, raidz, or draid) devices, ZFS automatically	repairs	any
     damage discovered during the scrub.  The zpool status command reports the
     progress of the scrub and summarizes the results of the scrub upon	com-

     Scrubbing and resilvering are very	similar	operations.  The difference is
     that resilvering only examines data that ZFS knows	to be out of date (for
     example, when attaching a new device to a mirror or replacing an existing
     device), whereas scrubbing	examines all data to discover silent errors
     due to hardware faults or disk failure.

     Because scrubbing and resilvering are I/O-intensive operations, ZFS only
     allows one	at a time.

     A scrub is	split into two parts: metadata scanning	and block scrubbing.
     The metadata scanning sorts blocks	into large sequential ranges which can
     then be read much more efficiently	from disk when issuing the scrub I/O.

     If	a scrub	is paused, the zpool scrub resumes it.	If a resilver is in
     progress, ZFS does	not allow a scrub to be	started	until the resilver

     Note that,	due to changes in pool data on a live system, it is possible
     for scrubs	to progress slightly beyond 100% completion.  During this pe-
     riod, no completion time estimate will be provided.

     -s	 Stop scrubbing.

     -p	 Pause scrubbing.  Scrub pause state and progress are periodically
	 synced	to disk.  If the system	is restarted or	pool is	exported dur-
	 ing a paused scrub, even after	import,	scrub will remain paused until
	 it is resumed.	 Once resumed the scrub	will pick up from the place
	 where it was last checkpointed	to disk.  To resume a paused scrub is-
	 sue zpool scrub again.

     -w	 Wait until scrub has completed	before returning.

     Example 1:	Status of pool with ongoing scrub:
		 # zpool status
		   scan: scrub in progress since Sun Jul 25 16:07:49 2021
			 403M scanned at 100M/s, 68.4M issued at 10.0M/s, 405M total
			 0B repaired, 16.91% done, 00:00:04 to go

		 -   Metadata which references 403M of file data has been
		     scanned at	100M/s,	and 68.4M of that file data has	been
		     scrubbed sequentially at 10.0M/s.

     On	machines using systemd,	scrub timers can be enabled on per-pool	basis.
     weekly and	monthly	timer units are	provided.

	     systemctl enable zfs-scrub-weekly@rpool.timer --now

	     systemctl enable zfs-scrub-monthly@otherpool.timer	--now

     systemd.timer(5), zpool-iostat(8),	zpool-resilver(8), zpool-status(8)

FreeBSD	13.0			 July 25, 2021			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help