Hi team,
Thanks for the tag. Yeah, we’ve been running a custom filesystem on top of gVisor and LisaFS for our own storage path, and I should be able to share more about that soon.
In the meantime, I’d be happy to help pair, brainstorm, or put together a small experimental FUSE-adapter gofer example. Thinking about this as"a proof of shape" rather than a fully supported generic FUSE layer but very much open to feedback and ideas here too.
The goal would be to give people enough working code to see how the fsgofer extension path can host a non-standard filesystem, then others can pick it up and push it further if it proves useful.
Given the work Ayush already tagged in #13216, #13223 and few other older PRs, and taking from Etienne’s idea around a small LD_PRELOAD/libfuse-shim example would be the most useful first step.
Something that runs a tiny libfuse “hello filesystem” style binary, intercepts the libfuse entry points, and translates a small read-only operation set into a LisaFS connection served by the gofer.
Perhaps an example directory along these lines:
runsc/fsgofer/extension/examples/fuseadapter/
BUILD
README.md
adapter.go
fuse.go
libfuse_shim.c
hello_fuse.c
adapter_test.go
Or `runsc/fsgofer/examples/fuseadapter/` if that fits the tree better.
We can even do support overtime for operations like writes, rename, unlink, xattrs,, fd donation even? The README can be clear about those limits and explain that this avoids /dev/fuse and host FUSE mounts.
Curious what others think. I can look into get something going in a draft PR in the next 1-2 weeks too.
Thanks,
Shayon