by the way, ZFS is getting raidz expansion, the only question is when. It’s been in the works for many years and there’s a GitHub PR.
So it might actually not necessarily be the worst thing in the world to maybe do 4disk ZFS in an 8 bay case, and bet on ability to expand disk by disk, at some point you’ll want to get a second machine probably and upgrade the NAS motherboard anyway.
Solution 1:
For example if you got a machine with space for 8 drives, get 4x16TB disks to start.
And then you went with e.g. Arch Linux and RAIDz. (48TB usable).
This time next year, if you need to expand, you can get 1 more 16T disk, and then another and another and another… so you end up with 7x16T usable and one drive for parity.
It wouldn’t exactly be a cardinal sin to grow raidz1 to 8 disks of equal size over time, … it’s probably safer than if you bought 8 disks at the same time because of bath tub curve.
Also, ZFS supports native encryption, and it makes it easy to carve out a block device.
Trouble is, you kind of need to stick to 16T disks regardless of what’s a good single disk price on the market at the moment when you end up needing extra space.
Solution 2:
follow perfectmediaserver.com guide and start with 3 disks then buy 4th which is larger, then buy 5th which is larger, … and so on… always buy the cheapest dollar/byte disks.
Then if your storage stops growing, remove old disks, downgrade to fewer disks, or get a more power efficient, smaller motherboard and case and so on…
… it’s the ultimate in flexibility really.
Each disk can have a gpt partition table with:
- EFI partition
- boot partition for kernel,
- LVM partition for actual storage
- btrfs root for the os (expandable and realtime raid-able encrypted)
- another LVM partition for bulk data, encrypted, as ext4 or xfs.
This is probably the most flexible setup, as you can swap distros on the fly, carve out more partitions or resize them up or down easily with LVM without having to move all the partition data around.
I’d use Debian on it, or Ubuntu server.
Again, please please please, try doing a manual install and all other stuff in a VM, see how it goes. It’ll go much faster when you want to set it up for real later on and there’s less of a chance you’ll paint yourself into a corner due to inexperience.
…
There’s a YouTube channel called EF Linux made simple where Ermanno has like 20 variations of various installs that you can look through and follow along and you can make your own tweaks along the way… and he’s not the only one doing this stuff.
If you want to run your own services … that comes with a bunch of complexity on top anyway, … the actual initial installation is easy in comparison… I’d avoid unRAID, OMV and so on for that reason… if you want to dump data on a box and that’s all … great… if you want anything else … ugh.
For example, jellyfin with quicksync acceleration, how do you get your own recent kernel and how do you pass it through to jellyfin to be able to use? In roll your own distro sense, it’s easy… With proxmox or truenas scale… or similar - No idea whether it’s even possible, let alone whether you’d make the whole thing super fragile and impossible to cleanly upgrade.