Hi there,
so… I’m sorry in advance but this is going to be a long one.
Background (you can skip this)
I’ve been tinkering building a new NAS for a while and now that I have some time on my hands I finally got around to it. The hardware is done, but I’m still debating on the software side.
So originally I was looking at just installing Rockstor as the NAS OS, the reason being that initially I didn’t want to deal with some of the downsides of ZFS (different sized drives, expanding the pool), and also Rockstor seems to have a fairly solid plugin system based on Docker, and it’s fairly trivial to add and run docker containers as plugins that aren’t in their registry as well.
However, shortly before I set this up I read up again on their licensing and it turns out the stable channel updates are only available with a subscription. I’m not keen on paying for yet another subscription so sadly this is off the table.
TrueNAS Scale or Core?
So I decided to go with TrueNAS after all, as this was my second choice to begin with and it seems to have fairly good support and a big community if help is ever needed. I know OpenMediaVault exists but the website doesn’t tell me much about features specifically regarding plugins.
So I was wondering whether Core or Scale would be the right fit. I will be honest I don’t really understand the difference between the two (other then Core being FreeBSD while Scale is Linux), and their buzzword salad didn’t help me on that either.
Essentially I’m wondering if Scale would be “overkill” for a small NAS with a couple services running, or if it doesn’t really matter.
Plugins and Docker containers
What I need initially would be the following:
- Automatic Ripping Machine (I have a lot of physical media and a drive that can RIP it all)
- Deluge
- jellyfin
- Pyload
- (maybe) Scrutiny (is this actually as useful as I hear some rave about it?)
- Heimdall for easy access to all the services
And down the line:
- Nextcloud
- Paperless-ngx
- piHole
- Syncthing
So I know all of these are available as Docker containers and that is why I was leaning towards Scale because Docker → Linux → Scale makes sense, right? But then I read in wendell’s article TrueNAS Scale: Ultimate Home Setup incl. Tailscale. that apparently it doesn’t just let you willy nilly set up any Docker container, so it seems that point is moot.
It seems I would have to go with a VM that then hosts the Docker containers instead, at which point I wouldn’t think it matters whether this is done on Core or Scale since both can run VMs just fine.
This also begs the question whether it makes sense to use TrueNAS plugins at all or if at that point it’s just more convenient to use the one Docker VM to rule them all.
The next question for the Docker VM would be whether it matters what Linux it’s running. My main OS is Fedora so I was leaning towards Rocky (or Alma), however wendell runs Debian on Scale “because it’s the same kernel version as the host OS”, although I’m not entirely sure how that’s relevant. On Core on the other hand I wouldn’t think it matters at all? It seems everything wendell’s doing in Scale is also possible on Core.
Data Storage
So for storage I bought 2x 16TB drives that will be set up in a mirror configuration for now. When they inevitably fill up I was thinking the drives will have gotten cheaper and I can just buy 4 of them and throw 3 in a new RAID-Z1 pool, and the last one + the two existing drives would be going into a second vdev on that pool. I could also have 2 new + one “old” drive per vdev to spread out failure potential but I’ll see about that when I get to that point. Is that idea sound?
From my frankenstein NAS a couple years back (old MacBook running Windows and all the drives via USB hubs, if you were wondering) I still have all the drives. They are still functioning fine and so I would like to use them for unimportant data, i.e. temporary download storage, ripped media that still needs sorting and the like.
The issue is that those drives are different sizes. I honestly don’t know all the drives off the top of my head (and they are buried in a shelf somewhere right now), but I believe it is 2x 2TB drives and 2x 1TB drives (possibly it’s just 1x 1TB though).
On Rockstor I would have just put them all in a JBOD and be done with it, however as I understand there is no such thing as JBOD in ZFS so I can’t just use the entire drive space. Am I remembering correctly that I would have to create separate pools for every drive to be able to use the full disk space? Is there another way I could “unify” them on TrueNAS?
Boot drive for VM/configuration storage
Another slight annoyance with TrueNAS is that it seems using the unused space on the boot drive for literally anything is not supported whatsoever. So I have a 250 gig SSD, the bootpool takes the entire drive but only uses about 10 gigs of it, which… seems a bit of a waste.
And I know why that is a thing and I also know that iX Systems is not interested in changing this behaviour anytime soon.
There is however a community guide on how to do this:
It does bring up some questions though. First and foremost, in the warning at the top it says:
will break the ability to replace failed drives
And I’m confused on that. Are they referring to only the boot drive? Why would it break the ability to replace failed drives on the data pools that are entirely separate from the boot pool?
Also, has anyone done this? Any experiences with it or things I should watch out for if I were to do this?
I would like to put the VM storage on there and if I’m going to use Plugins maybe also the configuration data that they create. It just seems reasonable to put the frequently used data on the SSD and have the entirety of the hard drive space for media storage.
I’m hoping this is everything at least I can’t think of any more right now.
Thanks for reading and hope for some advice.