Hello nice folks,
I finally have a machine that I can dedicate to be a (local) backup and generic file server for home use. Now I have to decide what I want to run on it.
When I say file server I mean something like nextcloud or synchthing… whatever works for the family to store backups from our (android) phones, plus the possibility to share with friends externally.
The local backup would be regular zfs send (syncoid?) from my main workstation.
The first thing I need to decide is what hypervisor OS I want to run. Here are my options:
debian:
Pro: I know my way around
Con: zfs on root is a bit of a pita
proxmox:
Pro: it’s debian, it makes zfs on root easy, learning to use it would also help with work related stuff
Con: I’m a bit puzzled by it not using libvirt and having its own way when it comes to virtualization
freebsd
Pro: I’d finally have an excuse to learn to use it properly, the different OS would make an obstacle to ransomware and other crap, zfs natively supported
Con: I’d have to learn to use it, would there be any feature issues between zfs implementations?
truenas
Pro: it’s like freebsd above but without the learning curve
Cons: there is still a learning curve, I’m not sure what limitations it would introduce
illumos based os (openindiana or omnios)
Pro: like for freebsd, I’d finally have an excuse to properly learn it
Con: wildly different world, not sure how well linux-branded zones work for virtualization, not sure what features I’d miss in zfs since they cherry pick from OpenZFS and are somewhat behind
openvms
just joking, it doesn’t support zfs
So, what do you think? Are there other considerations to make?
I had the same problem. Proxmox somehow never felt right for me, so I went the way of putting plain Fedora Server on ZFS root. It is a pain in the back end, but just that one time. It feels so good I am slowly migrating all my devices to ZFS. Except my phone and OpenWRT router. But I may try OPNSense again at some time in the future.
I do plan to try FreeBSD next time I will build a separate server box though.
For me, the answer was Debian. I’ve been running Debian as my base OS since I abandoned CentOS but, like with CentOS, I don’t run ZFS on root. I know the benefits, but I like the separation. I run my OS on mdadm, mirrored LVM, etc… something for some redundancy but I stick to something that the OS installer is happy to talk to natively.
I then protect my config data, and can rebuild my server(s) with a clean install and an ansible playbook in well under an hour…
Works for me, but it may not be the solution that works for you
The ZFSBootMenu instructions should at least let you have a clear picture of the path to getting it running on Debian.
And although choice is one of the great things about open source software, I think that it’s worth keeping in mind that OSs are tools and if you have one that solves a problem it’s often worth considering it.
But then again I spent a few days hunting down a bug in a Samba config because I refuse to use Windows so it’s not like I practice that particular preaching myself
Since you don’t want Ubuntu, if you want a ZFS root, I’d strongly recommend FreeBSD. Or GhostBSD, if you want a nice desktop experience on top of it.
Bhyve (FreeBSD’s hypervisor) will be a bit more of a learning curve than KVM is. But it’s honestly not bad, especially not if you’re going into it armed with an easy get-started tutorial, which I’ve got you covered for: From 0 to Bhyve on FreeBSD 13.1 - Klara Systems
So if ZFS on root is really important to you, I’d say FreeBSD (again, or GhostBSD if you want a full desktop interface–you can get that on vanilla FreeBSD, but you’ll have a much better experience with that bit if you start with GhostBSD, which is really just FreeBSD under the hood).
If ZFS on root is a nice-to-have but not necessarily that big a deal, then you can consider Debian again. But keep in mind, if you go Debian, you will occasionally have DKMS issues where your kernel and your ZFS module get out of sync and nothing works until you fix it… which is an even bigger pain in the ass, if you’re doing root on ZFS. If your root is on ext4 (including ext4 on mdraid), it’s not so much of a problem; you just uninstall and reinstall the DKMS module and a few minutes later you’re importing your pool again.
But that’s still a bunch of faff you can avoid entirely, if you choose either Ubuntu or FreeBSD as your host OS.
I’ve had a good experience using Proxmox - it’s just Debian with a prebuilt zfs kernel and a web interface. It doesn’t use Libvirt, but it is still using Linux KVM.
Thanks for the interesting readings, I’ll give them a more thorough pass during weekend.
I’ve been running zfs on root for over 2 years now, on debian stable, and I’ve not had any issue. (On the other hand the latest unstable kernel for riscv fails to compile the zfs module, but that’s another story).
I’ve not decided yet if I want to have a desktop environment on this machine, it can be handy at times but ssh is just fine.
I tend to swallow the pill and use Ubuntu. But if a desktop is welcome and Arch don’t scare you, there’s CachyOS.
But then again, if we’re talking “backup server” perhaps “Cutting-Edge” is not recommended.