
The oldest rule in ZFS was “you cannot add a drive to a RAIDZ vdev.” For fifteen years that meant expanding a home NAS was either a full backup-and-restore or buying a whole second vdev’s worth of disks at once. OpenZFS 2.3 shipped RAIDZ expansion, and the rule is gone. Add one drive to an existing RAIDZ1, wait for the reflow, and the vdev is wider without a rebuild.
The seven best apps for ZFS RAIDZ expansion below cover the expansion itself, the monitoring you want during a 30-hour reflow on a home 8-bay NAS, and the snapshot and replication tools that keep a running pool safe while you grow it. Everything runs on Linux (TrueNAS SCALE, Debian, Ubuntu Server, Proxmox); most also work on FreeBSD.
What to look for in a RAIDZ expansion toolkit
- OpenZFS 2.3 or newer as the runtime, because
zpool attachfor RAIDZ vdevs is the feature that makes any of this possible. - A web UI or dashboard that shows expansion progress without leaving
zpool statusopen in a terminal for a day. - Snapshot automation so you keep pre-expansion snapshots for rollback.
- Replication to a second host or cloud target, because expansion is not the same as a backup.
- Alerting on scrub errors, resilver failures, and the expansion process itself.
- Rebalance support, because data written before the expansion sits on the original stripe width until you rewrite it.
Quick comparison table
| App | Best for | Platforms | Free plan | Starting price/mo | Rating |
|---|---|---|---|---|---|
| OpenZFS 2.3 | The runtime doing the expansion | Linux, FreeBSD, illumos | Fully free (CDDL) | Free | Essential |
| TrueNAS SCALE 24.10+ | Web UI-driven expansion | Bare-metal, VM | Fully free | Free (Enterprise support extra) | Recommended |
| Cockpit ZFS Manager | Pool management inside Cockpit | Linux | Fully free (OSS) | Free | Lightweight |
| Sanoid | Automated snapshot policies | Linux | Fully free (OSS) | Free | Community favourite |
| zrepl | Snapshot replication with encryption | Linux, FreeBSD | Fully free (OSS) | Free | Solid |
| Houston UI | Rocky Linux web console for ZFS | Rocky Linux | Fully free (OSS) | Free | New but promising |
| zfs-auto-snapshot | Simple hourly/daily snapshots | Linux | Fully free (OSS) | Free | Battle-tested |
The apps
1. OpenZFS 2.3 – the runtime that makes expansion possible
OpenZFS 2.3 is where zpool attach for RAIDZ vdevs lives. Command is one line: zpool attach tank raidz1-0 /dev/sdX. The pool stays online during the reflow, reads and writes continue, and when it finishes the vdev has one more disk of capacity. Every other tool below assumes this runtime.
Where it falls short: New writes after the expansion use the wider stripe. Data written before the expansion keeps the old stripe width until you rewrite the files. Also, RAIDZ expansion is one attach at a time; a second attach cannot start until the first finishes.
Pricing:
- Free.
Platforms: Linux, FreeBSD, illumos.
Download: OpenZFS releases on GitHub
Bottom line: Install OpenZFS 2.3 first. Everything else is scaffolding.
2. TrueNAS SCALE 24.10 – best for web UI-driven expansion
TrueNAS SCALE 24.10 and newer ship OpenZFS 2.3 with RAIDZ expansion exposed in the Storage tab. Add the drive, click Expand VDEV, confirm, and watch the reflow progress bar tick over hours or days depending on pool size. Alerts fire when the reflow finishes, plus scrubs, SMART errors, and pool health.
Where it falls short: Cannot expand a mirror-of-mirror vdev the same way (mirrors have always been simple to grow, so no loss). Cannot combine expansion with vdev removal in one operation.
Pricing:
- Free: community edition.
- Paid: TrueNAS Enterprise support starts at hardware-appliance level pricing.
Platforms: Bare-metal x86, VM.
Download: TrueNAS.com
Bottom line: If ZFS is your storage layer, TrueNAS SCALE 24.10+ is the shortest path from “extra disk in a shelf” to “expanded RAIDZ1.”
3. Cockpit ZFS Manager – best for pool management inside Cockpit
Cockpit ZFS Manager adds a ZFS panel to the Cockpit web console shipped with Fedora Server, Rocky Linux, and Debian. Create datasets, browse snapshots, take manual snapshots, and check pool status without a terminal. Expansion runs at the shell for now, but visibility is Cockpit-native.
Where it falls short: Expansion UI is minimal compared to TrueNAS. Some features expect Cockpit already installed on the box.
Pricing:
- Free (LGPL).
Platforms: Linux (Cockpit).
Download: optiplex-networks GitHub
Bottom line: Cockpit ZFS Manager is the right add-on for a Cockpit-managed Linux server that runs ZFS on the side.
4. Sanoid – best for automated snapshot policies
Sanoid applies a policy file to your datasets and takes hourly, daily, monthly, and yearly snapshots on schedule. Companion tool syncoid handles replication. When you are about to run a RAIDZ expansion, Sanoid’s pre-expansion daily snapshot is the rollback point you will thank yourself for.
Where it falls short: Configuration is a text file; no web UI. Debugging replication over slow links requires reading syncoid logs.
Pricing:
- Free (GPL).
Platforms: Linux, FreeBSD.
Download: jimsalterjrs GitHub
Bottom line: Sanoid is the “automatic snapshots that just work” pick every ZFS user should have installed by day three.
5. zrepl – best for encrypted replication
zrepl handles snapshot replication across hosts with native encryption keys, pull or push mode, and holdback rules so a failing target does not prune your source pool. It scales past a home lab if you ever offsite the pool to a colocated box.
Where it falls short: Config file (hcl) has a learning curve. Sanoid does simpler cases with less setup.
Pricing:
- Free (MIT).
Platforms: Linux, FreeBSD.
Download: zrepl.github.io
Bottom line: Pick zrepl when replication is going somewhere you do not fully trust and encryption at rest is not optional.
6. Houston UI – best for Rocky Linux web console
Houston UI from 45Drives is a Cockpit-based console for ZFS on Rocky Linux. It exposes pool creation, dataset management, sharing, and now RAIDZ expansion in a UI similar to TrueNAS SCALE. Preferred by users who want a rolling-release Linux base under a familiar ZFS interface.
Where it falls short: Community edition support is best-effort. Enterprise support requires 45Drives hardware.
Pricing:
- Free (community edition).
Platforms: Rocky Linux, AlmaLinux.
Download: 45Drives Houston
Bottom line: Houston UI is a strong TrueNAS-alternative for Rocky Linux fans who still want a friendly ZFS panel.
7. zfs-auto-snapshot – best for simple hourly snapshots
zfs-auto-snapshot is the original set-and-forget snapshot cron. It installs a handful of cron jobs and starts taking frequent, hourly, daily, weekly, and monthly snapshots with retention. Ideal when Sanoid feels like overkill.
Where it falls short: No replication built in. Retention is per-schedule, not per-dataset without extra config.
Pricing:
- Free (GPL).
Platforms: Linux (Debian and Ubuntu package it), FreeBSD (via ports).
Download: zfsonlinux GitHub
Bottom line: zfs-auto-snapshot is the “one apt install and forget it” snapshot layer for pools that do not need Sanoid’s flexibility.
How to pick the right one
- Everyone needs OpenZFS 2.3 on the box before an expansion is even possible.
- If you run a TrueNAS SCALE appliance, the built-in UI is the whole answer.
- On a generic Linux server, add Cockpit ZFS Manager or Houston UI for a friendly panel.
- Layer Sanoid (or zfs-auto-snapshot if you want simple) for snapshot policy.
- Add zrepl if replication is going anywhere sensitive.
Do not stack Sanoid and zfs-auto-snapshot on the same dataset. They both take snapshots on the same names and fight over retention.
FAQ
How long does a RAIDZ expansion take on a home NAS?
For an 8 TB drive added to a healthy 4-wide RAIDZ1, expect 12 to 30 hours depending on how full the pool is. Reads and writes continue during the reflow; performance drops but the pool stays online.
Do I still need to rewrite existing files after RAIDZ expansion?
Kind of. Files written before the expansion keep the old stripe width, so the added disk contributes less to reads on those files until you rewrite them. A zfs send | zfs recv on the dataset (or a Sanoid syncoid pass) rebalances neatly. On a big pool a scheduled overnight rewrite is a good idea.
Is RAIDZ expansion safe with a scrub running?
The expansion will not start while a scrub is in flight; ZFS refuses cleanly. Wait for the scrub, then start the expansion. Take a snapshot first.
What is the difference between RAIDZ expansion and adding a vdev?
Expansion widens an existing vdev by one disk at a time. Adding a vdev creates a separate RAIDZ group inside the same pool. Both grow capacity; expansion keeps the parity ratio you already had, while adding a vdev multiplies fault tolerance.
Can I expand a RAIDZ2 or RAIDZ3?
Yes. zpool attach for RAIDZ works for RAIDZ1, RAIDZ2, and RAIDZ3 in OpenZFS 2.3 and newer. The command is the same; the reflow just moves parity blocks appropriate to the RAIDZ level.