Best NAS OS for my use Case

Hi I’m currently build a NAS. And i need some help in deciding what the best OS for my use case would be.
I already decided on the hardware (Ryzen 1700 + 16gb ECC).
The build will be completely headless with out any GPU.

The case has 8 Drivebays that i plan to fill in the future. Due to budget constrains i will only start with a single HDD. (Which forces me to not use UnRaid & FreeNas, right?)

Because i want to expand the Storage later on i believe that some system based on BTRFS would be my best bet.

But of course the RAID 5/6 issues are not yet fixed and its still not the stablest FS as far as i know.

So i’m kinda out of options on my OS:

  • Rockstor won’t run on Ryzen because its based on a really old Kernel…
  • OpenMediaVault runs on mdadm so i won’t be able to extend it later on or change the raid level.
  • FreeNas is based on ZFS and as far as i know i cant upgrade to a different RAID level later on (and i’m also not to pleased with using FreeBSD
  • UnRaid can be run with BTRFS. But it will still use the software Parity solution. Which requires at least 2 HDD (correct me if i’m wrong)

So i’m kinda leaning to just using Debian Stable and just set up everything that i need manually.

But well it sounds like a lot of work and i certainly would prefer a clicky and easy solution.

Any recommendations on what the correct choice for my use case could be?

Can you clarify a couple of things please?

  • what will you be using the NAS for? If just archive data or media sharing then your OS choice is fairly neutral but if you want to run a load of VMs you may want to go with a dedicated hypervisor and put your NAS as one of the VMs

  • when you say you will start with one disk do you mean one disk for Data shares and a separate drive for the OS (recommended), or are you chucking everything on one drive?

I wouldn’t get yourself stuck with OS choice just to make pool expansion easier. If you are buying more drives in the future just buy in bulk a set of identical drives at that point and copy your data from your existing pool to it. Leave you old drive as a backup or hotspare. Expanding pools is high risk whatever OS you use and your data will always be more valuable than n+1 hard drive capacity.

I’m just planing to run some docker containers on it. And store some files on it mostly not so important media files. And backups for my other computers.

I will use a m.2 boot ssd and one storage hdd.

Buying more drives in bulk is the way i won’t go to for anyways. So your argument definitely got its point. But wasting one harddrive slot when i only have 8 Bays seems like a waste to me. I guess i should also mention that i will most likely buy a SSD for caching when extending my storage.

EDIT: Just realised that i could also go for 2 x 4 Drive Pools. So my first Drive wouldn’t be wasted because i could just create the first Pool Copy everything over to that one and then create the second one. Do you think this would be a viable option?

Thanks for clarifying.

In this case your OS choice is flexible as you can always destroy the pool / move it to another machine if you want to reuse the drive without breaking the OS. If you use Unraid or FreeNAS you can move the data disk into a new pool later once you get your data off. Note you dont have to waste your M.2 Slot for the OS, as you can put it on a USB pendrive (with a backup) and save your fast storage for caching.

Remember that caching on a NAS is not the panacea that we all want it to be. On Unraid it may speed up certain reads and writes. On Freenas for Docker it probably wont do anything. One day Freenas may add an actual caching layer, but today is not that day.

Yes absolutely, but think about your drive usage as an unbalanced pool may be better. assuming 10TiB disks your four disk pools means:

  • Raid 10 equivalent (two mirrored 2-disk striped vdevs) gives 20TiB per pool.
  • RaidZ1 or Raid 5 (1 parity disk in Unraid) of 3 disk equivalent stripes with one redundancy gives 30TiB per pool

You would get more useful storage from unbalanced use. ie 6 disks in your main pool for phat storage or higher resilience (RaidZ2 or 2 parity disks, then leave your old drive and a mirror as “other storage”, such as a steamcache. I’ve got 2 pools on my NAS, one for important stuff and the other for CCTV data. I don’t need them to be balanced.

I don’t see having 1 in 8 redundant cold / hot spare as that wasteful. Seems a reasonable risk tolerance to have say 6 or 7 drives active and one ready to go if something goes wrong, or if you need to build a pool quickly for scratch work.

Hopefully useful.

Thanks a lot for your anwser.
I was thinking about using the SSD as Boot drive because i want to run the docker containers directly on it. This docker containers will have many read write operations (DB and similar stuff).

So i guess i just go with some random os for the moment and migrate later one. Because i would need atleast 2 HDDs for Unraid and FreeNas.

You can create a pool with just one drive using FreeNAS, and then when you get another drive attach it as a mirror for redundancy. And you can expand the pool by adding more mirrored pairs over time.

1 Like

For FreeNAS, you can’t use your boot drive for anything pool related, like VMs/Containers, and I believe UNRAID is the same way. Additionally, you’ll not really be able to run Docker on FreeNAS; FreeNAS uses the jail system for containerization. You’d likely need to use UNRAID for using docker directly.

Another option would be to run a hypervisor like Proxmox, VMware ESXi, or UNRAID, have 1-2 SSDs for your VMs like Docker, and then have your NAS as a VM with an HBA passed through to it for mass data.

This if you’re going to try the FreeNAS approach

Alright i guess i just go ahead and try FreeNAS .
As long as i don’t put all my data on it. Migrating to something different should be easy anyways.

Thanks for the help guys!

If you’re wanting to use FreeNAS and run Docker, then I’d suggest creating an Ubuntu server VM in FreeNAS and installing the docker module on that for your testing :slight_smile:

Also, you could make a single drive pool for your SSD for your Ubuntu VM and docker stuff, and another with your single 3.5" drive for your regular storage. This way you can expand either one independently