GEFS on OpenBSD: A Early Preview

(marc.info)

67 points | by sippingabonedry 3 hours ago

12 comments

  • yjftsjthsd-h 2 hours ago
    From https://orib.dev/gefs.pdf -

    > While snapshot consistency is useful to keep data consistent, disks often fail over time. In order to detect corruption, block pointers contain a hash of the data that they point at. If corrupted data is returned by the underlying storage medium, this is detected via block hashes. And if a programmer error causes the file system to write garbage to disk, this can often be caught early. The corruption is reported, and the damaged data may then be recovered from backups, RAID restoration, or some other means.

    Okay! It's got CoW, snapshots, and data checksums. Therefore, it's good enough to compete with ZFS while being way smaller and permissively licensed. Now I just want it ported to Linux and the other BSDs:)

    • atmosx 1 hour ago
      I don't think it will compete with ZFS or BTRFS (e.g. I don't think ppl will use GEFS over ZFS or BTRFS for a storage server), but it's a modern, much needed FFS replacement.
      • yjftsjthsd-h 59 minutes ago
        Who said anything about storage servers? I'm using zfs on laptops and desktops right now because I want data checksums and a filesystem that doesn't have a history of breaking horribly (I dropped btrfs after the second time it hosed my rootfs). Given the license issue with zfs - and in particular, the technical fallout like needing dkms - I'd be very pleased to replace it.
        • sippingabonedry 50 minutes ago
          > I dropped btrfs after the second time it hosed my rootfs

          btrfs fans use the "you're using it wrong" excuse a lot.

          I recall a failure mode that activated when you fill the FS to 100% and their response was "you should never fill a filesystem to capacity"

          • jeffrallen 20 minutes ago
            Otoh, good luck bringing a CoW filesystem back from 100%. Delete a file? Sure, let me just make a copy of all the metadata that was pointing at it using... the zero blocks I have left.

            Tradeoffs are a bitch, bitch.

        • atmosx 32 minutes ago
          > Who said anything about storage servers?

          I did.

          > I'm using zfs [...]

          ZFS is primarily used on single-storage appliances.

        • whalesalad 38 minutes ago
          I have been hearing noise recently that btrfs is risky and unstable but (knocks on wood) i've been running it for years now with zero issues. What am I missing?
    • mmooss 1 hour ago
      I've always wondered about similar designs: Doesn't calculating a hash of every block, on every read and every write, create lots of overhead? Why isn't that a problem?

      Some systems have dedicated crypto co-processors for confidentiality (encryption) - e.g., I think drives with FDE, and I think Apple Silicon SoCs might have them. Can those be repurposed for hash calculation? What about systems that lack them?

      • chasil 57 minutes ago
        Both ZFS and modern btrfs support a large set of checksums.

        Both implement sha256, which does impose a heavy speed penalty.

        ZFS allows you to adjust the checksum on the fly, using something faster (Fletcher) if desired.

        In btrfs, a global checksum is set at filesystem creation; xxhash is the best modern option.

        There is a website: https://xxhash.com

        Deduplication adds concerns for a strong hash free of collisions.

      • yjftsjthsd-h 53 minutes ago
        Yes, it adds some overhead, but it's fine IME. Granted, it helps that compression can significantly speed up performance. (I was very confused the first time I saw ZFS reading data faster than its drives were physically capable of, because it turned out the CPU could decompress faster than the drives could read)
  • g0xA52A2A 2 hours ago
    There was a recent presentation on this at EuroBSDCon for those interested.

    https://events.eurobsdcon.org/2026/talk/NVMSCJ/

    https://exquisite.tube/w/3QQimMdswWJxrsPaJtak2u

  • dchest 2 hours ago
  • moody__ 2 hours ago
    I've been following (and helping test) gefs on 9front for a while now. 9front's nightly builder has been running off of it for quite a while. Ori's done a fantastic job.
  • sippingabonedry 3 hours ago
    GEFS: A Good Enough File System https://orib.dev/gefs.pdf
  • fn-mote 2 hours ago
    Is there any chance of proving a filesystem is correct?

    Is this one simple enough that it won’t have bugs??

    Given the issues with well-known filesystems like ZFS and BetterFS, why shouldn’t I expect data-losing bugs in this one?

    • spijdar 2 hours ago
      I think the premise is basically yes, you should assume there will be data-losing bugs, but:

      1. The filesystem should be reasonably good at detecting an error/corruption state and informing you, and

      2. You should have backups of said data stored elsewhere, and backups should be tested (e.g. to verify that data can be read back)

    • cyberpunk 2 hours ago
      What well known data-losing bugs are there in zfs? It can be slow, and resource hungry, but afaik it's about as safe as they come (and I've been using it in prod since solaris 10)
      • sellmesoap 1 hour ago
        I never dug into the failure, but I once had a ZFS get to a state where it would crash the kernel on mount, I was able to mount it with checks turned off an recover what was important, but it was a spooky experience. I live on the bleeding edge of file systems for my desktop, I was on reiser4 back when that was fresh, I daily drive bcachefs (it's been great!) Mostly I've been lucky, I don't usually keep an openbsd system around, but I love FreeBSD and I'll give OpenBSD a try with GEFS for sure!
      • alethic 1 hour ago
        There was a long-running data corruption issue with non-raw sends that was finally found and patched in 2025: https://github.com/openzfs/openzfs-docs/issues/494. But I agree, it's about as safe as they come. I trust it far more than any other file system, in large part due to all its built-in redundancy and the way it makes backups trivial (encrypted sends <3)...
      • yjftsjthsd-h 57 minutes ago
        Its native encryption has something of a poor history
  • calvinmorrison 1 hour ago
    I have been running GEFS for a number of days and it hasnt crashed

    248 ├gefs [ctl.1]

    249 ├gefs [mutate.2]

    250 ├gefs [sweep.3]

    251 ├gefs [tasks.-1]

    252 ├gefs [readio.4]

    253 ├gefs [syncio.5]

    254 ├gefs [srvio.-1]

    255 ├gefs [stdio.-1]

    up 13 days, 15:34:25

    send it to production!!

  • geoffbp 2 hours ago
    > The git repo is hidden on shithub

    Heh :)

    • irusensei 12 minutes ago
      Is this classic 9front tomfoolery?
  • doublepg23 2 hours ago
    This is great timing considering I'm currently dealing with FFS corruption after my OpenBSD server lost power during a storm.
    • daneel_w 1 hour ago
      Are you sure it's not just a dodgy SSD that simply failed to persist data when losing power mid-write? I've had my share of sudden power cuts upon OpenBSD during the past 20+ years, and FFS has so far never gone corrupt on me.
      • doublepg23 1 hour ago
        I do not believe so?

        Drive is a 2TB Intel 670p NVMe SSD (INTEL SSDPEKNU020TZ) with 9078 power on hours and 42TBW - so pretty spry, but not at the start of the bathtub curve either.

        It was mounted as fast storage for a Bitcoin node.

        Perhaps the only 'unique' thing is it is using a NVMe to PCIe adapter card (Synology M2D20) due to this being my "legacy" server that's still rocking a Broadwell chip.

  • BoingBoomTschak 1 hour ago
    What a wonderful surprise! The nearest thing seem to be modern (v5) XFS + dm-integrity, I'll have to see a comparison once it's stable enough.

    A thing ZFS suffers from is fragmentation (no way to defragment in-place nor preallocate so stuff like bittorrent doesn't play well with it), which it justifies with its CoW design, wonder if/how it mitigates the problem.

    • kjs3 1 hour ago
      If we're looking at 'future' filesystems, is fragmentation really an issue in an SSD world? Not that there isn't a lot of spinning rust (and will be for quite a while), I don't think it's unreasonable to assume "most block storage is going to be SSD in the future" when allocating resources to priorities.
      • BoingBoomTschak 1 minute ago
        The day I can furnish my NAS in SSDs for roughly the same price as HDDs probably won't come before any current filesystem is obsoleted for some reason or another, methinks.
  • metalforever 2 hours ago
    Finally . Very good work team !
  • anthk 2 hours ago
    Ori B. it's a great programmer, he fixed a small bug on the earlier GeFS on 9front versions in no time. It worked fine in my n270 based Atom netbook under 9front, so it will run perfectly well under OpenBSD in a near future.

    It isn't as resource heavy as ZFS, and it will be more reliable than FFS, for sure.