Если значения по умолчанию вам не очень подходят:
int zfs_top_maxinflight = 32; /* maximum I/Os per top-level */ int zfs_resilver_delay = 2; /* number of ticks to delay resilver */ int zfs_scrub_delay = 4; /* number of ticks to delay scrub */ int zfs_scan_idle = 50; /* idle window in clock ticks */ int zfs_scan_min_time_ms = 1000; /* min millisecs to scrub per txg */ int zfs_free_min_time_ms = 1000; /* min millisecs to free per txg */ int zfs_resilver_min_time_ms = 3000; /* min millisecs to resilver per txg */ int zfs_no_scrub_io = B_FALSE; /* set to disable scrub i/o */ int zfs_no_scrub_prefetch = B_FALSE; /* set to disable srub prefetching */
то можно ускорить этот процесс (все значения меняются налету).
FreeBSD:
# sysctl vfs.zfs.resilver_min_time_ms=5000
# sysctl vfs.zfs.resilver_delay=0
# sysctl vfs.zfs.scrub_delay=0
# sysctl vfs.zfs.top_maxinflight=128
# sysctl vfs.zfs.scan_idle=2
Для перманента вносим в /etc/sysctl.conf.
OmniOS/Illumos (не для Oracle Solaris 11 !!!):
# echo "zfs_resilver_min_time_ms/W0t5000" | mdb -kw
# echo "zfs_resilver_delay/W0t0" | mdb -kw
# echo "zfs_scrub_delay/W0t0" | mdb -kw
# echo "zfs_top_maxinflight/W0t128" | mdb -kw
# echo "zfs_scan_idle/W0t2" | mdb -kw
Для перманента вносим в /etc/system.conf:
set zfs:zfs_resilver_min_time_ms = 5000
set zfs:zfs_resilver_delay = 0
set zfs:zfs_scrub_delay = 0
set zfs:zfs_top_maxinflight = 128
set zfs:zfs_scan_idle = 2