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.