I’m putting together a pair of NAS machines and could use some guidance. Opinions and anecdotes are welcome. If I’ve missed any important considerations, my pros/cons are inaccurate, or if anyone has opinions on which route I should take any and all input is very much appreciated. Please let me know if I’ve left out any pertinent information, thanks!
Goals
-
One machine offsite with family, serving double duty as an offsite backup for me and a local storage target for them.
-
The other will run in my home as a general storage and backup box.
-
I’d like to configure both servers identically so that in future if I want to change something about the setup I can test locally before deploying the change to the remote box.
-
Each host will use zfs for data storage and a separate drive for the host os
-
The two hosts will be connected via VPN for regular replication, probably WireGuard or Tailscale
At this point I’ve landed on four options for base OS:
Options
TrueNAS:
Pros:
-
“Just works” NAS functionality, easy to set up basic shares and basic disk maintenance tasks.
-
Improved discoverability. TN provides all the knobs and buttons I might need to tweak.
Cons:
-
Difficult to automate configuration / easy for me to miss things when replicating config from one box to another
-
Any learning is specific to how TrueNAS does things, likley not very useful outside this context.
-
In the brief, rushed, single experience I had trying to get two TrueNAS boxes to replicate between each other, getting the connection established was a bit of a pain.
-
Package availability seems limited. I would need some research to figure out how to install Tailscale and Sanoid.
NixOS:
config built/tested locally and the SCP’d to the remote
Pros:
- Easy to replicate configuration from one machine to the next
Cons:
-
I don’t actually understand what’s going on under the hood. Could be a pro for learning, but things like updating installed packages is something I’d have to look up.
-
Software availability is a bit of a question. Many packages have been built for NixOS, but I won’t be surprised if something I want hasn’t.
Ubuntu:
configured via Ansible
Pros:
-
Easy to replicate configuration between machines and back up that config in case OS drive fails.
-
Mainstream OS with mainstream support / community, easily Googleable if I run into problems.
-
I think of this as a “regular” OS, so anything I have to learn to accomplish this goal on Ubuntu would be a much more transferable skill than TrueNAS or NixOS.
-
I cannot imagine a package being available for the other options and not also Ubuntu
Cons:
- Discoverability, from the OS, is nil. It’s entirely on me to learn important details of configurations that matter to me.
Proxmox:
Store data on the host’s pool and provide it as a virtual drive to a guest Vm which makes shares available, e.g. Ubuntu or NixOS detailed above
Pros:
-
Can use any OS I like for the NAS functionality, and change that decision much more easily than if it were installed on bare metal. Especially helpful
-
Config backup and restore would be trivially simple.
-
Because of ^, testing different configurations is much easier
Cons:
- One more layer of complicaiton/abstraction. Possibility for unexpected funkyness as a result.