First ZFS NAS Build - What Am I Missing?

Hello All,

I’ve been researching and reading all things ZFS to try and come up to speed with it so I can build out my new “hopefully simple” NAS.

I currently run an Unraid Box that has all my storage and compute tied together. It’s hardware is aging so I’m preemptively starting to build new and try to go with Open Source / simple solutions vs. the all-in-one pieces.

This first NAS Build is meant to act purely as an “important” (photos/documents/videos/etc) storage box that will run a few CRON Jobs for offsite backups (Restic/Borg/etc) and may eventually act as a NFS target for a Proxmox Cluster for anything that I want to be HA. I am on 1G network so a bit limited but not doing anything crazy.

A second NAS build out will probably be a SnapRaid / MergerFS / BTRFS for bulk storage that’s more easily replaceable. Really liked the build outlined here.

But back to this first ZFS build:

  • Debian 13
  • Ryzen 5600GT
  • Asrock b550m-itx/ac
  • 2 x Inland Premium 256GB SSD
  • 4 x 10TB Seagate SAS Drives
  • LSI HBA in PCIe Slot for SAS Drives

I read numerous, fiercely debated, threads on Mirrored Pools vs. RAID-Z2. I would flip flop between each thread but ultimately landed on going the RAID-Z2 route. I’m fine with the “performance” hit and the goal of this box is to be my main storage box for important digital artifacts. And 19TB usable is plenty so expansion is not top of mind or a concern for me.

I also started thinking about the Root OS setup. I initially thought a ZFS Mirror for the Debian OS would be ideal but quickly found the cons that come with it. Mainly having to sync the non ZFS ESP partitions and set up boot entries/priority. So I instead started down the path of just using a single SSD for simplicity and using my ZFS Data Pool as a replication target for the ZFS Root Pool in the event the sole drive fails.

Rambling a bit but actual questions I’m looking for feedback on:

- RAID-Z2 for Data Pool is an acceptable choice given the use-case?

- Single SSD for Root ZFS Pool is fine as long as I find a way to replicate/back it up?

- Root ZFS Pool replication to Data ZFS Pool is an acceptable/common practice instead of running a mirror for OS / UEFI partitions?

- What specific ZFS tuning options should I look into for this application? I see a lot about atime, compression, deduplication, etc but don’t know where to start here.

- I plan to use ZFSBootMenu - anything to look out for here? I was going to use the OpenZFS and ZFSBootMenu guides to get this setup.

Appreciate any and all feedback. Thanks in advance!

The trickiest part of what you want to do, is by far, the linux root on ZFS. You can use ZFSBootMenu, or the manual OpenZFS guides to achieve a working root on ZFS. Maintaining it can be fraught with peril. Accepting kernel or zfs updates without confirming compatibility can give you a system that doesn’t boot. Recovering from that can get complicated, if not failed beyond repair. It’s not the fault of zfs or linux, rather the licensing caution that gives us this fuzzy disconnect. ZBM using Debian is the way I would go if I had the interest in going down this road again.

Everything else you have in mind should work out fine. Get familiar with pool & dataset options so that when you create them you have things tuned best for your use case.