ZFS on a mini-PC: what actually matters
Running ZFS on a home-server mini-PC - how much RAM you really need, the ARC cache, why SSD pools love ZFS, the truth about ECC, and the mini-PCs that make good ZFS boxes.
ZFS is the reason a lot of people build a home NAS: checksummed data, snapshots, cheap redundancy, and self-healing on a scrub. It runs happily on a mini-PC - TrueNAS, Proxmox, or plain Linux - but the folklore around it (needs ECC, needs 1GB of RAM per TB) scares people off boxes that would be perfectly fine. Here is what actually matters.
RAM: enough, not a rule of thumb
The old "1GB of RAM per TB of storage" line was never a requirement - it came from a since-retracted forum post about heavy dedup. For a normal home NAS, ZFS runs fine on far less.
| Pool size | Comfortable RAM | Notes |
|---|---|---|
| Up to ~8TB | 8GB | Plenty for a small mirror + light services |
| ~8-40TB | 16GB | The homelab sweet spot |
| 40TB+ or many datasets | 32GB+ | More cache, more headroom for VMs |
The one hard rule: never turn on dedup unless you have measured that you need it and have the RAM (5GB+ per TB) to back it. Compression (lz4) is the opposite - leave it on always; it is nearly free and often makes the pool faster.
ARC: why ZFS "eats" your RAM
ZFS uses free RAM as a read cache called the ARC, and it will happily show your box as using most of its memory. This is not a leak - the ARC gives memory back the moment an application asks for it. It is why a ZFS box feels fast: hot data is served from RAM, not disk. On a mini-PC also running VMs or containers, cap the ARC (for example zfs_arc_max) so ZFS and your workloads share the RAM sensibly.
SSD pools: ZFS's best modern use
ZFS was designed in the spinning-disk era, but it is excellent on SSDs. On a mini-PC with two or more NVMe slots - increasingly common on NAS-oriented boxes - a mirrored NVMe pool gives you checksummed, snapshotted, self-healing storage with no moving parts and near-silent, low-power operation. You lose a SLOG/L2ARC conversation entirely: on an all-flash pool neither is worth it.
If you do run spinning disks, a separate small SSD SLOG only helps synchronous writes (NFS, some databases); for SMB file serving it does nothing. Do not add one by reflex.
The ECC question, answered honestly
ECC RAM detects and corrects single-bit memory errors, and ZFS's defenders often present it as mandatory. The honest version:
- ECC is better for any always-on server, ZFS or not. If your box supports it, use it.
- ZFS is not more dangerous than any other filesystem without ECC. The "scrub of death" scenario is essentially a myth. Without ECC you lose ZFS's guarantee against RAM-induced corruption, but you are no worse off than ext4 or NTFS on the same hardware - and you keep every on-disk benefit (checksums, snapshots, self-healing from disk errors).
Most mini-PCs use non-ECC SO-DIMMs or soldered RAM. That is fine for a home NAS. If ECC matters to you, a used enterprise micro or one of the few Ryzen boards that pass ECC through is the path - but do not skip an otherwise-great box just because it lacks it.
What makes a good ZFS mini-PC
- Two or more drive bays or NVMe slots, so you can mirror. A single disk gives you checksums but no self-healing. NAS-oriented boxes with 2-6 M.2 slots are ideal.
- 16GB+ RAM for a typical pool - and socketed SO-DIMMs if you want to grow it later (many thin-and-light boxes solder the RAM).
- Low idle power, because a NAS runs 24/7 - check the power calculator.
- Enough CPU for compression and your services - any modern box handles
lz4; see the best mini PC for Proxmox if you will also run VMs.
You do not need a monster. An N100/N150 NAS box with 16GB and a mirrored NVMe pool is a superb, silent, ~10W ZFS server for most homes.