Does it make sense to install ZFS on my system

I dedicated a AMD Ryzen 5 4600G with 32 GB of RAM as my YuNoHost home server.

I currently have vanilla YuNoHost installed on the (which also means stock Ext4 partitioning):

  • 1 × 1TB M.2 NVME SSD (Samsung Evo Plus 970)

In addition – once I’m done with migrating from my old ARM servers – I will have the following drives also available for use:

  • 2 × 1TB 2.5" HDD (WD Red)
  • 1 × 500MB SATA SSD (Crucial MX500)

As such, I am wondering if it makes sense for me to connect all of these disks and set it up as ZFS.

What would be the up- and down-sides of that?

And how would one go about migrating from ext4 to ZFS …or should I rather set up ZFS on all the other drives, copy everything over and then add the NVME to ZFS?

(or completely forget this idea, because it’s likely to blow into my face eventually and I won’t know how to fix the mess)

Relevant: I have some but not a lot of experience with Btrfs and no experience with ZFS. I also have a long history with Linux and have self-hosted for several years now, but am also not a professional

Hey @hook, I merged to ZFS due to mitigate HD failures* shutting down the server.
Im not an expert, so cant really go in to details. …but I think you should go to practicalzfs and ask for best way to migrate or other detailed questions on ZFS.

edit: using two disks for both YH OS and Storage volume as @cocoyuno points out below.

It’s hard to answer this question without the full picture… ZFS has plenty of powerful features but it needs careful planning as the way disks and filesystems are managed are really different. And once you have chosen a way to to set vdevs and zpools, it’s not easy to change.
A couple of more comments:

  • if you are in single-disk mode, ZFS will not really protect you against hardware failure
  • there is an old debate about whether you need to have RAM with ECC (error checking) when using ZFS, but basically RAM errors can have very bad consequences

There are other good links (in French and English):

1 Like

i just read about ZFS today. i think ZFS is too much complexity unless you’re going to have at least 4 drives and use ECC RAM.

probably RAID1 with BTRFS is good enough for you.

good PDF for newbies to understand how zpool and zdev’s work.

i was considering trying ZFS but then i saw the ECC RAM issue and that’s too rich for my blood.

ECC RAM (and as such ZFS) does seem a bit overkill.

I may perhaps really go BtrFS RAID, since I’ve been using it on my laptop too, so it would be easier to maintain two machines with the same file system.

But I also read that Btrfs RAID1 can be a bit iffy when used on more than two drives. And I think Btrfs cannot auto-magically relocate between slower HDD and faster SSD in order to speed up I/O.

Will need to do some more research, but an early brainfart idea:

  • buy another 1 TB SSD and put it into Btrfs RAID 1 with the first one (might be a bit of a pain migrating from Ext4 though; also costs)
  • put the 1 TB HDDs into a separate RAID 1 and mount those as bulk storage or for storing backups
  • use the 500 GB SSD elsewhere :person_shrugging:

I’m intrigued by BCacheFS too, but it’s probably way too early … great to keep an eye on though.

1 Like

ZFS purists don’t like BTRFS (I will not go into the argument) but yes, BTRFS has got those interesting capabilities for servers.
You can arrange your datasets in subvolumes and you can create snapshots which is really a powerful feature. Typically you snapshot your system before any upgrade. If the upgrade goes wrong you can revert to the previous state of your system immediately. Same with users data. Very easy to revert to a previous state (as long as you send snapshots regularly to a back-up drive… but there are tools that do that very well)

1 Like

Would be cool if YuNoHost integrated that :smiling_face:

1 Like

1 Like

Yes, agree.

That’s a whole other level of complexity I’m afraid :confused:

It won’t do it, indeed.

Absolutely, and I don’t expect it to happen any time soon. Would be cool though :slight_smile: