ZFS Resilver Time Calculator for Home Servers

July 8, 2026

ZFS Resilver Time Calculator

Estimate resilver ETA for mirrors, RAIDZ, special vdevs, and dRAID by combining allocated data, changed block scope, disk speed, scrub load, ashift, and recordsize effects.

ZFS pool presets
Pool layout and resilver inputs
Changes parity math, fan-out, and resilver efficiency.
Only the affected vdev rebuilds, but pool load matters.
Use the width of the failed disk's vdev.
Decimal TB. ZFS resilver is usually allocated-block based.
Estimate from zpool list, zfs list, or pool monitoring.
Short offline cases may copy only blocks changed while absent.
Used for short-offline or conservative delta planning.
Use inner-track HDD speed, not burst or cache speed.
Includes scrub, backups, streaming, VM IO, and snapshots.
Mismatch with physical sectors can raise small IO work.
Small blocks increase metadata traversal and random IO.
Models scheduler pressure from other pool activity.
Optional time buffer for a follow-up scrub or verification.
Adds to degraded exposure, not raw resilver copy time.
Resilver estimate
Resilver ETA 0 hrs copy phase only
Effective Speed 0 MB/s after load and factors
Resilver Work 0 TB logical data equivalent
Risk Window 0 hrs delay + resilver + scrub buffer
ZFS resilver references

ZFS resilver factor grid

Vdev typeFactorMain dragPlanning note
2-way mirror0.95xSimple readsFastest common case
3-way mirror0.90xMore sourcesGood redundancy
RAIDZ11.20xParity readsNo spare fault margin
RAIDZ21.35xParity and widthCommon NAS baseline
RAIDZ31.50xWide parityLarge archive pools
dRAID0.80-0.95xDistributed spareDesigned for faster repair

Preset pool examples

PoolLayoutDataTypical ETA driver
Home NASMirror4-8 TBHDD write speed
Media poolRAIDZ220-60 TBWide parity
VM poolSSD mirror1-6 TBSmall records
ArchivedRAID80 TB+Sequential repair
Special vdevMirror0.2-2 TBMetadata IO

Recordsize and ashift effects

SettingFactorWhy it mattersCommon use
16K records1.28xMore block pointersDatabases
64K records1.12xModerate metadataVM disks
128K records1.00xDefault balanceGeneral NAS
1M records0.88xLarge sequential IOMedia, backup
Ashift mismatch1.08xRead-modify-writeLegacy pools

Load and operation guide

ConditionSpeed leftRiskAction
Idle pool85-100%LowerRun now
Light clients65-85%NormalMonitor IO
Active scrub45-70%HigherReschedule scrub
VM workload35-65%HigherThrottle guests
Backup jobs30-60%HigherPause writes
Practical ZFS tips
Use allocated data for ZFS: a normal ZFS resilver walks live block trees, so a half-full pool often repairs far less than the raw disk size. For a new mirror attach, allocated data is still the best starting estimate.
Keep the pool boring during repair: pause heavy scrubs, replication, backup jobs, and VM churn if the degraded window is uncomfortable. A calm pool usually finishes faster and is easier to monitor.

The silence of a healthy ZFS pool can be deceiving. It’s easy to forget just how hard the drives is working until one fails. When a drive does fail, it kicks off the rebuild timer and it makes home server owners anxious. Will the new disk finish its repair before the next one fails? This means losing data, which in this case would of been a disaster.

Knowing the reason behind the wait helps transform passive dread into active management. A lot of folks think ZFS will copy all the bytes on the bad drive, which isn’t generaly accurate. Unless you initiate a full scan or add another mirror, it won’t even walk the block pointers for blocks where there’s nothing, just those with actual data. You might have an eight-terabyte pool containing four terabytes of files. So the amount of stuff you’re rebuilding is more like four terabytes.

Why ZFS Rebuild Takes So Long

That’s important because the tools tell you how long it’ll take based off more than just how much space you purchased. It also use your disk speed and vdev configuration to estimate how much data really needs copying. In short: What you store is more important for rebuild time than how much storage you purchased.

The speed penalty depends on your pool setup. Rebuilds should be roughly native-speed for mirrors. They are fairly permissive because any surviving mirror can pull data. For a RAIDZ config, rebuilds read both data and parity blocks, increasing overhead. The wider your RAIDZ array, the more drives it has to deal with, and the more complex its parity calculations, making it worse. Expect to notice the efficiency difference in the estimated time; wide RAIDZ arrays (even with the same data as a mirror) may take considerably longer then.

Workloads reduce rebuild performance by interfering with it. In most cases, a ZFS rebuild doesn’t interrupt file service. That is, your VMs will still run and your photo backup will complete while a disk is being repaired. However, the background repair consumes some of your disks I/O bandwidth, which competes with other tasks (like backups). To model that, use “percentage of disk load” field in the calculator. If a lot of clients are accessing the storage, then the time for rebuilding will increase (the background process will be throttled). Most admins reschedule their rebuilds for off-peak hours or temporarily suspend demanding tasks to give the pool enough breathing room so it can recover to redundancy as fast as possible.

Metadata configuration and disk geometry also matter. More blocks = more metadata for ZFS to scan across in order to perform repairs. For example, you’ll get worse performance resilvering a pool containing millions of tiny files (e.g., MySQL database) compared to repairing a pool full of large video archives, despite both pools having the same number of gigabytes. The ashift parameter makes sure the filesystem is lined up with the underlying drive sector(s), avoiding unnecessary read-modify-write cycles and saving some time. If you get this correct at deployment time, it will help when disaster come.

What does this mean? By having some idea of rebuilding time, you don’t have to suffer it, instead, you can manage it. Twenty hours sounds like something you could schedule around; days feels like a good time to re-evaluate your redundancy strategy (or switch to faster disks) so you won’t be in this pickle again.

The objective is to get your busted drive fixed ASAP, and limit your exposure to “no data has a safety net” mode. Using resilver time as a planning metric stabilizes your home server. It reliably hums along but now you know the cost.

ZFS Resilver Time Calculator for Home Servers

Related posts

Leave a Comment