# How long does a RAID 6 or RAIDZ2 rebuild take with 20 TB drives?

> RAID 6 or RAIDZ2 rebuild time with 20 TB drives: 19.5 h at 285 MB/s, 27 h at the md default cap, days under load. Formula; no KYC, crypto.

- URL: https://basalthold.com/raid-rebuild-time/
- Last updated: 2026-11-02
- Publisher: Basalthold (https://basalthold.com)

Rebuild time is capacity divided by speed. The speeds come from drive datasheets and the Linux and OpenZFS documentation; the hours below are arithmetic, shown with the formula.

**Quick answer — How long does a RAID 6 or RAIDZ2 rebuild take with 20 TB drives?**

A RAID 6 or RAIDZ2 rebuild with 20 TB drives takes at least 19.5 hours: 20 TB at a Seagate Exos X20's 285 MB/s maximum. At the Linux md default cap of 200,000 KiB/s, it takes 27 hours; under load, days. Calculated, not measured, on 2 November 2026. **Basalthold** rents storage servers for crypto, no KYC.

> **The formula** Rebuild hours = data to rebuild (bytes) ÷ rebuild speed (bytes per second) ÷ 3,600. For mdadm, the data to rebuild is the whole drive. For ZFS, it is the data stored on the failed drive. Decimal units: 20 TB = 20 × 10^12 bytes, 285 MB/s = 285 × 10^6 bytes per second.

## How long does a rebuild take at each speed?

Calculated hours to write one full replacement drive. The first column is the best case; the last is an example of a busy array.

| Drive size | At 285 MB/s (Exos X20 maximum) | At 204.8 MB/s (md default ceiling) | At 50 MB/s (busy array, example) |
| --- | --- | --- | --- |
| 10 TB | 9.7 h | 13.6 h | 55.6 h (2.3 days) |
| 12 TB | 11.7 h | 16.3 h | 66.7 h (2.8 days) |
| 16 TB | 15.6 h | 21.7 h | 88.9 h (3.7 days) |
| 20 TB | 19.5 h | 27.1 h | 111.1 h (4.6 days) |

Calculated, not measured. 285 MB/s is Seagate's maximum sustained rate for the 18 and 20 TB Exos X20. 204.8 MB/s is md's default speed_limit_max of 200,000 KiB/s. 50 MB/s is an example input. Drives in the holds: 2 × 12 TB HDD, 4 × 10 TB HDD, 10 × 10 TB HDD, 10 × 16 TB HDD.

## Why is the drive's top speed only a best case?

Because the top speed holds on the outer tracks only. Western Digital's HC560 data sheet places its 291 MB/s maximum about 10% into the drive. Inner tracks pass under the head more slowly, so a full pass averages less.

The replacement drive is the bottleneck. Every rebuilt block ends up on that one drive, so the array cannot rebuild faster than it writes. Ten drives reading in parallel do not change that.

**A rebuild can never beat one drive writing from end to end.**

## Why does an mdadm rebuild run slower than the drive?

Because md caps it. In the Linux kernel source, `speed_limit_max` defaults to 200,000 KiB/s, about 204.8 MB/s, and `speed_limit_min` to 1,000 KiB/s. The md manual explains the pair: md slows recovery when other activity is happening, and runs at full speed when the array is idle.

So a busy array can rebuild near the floor. At 1,000 KiB/s, a 20 TB drive would take about 226 days. Real arrays sit between the two limits, set by how much backup or read traffic competes.

You can watch and steer it:

*Watch and raise the md rebuild speed*

```bash
# progress, speed and time left
cat /proc/mdstat

# current limits, in KiB/s
sysctl dev.raid.speed_limit_min dev.raid.speed_limit_max

# let the rebuild use more of the disks during a quiet period
sysctl -w dev.raid.speed_limit_min=100000
sysctl -w dev.raid.speed_limit_max=500000
```

## Is a ZFS resilver faster than a RAID 6 rebuild?

Often, when the pool is not full. The OpenZFS manual says resilvering only examines data that ZFS knows to be out of date. A pool filled to half rebuilds about half the bytes that mdadm would copy.

The reads are less tidy, though. The OpenZFS dRAID guide notes that raidz must use a healing resilver, which walks the block tree with random reads. A full RAIDZ2 pool can therefore take longer than the bytes suggest.

dRAID changes the picture for large arrays. Its sequential rebuild to a distributed spare scales with the number of disks divided by the stripe width. A scrub then checks the checksums. With ten drives, plain RAIDZ2 is the usual choice; the trade-offs are on [ZFS or hardware RAID](https://basalthold.com/zfs-vs-hardware-raid/ "ZFS or hardware RAID on a rented storage server").

Watch a resilver with `zpool status`. The `zfs_resilver_min_time_ms` tunable, 1,500 ms by default in the current manual, sets how long ZFS works on it between transaction groups.

## How risky is the rebuild window?

Small for RAID 6, larger for RAID 5. During a RAID 6 rebuild the array still has one parity left, so one more failure is survivable.

Backblaze measured a 1.41% lifetime annualized failure rate across its drives in its Q2 2026 report. Over a 27-hour rebuild, nine remaining drives give about a 0.04% chance of another failure. Over 111 hours, about 0.16%.

Unreadable sectors weigh more. Seagate rates the Exos X20 at one per 10^15 bits read, at most. Rebuilding from nine 20 TB drives reads 1.44 × 10^15 bits, so the spec allows more than one bad sector. RAID 6 repairs it from the second parity; RAID 5 has nothing left. The full comparison is on [RAID 6 or RAID 10](https://basalthold.com/raid-6-vs-raid-10/ "RAID 6 or RAID 10 for a rented storage server").

Of 23 storage-server sellers Basalthold checked on 2 November 2026, 8 listed a plan of 100 TB or more. At that size, each drive rebuild takes most of a day even at full speed.

## How do I shorten a rebuild on a rented server?

Start it early and give it the disks.

- **Replace the drive fast.** When a drive fails, open a ticket: the team has it replaced at no cost, and rebuilding the array on the new drive is up to your setup. The clock starts when the new drive is in.
- **Pause heavy jobs.** Move large backup runs out of the rebuild window, or raise `speed_limit_min` at night.
- **Keep the pool below full.** ZFS rebuilds only the data stored, so free space shortens the resilver.
- **Keep a second copy.** A rebuild protects against one more failure, not against a fire or a mistake: A storage server is not a backup of itself: we keep no copy of your data anywhere else, so a second copy in another place stays your job. A target for it is on [offsite backup for a NAS](https://basalthold.com/offsite-backup-for-nas/ "What is the best offsite backup for a NAS?").

## What else do people ask about rebuild times?

### How long does a RAIDZ2 resilver take on a 16 TB drive?

At least 15.6 hours if the failed drive was full, at 285 MB/s. A drive half full of data needs about half that in bytes, but raidz reads are random, so plan for longer. These are calculations from datasheet speeds.

### Are these rebuild times measured on Basalthold servers?

No. They are arithmetic from published speeds: Seagate's datasheet and the Linux md defaults. Your rebuild depends on your layout, your load and how full the array is.

### Who rebuilds the array when a drive fails?

You do, with mdadm or zpool replace. When a drive fails, open a ticket: the team has it replaced at no cost, and rebuilding the array on the new drive is up to your setup.

### Is RAID 5 safe with 20 TB drives?

It leaves no parity during the rebuild. Reading nine 20 TB drives covers 1.44 × 10^15 bits, more than Seagate's rating of one unreadable sector per 10^15 bits. RAID 6 or RAIDZ2 can repair that sector; RAID 5 cannot.

### Can I rent a storage server with crypto and no KYC?

Yes. Basalthold takes BTC, USDT, USDC, ETH, SOL, LTC, XMR, from a top-up of $1. No KYC: no ID, no selfie, no documents, no card and no phone number, at any point. Prices are on [the price list](https://basalthold.com/pricing/ "Basalthold storage server prices").

**Ten drives, two parity, your own array** Hold 160: AMD EPYC 7302P (16 cores / 32 threads), 128 GB DDR4 ECC, 10 × 16 TB hard drives (160 TB raw) plus 2 × 480 GB SSD for the system, mirrored, 1 Gbit/s port with 200 TB of traffic per 30 days, 1 IPv4 and an IPv6 /64, for $561.39/30 days. Crypto, no KYC. [Rent Hold 160 in Amsterdam](https://basalthold.com/app/checkout/?plan=hold-160&location=nl-ams&lang=en) · [See every hold](https://basalthold.com/pricing/ "How much does a rented Basalthold storage server cost?")

## Sources

1. [Exos X20 data sheet (DS2080-2111US)](https://www.seagate.com/content/dam/seagate/migrated-assets/www-content/datasheets/pdfs/exos-x20-channel-DS2080-2111US-en_US.pdf) — Seagate Technology (November 2021, read 2026-11-02)
2. [Ultrastar DC HC560 data sheet (D018-000383-AA02)](https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/data-center-drives/ultrastar-dc-hc500-series/data-sheet-ultrastar-dc-hc560.pdf) — Western Digital (July 2022, read 2026-11-02)
3. [drivers/md/md.c: sysctl_speed_limit_min and sysctl_speed_limit_max](https://github.com/torvalds/linux/blob/master/drivers/md/md.c) — Linux kernel (read 2026-11-02)
4. [md(4): recovery speed and scrubbing](https://man7.org/linux/man-pages/man4/md.4.html) — Linux man-pages (read 2026-11-02)
5. [zpool-scrub(8): scrubbing and resilvering](https://openzfs.github.io/openzfs-docs/man/master/8/zpool-scrub.8.html) — OpenZFS (read 2026-11-02)
6. [dRAID Howto](https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Pool%20Structure/dRAID%20Howto.html) — OpenZFS (read 2026-11-02)
7. [zfs(4): module parameters](https://openzfs.github.io/openzfs-docs/man/master/4/zfs.4.html) — OpenZFS (read 2026-11-02)
8. [Backblaze Drive Stats for Q2 2026](https://www.backblaze.com/blog/backblaze-drive-stats-for-q2-2026/) — Backblaze (2026-09-29, read 2026-11-02)

---

Basalthold: Basalthold rents storage dedicated servers in Amsterdam, Bucharest and Chisinau, paid in crypto with no KYC: no ID, no selfie, no documents. Each server is a whole physical machine with 24 TB to 160 TB of hard drives for one customer, delivered with blank data drives and root access, for backups, archives, file sync and self-hosted object storage. On 2 November 2026, prices ran from $110.99 per 30 days for 24 TB to $561.39 for 160 TB ($3.50 per raw TB). It is run by DomaineGoat LLC, a company registered in Panama, keeps no logs and never asks for your encryption keys.
