I have four drives in a btrfs raid1 setup, and they are nearly full.
Due to this (and my inability to leave well enough alone), I’m thinking about converting them to zfs raidz1 (effectively raid5) to regain some space lost to what is effectively raid10 on btrfs.
My first step will be converting the filesystem to raid0 to eliminate duplication, then i will remove 1, then a second drive. Create a zfs stripe on those drives, copy everything over, then convert all the drives to raidz1. That should give me another ~16TB.
I have backups of the important stuff.
Any gotchas to be aware of?
Is installing from endeavouros/zfs-dkms the suggested way to install zfs?
Do I need to worry about kernel updates (or lack thereof) breaking zfs?
The drives in question:
NAME MODEL SIZE
sda WDC WD161KRYZ-01AGBB0 14.6T
sdb WDC WD161KRYZ-01AGBB0 14.6T
sdc WDC WD161KRYZ-01AGBB0 14.6T
sdd WDC WD161KRYZ-01AGBB0 14.6T
Is it currently possible to convert a stripe to raidz1?
There is no right answer, but I would recommend using the archzfs repo along with the associated repo for the kernels.
This will automatically hold back kernel updates until the zfs modules are ready and make upgrading much more seamless.
If you zfs-dkms, yes.
Lastly, keep in mind that several settings on zfs can’t be changed after pool creation so make sure that you look into the best way to set those for your use case before starting.
*) If you use zfs-dkms you need to take care about the kernel version. e.g. currently zfs does not support kernel series 6.8. If you use the archzfs repo, like @dalto suggested, the repo is doing that for you if you install their kernel and zfs modules. I personally use zfs-dkms along with the lts kernel series. That always works.