From owner-freebsd-fs@FreeBSD.ORG Thu Jun 10 09:53:32 2010 Return-Path: Delivered-To: fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF6E01065677 for ; Thu, 10 Jun 2010 09:53:32 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from mail.ebusiness-leidinger.de (mail.ebusiness-leidinger.de [217.11.53.44]) by mx1.freebsd.org (Postfix) with ESMTP id 8756A8FC1C for ; Thu, 10 Jun 2010 09:53:32 +0000 (UTC) Received: from outgoing.leidinger.net (pD954FE15.dip.t-dialin.net [217.84.254.21]) by mail.ebusiness-leidinger.de (Postfix) with ESMTPSA id 2B0D284400A; Thu, 10 Jun 2010 11:53:27 +0200 (CEST) Received: from webmail.leidinger.net (webmail.leidinger.net [192.168.1.102]) by outgoing.leidinger.net (Postfix) with ESMTP id 4ED045110; Thu, 10 Jun 2010 11:53:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=Leidinger.net; s=outgoing-alex; t=1276163604; bh=NtdeI0CCaxYciry4aAL6cPV4BSDW65K80po0wn2HWok=; h=Message-ID:Date:From:To:Cc:Subject:References:In-Reply-To: MIME-Version:Content-Type:Content-Transfer-Encoding; b=XnN6P8OFET/smuwvY9i/+sYNptWyC2gll0vdxVWubLVHDvMFM6lAARw8Ekpx3ReDd SinQCyNxtHknjL4+NRHz5fysrqkd+OIZwE87ZDCbVQhMQL689uPFpOEwSwG1h8OAPi +wCYZVbT677YU/LbGJx2OgAqSN/3/ZFMYacbDjEgXblSO7y/TogCv2qGkFBpzLjUGx xpYioa0vk26yZhzCwFOP8JK4k7RkgJynmo4Vnui4c0rW9t8BpFplgBuX2kXGlzLhvP SbNxKFwit3p9AMg//rbdr8dKDnxe9Jwk8mVd9Q1lGH2vnnZiFKHlq8+vGS0dqZwK25 HenngjEHBMd0A== Received: (from www@localhost) by webmail.leidinger.net (8.14.4/8.13.8/Submit) id o5A9rO9F097574; Thu, 10 Jun 2010 11:53:24 +0200 (CEST) (envelope-from Alexander@Leidinger.net) Received: from pslux.ec.europa.eu (pslux.ec.europa.eu [158.169.9.14]) by webmail.leidinger.net (Horde Framework) with HTTP; Thu, 10 Jun 2010 11:53:24 +0200 Message-ID: <20100610115324.10161biomkjndvy8@webmail.leidinger.net> Date: Thu, 10 Jun 2010 11:53:24 +0200 From: Alexander Leidinger To: jhell References: <20100609162627.11355zjzwnf7nj8k@webmail.leidinger.net> <4C0FAE2A.7050103@dataix.net> <4C0FB1DE.9080508@dataix.net> In-Reply-To: <4C0FB1DE.9080508@dataix.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.4) X-EBL-MailScanner-Information: Please contact the ISP for more information X-EBL-MailScanner-ID: 2B0D284400A.A5DAF X-EBL-MailScanner: Found to be clean X-EBL-MailScanner-SpamCheck: not spam, spamhaus-ZEN, SpamAssassin (not cached, score=-1.023, required 6, autolearn=disabled, ALL_TRUSTED -1.00, DKIM_SIGNED 0.10, DKIM_VALID -0.10, DKIM_VALID_AU -0.10, TW_ZF 0.08) X-EBL-MailScanner-From: alexander@leidinger.net X-EBL-MailScanner-Watermark: 1276768410.15697@8r0q2ZXhaXHjW+sOx5mwbQ X-EBL-Spam-Status: No Cc: fs@freebsd.org Subject: Re: Do we want a periodic script for a zfs scrub? X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2010 09:53:33 -0000 Quoting jhell (from Wed, 09 Jun 2010 11:23:10 -0400): > On 06/09/2010 11:07, jhell wrote: >> On 06/09/2010 10:26, Alexander Leidinger wrote: >>> Hi, >>> >>> I noticed that we do not have an automatism to scrub a ZFS pool >>> periodically. Is there interest in something like this, or shall I keep >>> it local? >>> >>> Here's the main part of the monthly periodic script I quickly created: >>> ---snip--- >>> case "$monthly_scrub_zfs_enable" in >>> [Yy][Ee][Ss]) >>> echo >>> echo 'Scrubbing of zfs pools:' >>> >>> if [ -z "${monthly_scrub_zfs_pools}" ]; then >>> monthly_scrub_zfs_pools="$(zpool list -H -o name)" >>> fi >>> >>> for pool in ${monthly_scrub_zfs_pools}; do >>> # successful only if there is at least one pool to scrub >>> rc=0 >>> >>> echo " starting scrubbing of pool '${pool}'" >>> zpool scrub ${pool} >>> echo " consult 'zpool status ${pool}' for the result" >>> echo " or wait for the daily_status_zfs mail, if >>> enabled" >>> done >>> ;; >>> ---snip--- >>> >>> Bye, >>> Alexander. >>> >> >> Please add a check to see if any resilerving is being done on the pool >> that the scub is being executed on. (Just in case), I would hope that >> the scrub would fail silently in this case. >> >> Please also check whether a scrub is already running on one of the pools >> and if so & another pool exists start a background loop to wait for the >> first scrub to finish or die silently. >> >> I had a scrub fully restart from calling scrub a second time after being >> more than 50% complete, its frustrating. >> >> >> Thanks!, >> > > I should probably suggest one check that comes to mind. > > zpool history ${pool} | grep scrub | tail -1 |cut -f1 -d. > > Then compare the output with today's date to make sure today is >= 30 > days from the date of the last scrub. > > With the above this could be turned into a daily_zfs_scrub_enable with a > default daily_zfs_scrub_threshold="30" and ensuring that if one check is > missed it will not take another 30 days to run the check again. Good idea! I even found a command line which does the calculation for the number of days between "now" and the last run (not taking a leap year into account, but an off-by-one day error here does not matter). Bye, Alexander. -- "He's a businessman. I'll make him an offer he can't refuse." -- Vito Corleone, "Chapter 1", page 39 http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137