Backups
ZFS scrub planning: how often to verify stored data and mirror health
ZFS scrub planning is about finding latent checksum/read problems while redundant copies still exist. The ideal cadence depends on disk size, workload, pool activity, hardware error history, and how long a scrub takes; blindly running too frequently can add unnecessary I/O while never scrubbing leaves silent faults undiscovered.
Measure current scrub duration
Run a controlled scrub and record pool size/allocated data, start/end time, throughput, errors repaired, workload latency impact, and whether any devices show SMART or transport errors.
A scrub that takes days changes how much overlap you should allow with backups or other maintenance.
Choose a cadence shorter than your comfort window
Monthly is common for many always-on pools, but the correct interval is an operational choice. High-risk or archival patterns may justify different schedules.
Never schedule overlapping scrubs; ensure automation detects an existing scrub.
Coordinate with workload and SMART monitoring
Scrubs generate sustained reads. Run them in a window with I/O headroom and continue drive-health monitoring between scrubs. A failed SMART test, growing checksum error, or degraded vdev should trigger investigation without waiting for the next schedule.
Do not cancel every scrub because users notice a small performance change; fix scheduling/capacity instead.
Alert on result, not just timer execution
Capture zpool status after completion and alert on repaired/unrecoverable errors, degraded state, or a scrub that did not finish. Retain history to see error trends by device.
- Measure scrub duration/impact.
- Avoid overlap.
- Pair with SMART/pool alerts.
- Record and review results.