Should we fork GlusterFS? - "FreeBSD Replicated File Service" (FRFS)?

I think it's viable consideration. As the port maintainer I've seen first hand what the "behind the scenes" process is upstream. They haven't rejected FreeBSD as a target, but at the same time they are unwilling to provide a sufficient amount of resources and attention towards making sure it works properly. It's perfectly understandable, the primary focus of GlusterFS is Linux.

I don't think we gain anything by following the main GlusterFS project. In fact, I think it holds back the potential of what could be a tier 1 replicated file service for FreeBSD. I haven't seen much innovation being done on GlusterFS in the past few years. If anything, the 'innovation' is very Linux specific. By forking GlusterFS, we could remove a lot of the buggy code that's designed to work only on Linux.

As many here are aware, the net/glusterfs port is currently broken, but not by an upstream change. The breakage was a result of some change in FreeBSD ports or dependency. One of the reason's I'm hesitating to fix it, is that GlusterFS on FreeBSD never really worked to begin with. I don't want to give people a false sense of security by putting something out there that's going to result in data loss (it will).

There's a lot of spaghetti code in the startup/initialization stage of GlusterFS that makes porting the IO multiplexing to kqueue/kevent challenging. Forking GlusterFS and reworking that code to work on FreeBSD without having to worry about Linux would be the optimal way forward in my opinion. We can't use the shim for reason's I've already shared in other posts (ie. process forking).

My premilinary roadmap (should this happen)

For an MVP
  1. Remove Linux specific code
  2. Intigrate FreeBSD 'hacks' and patchs into main codebase
  3. Remove 'poll' system calls code (it's broken beyond repair)
  4. Replace IO multiplexing from epoll to kqueue/kevent
Afterwards, I'd like to:
  1. Evaluate state of supporting tools in code base
  2. Fix remaining bugs/porting to FreeBSD
  3. Look at the possiblity of converting the gluster fusefs driver into an actual kernel module

While I can handle the MVP for the most part, I don't posses the skills/experiance of a seasoned C developer. So this may take a few years since this is a side project for me.

Would there be any interest and support for such a crazy idea?
 
Hi tuaris, I'm shocked ... glusterfs/fuse on FreeBSD isn't working? I was using it for some years now, without any issues :oops:.

I'm trying to get the port running again on FreeBSD 14.2 (without the quirks I'm using right now). I think, that adding LDFLAGS=-Wl,--undefined-version will fix the build issues. Would you be so kind to restore the build?

Beside the issues with the broken port, I would like to see an upgraded port to 10 or 11. GlusterFS 11 compiles without any issues/changes on FreeBSD 14.2. A quick test has shown, that I could create, start, and use volumes (single node without replication). Is there any documentation what the existing patches are good for? If not, could you elaborate this here a little bit?

You've written, that the port wasn't working. What are the open issues from your point of view? Where is the non-working stuff? Are there any test specific to GlusterFS on FreeBSD?
 
Back
Top