Comment by naturalmovement

13 hours ago

Stopped reading at "Debian".

Running ZFS on anything but Solaris/Illumos/FreeBSD is asinine.

ZFS is a permanent second-class citizen on Linux (due to usual open-source politics). This will never resolve.

I don't want to trust my data to some half-assed out-of-tree solution that may or may not break in a week.

FreeBSD ZFS support has matured and is outstanding. Quality-wise it has reached parity with Illumos.

If you can afford Solaris then you're probably not building your own NAS from parts of lesser computers.

Run ZFS backed filestore on FreeBSD, have migrated it to/from Debian. At work and home, not petabyte scale but certainly multi hundred terrabyte. Over 15 years, on over 50 hosts/NAS/SAN instances, different hardware.

Run ZFS on Raspberry Pi, on home builds, on Intel, on AMD, on other ARM chipsets.

I think you're over-stating things. Debian is fine for this. I do think FreeBSD is a better platform for myself.

The code bases adhere (modulo ZFS version numbers) to a spec and you can safely migrate the pools between OS. I've done it multiple times both directions.

You can not do this with BTRFS and other Linux things, I consider this feature of (Open)ZFS a killer-context for me: It's OS portable. I wish Mac OSX hadn't walked out of the room when Oracle went legal.

  • > You can not do this with BTRFS

    There is actually a btrfs driver for Windows [0]. I've used it a few times before, and it works surprisingly well. You probably wouldn't want to use it for any serious work, but that's not because it's technically flawed, but more because it isn't extensively tested or commercially-supported.

    [0]: https://github.com/maharmstone/btrfs

    • There is Fuse support in BSD. I don't consider that a good choice for this role.

  • Sure you can migrate pools.

    Yet everyone is (again) lost in the details and missing the big picture, which is Linux is doing its best to rat fuck OpenZFS at every opportunity, the last of which was the elimination of write_cache_pages in 6.18 behind the GPL iron curtain a mere few months ago.

    I don't know about you but I don't want to build my file storage atop hacks on top of more hacks. The kernel has made it clear non-GPL code is not welcome. Struggles will continue in perpetuity. There are better options.

    • I understand and I agree from an experience point of view it felt very unstable on debian and proxmox that is debian based.

      I wanted to share this experience too as a warning to users investing time and money and possibly hitting instabilities that can cause raid problems and data loss. Don't know why my comment got downvoted, if I knew about this I would have handled things differently.

      I usually recovered the pool thanks to other disks being fine, but beside zfs being super cool in terms of features and flexibility at the beginning it actually felt unreliable and I would not suggest it neither!

      as mentioned it is probably more stable on other families but I didnt experience that yet.

      would freebsd be the most reliable? or which one would have the most reliable zfs module state?

      do other solutions like unraid or truenas or similar use zfs the background?

      1 reply →

> Running ZFS on anything but Solaris/Illumos/FreeBSD is asinine.

> ZFS is a permanent second-class citizen on Linux

Linux is the primary target of OpenZFS [0] [1], and has been since 2020 [2]. It may not be supported by the Linux kernel developers, but it's supported by the ZFS developers, and that's all that really matters.

> I don't want to trust my data to some half-assed out-of-tree solution that may or may not break in a week.

Sure, it's an out-of-tree module, but that doesn't mean that it will randomly break all the time; it just means that you may occasionally need to wait for a new OpenZFS release before upgrading your kernel.

> FreeBSD ZFS support has matured and is outstanding.

Agreed, but Linux and FreeBSD both use the same ZFS [3], so I don't really see how the ZFS in FreeBSD can be better than the one in Linux. The tooling and install procedure is certainly better on FreeBSD, but the actual filesystem code is the same (and is probably slightly more robust on Linux since that's going to be where most of the testing occurs).

[0]: https://github.com/openzfs/zfs#supported-kernels-and-distrib...

[1]: https://github.com/openzfs/zfs/pull/8987

[2]: https://github.com/openzfs/zfs/releases/tag/zfs-2.0.0

[3]: https://docs.freebsd.org/en/books/handbook/zfs/

  • > Linux is the primary target of OpenZFS

    Which is worrying as there's a high risk of linux EEE breaking portability.

If you run ZFS with an LTS kernel you're pretty much fine. Yes new Linux releases will break existing ZFS releases - but the LTS tree is in support for long enough that this is never an issue.

  • Unless you need driver support only found in newer kernels. Then you are screwed.

    Do I want my hardware to work or do I want to be able to read my files?

    • I am a BSD user yet I think this is largely irrelevant in the scope of a NAS which is the conversation we have here. Even in the cases bleeding edge hardware support is relevant, the latest Linux LTS kernel has probably wider hardware support than the freebsd-current at any given point in time anyway.

      FreeBSD is a great choice, but there is no need to invent silly reasons to justify using it.

I run ZFS on Linux and FreeBSD and FreeBSD is less of a faff. If you don’t need docker on your NAS, I would go FreeBSD as well.