ZFS — the open-source OpenZFS file system used by TrueNAS, Proxmox, and Ubuntu — protects data with checksums and parity. But its real-world performance and resilience depend heavily on one decision: how you lay out the pool. This guide covers the five layouts eRacks recommends most for a network-attached storage (NAS) server, and — the part that actually matters — when to use each.
eRacks has built custom open-source storage since 1999, and we'll spec a layout to your workload at no charge. Configure a NAS →
The five layouts
RAIDZ2 — the safe default
RAIDZ2 uses double parity: the array survives any two simultaneous drive failures. For most 6-to-12-drive NAS systems it's the right balance of usable capacity and resilience. If you're unsure, start here.
Striped mirrors — maximum IOPS
Striped mirrors deliver the highest IOPS and the fastest resilver (the rebuild that runs after a failed disk is replaced). That makes them the pick for virtual machines and databases, where random I/O and quick recovery matter more than raw capacity efficiency. The trade-off is usable capacity — roughly half the raw disks.
RAIDZ1 — small and SSD arrays only
RAIDZ1 uses single parity (one drive of redundancy). It's fine for small or solid-state arrays, but on large spinning disks the resilver window is long enough that a second failure during rebuild becomes a real risk. Don't run RAIDZ1 on big HDDs — use RAIDZ2 or RAIDZ3 instead.
RAIDZ3 — wide and archival
RAIDZ3 uses triple parity: it survives three simultaneous failures. Use it for wide vdevs — a vdev, or virtual device, is the group of disks ZFS treats as one unit — and for long-term archival storage, where the extra parity overhead is worth the safety margin.
dRAID — resilver speed at scale
dRAID spreads parity and spare capacity across all drives, restoring fast resilver on large arrays where a RAIDZ3 rebuild would crawl. Reach for it when the array is big — roughly 24 drives and up — and fast recovery is a priority.
Quick decision guide
| Your situation | Recommended layout |
|---|---|
| General-purpose NAS, 6–12 drives, unsure | RAIDZ2 |
| Virtual machines / databases | Striped mirrors |
| Small array or all-SSD | RAIDZ1 |
| Wide vdev or archival | RAIDZ3 |
| 24+ drives, fast rebuild matters | dRAID |
Build on a ZFS-friendly foundation
ZFS expects direct, honest access to every disk. Three hardware choices make that possible:
- IT-mode HBA — a host bus adapter that passes each disk straight through to ZFS instead of hiding it behind hardware RAID. Hardware RAID and ZFS work against each other; an IT-mode HBA lets ZFS address every disk directly.
- ECC memory — error-correcting memory protects the in-flight data and checksums ZFS relies on.
- CMR drives — conventional magnetic recording, never shingled (SMR). SMR's rewrite behavior can turn a routine resilver into a multi-day event.
Accelerate without compromising safety
Once the layout is set, these optional devices speed specific paths:
- special vdev — an NVMe device holding pool metadata, for faster metadata-heavy operations.
- SLOG — a separate ZFS intent log for synchronous writes (it is not a general read or write cache).
- L2ARC — a second-level read cache extending the in-RAM ARC onto fast SSD.
Add only what your workload needs — and none of them replaces ample ECC RAM, still the single biggest contributor to ZFS performance and integrity.
Frequently asked questions
Which ZFS layout should I use for my NAS?
RAIDZ2 (double parity) is the safe default for most 6-to-12-drive NAS systems: it survives any two simultaneous drive failures. Start there unless a specific workload calls for a different layout — striped mirrors for maximum IOPS, RAIDZ3 or dRAID for very wide or archival arrays.
What is the best ZFS layout for virtual machines and databases?
Striped mirrors. They deliver the highest IOPS and the fastest resilver (the rebuild that runs after a failed disk is replaced), which makes them the best fit for virtual machines and databases, where random I/O and quick recovery matter more than raw capacity efficiency.
Is RAIDZ1 safe for large hard drives?
Not for large spinning disks. RAIDZ1 (single parity) tolerates only one drive failure, and on high-capacity HDDs the resilver window is long enough that a second failure during rebuild is a real risk. Reserve RAIDZ1 for small or solid-state arrays; use RAIDZ2 or RAIDZ3 on large CMR drives.
When should I use RAIDZ3 or dRAID?
Use RAIDZ3 (triple parity) for wide vdevs — the group of disks ZFS treats as one unit — and long-term archival storage, where surviving three failures is worth the parity overhead. Use dRAID (distributed parity) when you need fast resilver at scale, roughly 24 drives and up.
Does ZFS need a hardware RAID controller?
No. ZFS works against hardware RAID. Use an IT-mode HBA (a host bus adapter that passes each disk straight through to ZFS rather than hiding it behind a RAID layer) so ZFS can address every disk directly. Pair it with ECC (error-correcting) memory.
Can I use SMR drives with ZFS?
No. Shingled (SMR) drives behave poorly under ZFS because their rewrite pattern can turn a routine resilver into a multi-day event. Use conventional-recording (CMR) drives only. eRacks NAS systems ship CMR drives up to 30TB and never shingled drives.
What devices speed up a ZFS pool without compromising safety?
An NVMe special vdev for metadata, a SLOG (separate ZFS intent log) for synchronous writes, an L2ARC second-level read cache, and ample ECC memory. Each accelerates a specific path — metadata, sync writes, or reads — without weakening ZFS's data-integrity guarantees.
Let eRacks spec it for you
Every eRacks NAS is built for ZFS from the ground up — IT-mode HBA, ECC memory, and CMR drives up to 30TB — with a configurator that offers ZFS alongside traditional RAID. Tell us the workload and we'll spec the layout at no charge.
Machine-readable version of this guide: Open Knowledge Format bundle.
eRacks Open Source Systems