CFT: periodic scrubbing of ZFS pools

Pawel Jakub Dawidek pjd at FreeBSD.org
Sun Jun 13 09:47:13 UTC 2010


On Thu, Jun 10, 2010 at 04:26:29PM +0200, Alexander Leidinger wrote:
> Hi,
> 
> as there seems to be interest in a periodic script to scrub zpools, I  
> modified my monthly-POC into a daily script with parameters for which  
> pools to scrub, how many days between scrubs (even different per pool,  
> if required), and several error checks (non-existing pool specified,  
> scrub in progress).
> 
> You can find it at
>    http://www.Leidinger.net/FreeBSD/current-patches/600.scrub-zfs
> 
> Please put it into /etc/periodic/daily and test it. Possible  
> periodic.conf variables are:
>  daily_scrub_zfs_enable="YES"
>  daily_scrub_zfs_pools="name1 name2 name3" # all if unset or empty
>  daily scrub_zfs_default_threshold="<number_of_days>" # default: 30
>  daily_scrub_zfs_<POOLNAME>_threshold="<number_of_days>"
> 
> If there is no specific threshold for a pool (= days between scrubs),  
> the default threshold is used.

Patch looks good.

The only minor issue I found is that in:

	_last_scrub=$(zpool history ${pool} | grep scrub | tail -1 |\
		cut -d ' ' -f 1)

grep is definitely too weak. If there is a pool or even dataset with
'scrub' word in it, it will be confused. Also when someone stops the
scrub it will be stored in history as 'zpool scrub -s <pool>'.
I proposed something like this:

	egrep '^[0-9\.\:\-]{19} zpool scrub '${pool}'$'

Currently there is no way to tell if 'zpool scrub -s' stopped a scrub or
if there was no scrub running. In newer versions of ZFS, it has a
property which tells when the last scrub finished. Once we update ZFS we
could take advantage of it.

All in all, with better grep I'd like to see it committed.

-- 
Pawel Jakub Dawidek                       http://www.wheelsystems.com
pjd at FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20100613/5ab3c923/attachment.pgp


More information about the freebsd-fs mailing list