Date: Sun, 8 Mar 2020 19:34:44 +0100 From: Peter Eriksson <pen@lysator.liu.se> To: freebsd-fs <freebsd-fs@freebsd.org> Subject: Ways to "pause" ZFS resilver? Message-ID: <BDFFC0E8-9D5A-4E45-835F-9D00CDAE8829@lysator.liu.se>
next in thread | raw e-mail | index | archive | help
I=E2=80=99m looking for ideas on how to pause a running ZFS resilver on = a FreeBSD 11.3-RELEASE-p6 system. The reason is we have a system where a running such causes severe NFS = =E2=80=9Chiccups=E2=80=9D for our users (like 5-20s delays more or less = often) and thus I=E2=80=99d like to figure out some way to =E2=80=9Cpause=E2= =80=9D it during office hours until either we=E2=80=99ve found and fixed = the problem or the resilver is done (1D15H to go)... Since there isn=E2=80=99t any =E2=80=9Czfs=E2=80=9D command to pause a = running resilver I=E2=80=99m pondering alternative more =E2=80=9Ccreative=E2= =80=9D ways. /usr/src/cddl/contrib/opensolaris/uts/common/fs/zfs: > if (zio_flags & ZIO_FLAG_RESILVER) > scan_delay =3D zfs_resilver_delay; > else { > ASSERT(zio_flags & ZIO_FLAG_SCRUB); > scan_delay =3D zfs_scrub_delay; > } > > if (scan_delay && (ddi_get_lbolt64() - spa->spa_last_io <=3D = zfs_scan_idle)) > delay(MAX((int)scan_delay, 0)); Settings vfs.zfs.scan_idle to something high and then = vfs.zfs.resilver_delay to 10*60*60*kern.hz (10 hours) and hoping the = =E2=80=9Cif" statement will trigger? But that assumes nothing can/will = interrupt delay(). Hmmm... Any other suggestions? (I don=E2=80=99t want to abort the resilver). - Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BDFFC0E8-9D5A-4E45-835F-9D00CDAE8829>