Yeah, NFS would work as well (similar tradeoffs as 9P, though the linux kernel driver might perform better because it's more widely used).
nbd is not suitable for the use case, I think :) I'd also recommend against using my nbd package if performance is the goal - it is not at all optimized, I wrote it mostly as a tool to test filesystem implementations and things that depend on certain filesystem semantics. On Fri, Nov 27, 2020 at 11:26 AM Didier Spezia <didier...@gmail.com> wrote: > One possibility is to use the 9P client of the kernel and implements a 9P > server in Go - there are a few 9P libraries for Go around. > I doubt it will be more efficient than FUSE though, and btw FUSE is > largely based on the ideas promoted by 9P. > > Another possibility is to use the ndb client of the kernel and implements > a ndb server in Go. See Axel's ndb package at > https://github.com/Merovius/nbd > Now ndb exposes a block device, not a filesystem. I think I would be quite > difficult to emulate the format of one the filesystems supported by the > kernel and implements it in this Go ndb server. > > Regards, > Didier. > > > > > Le mercredi 25 novembre 2020 à 09:38:02 UTC+1, ChrisLu a écrit : > >> Hi, Gophers (who are also good in C), >> >> Currently I am using FUSE to mount and write to remote storage. >> The library I am using is Basil Fuse. The performance is good as far as >> FUSE can go. >> >> User -> file.write() -> Linux Kernel -> Virtual File System -> libfuse -> >> FUSE -> DFS Client(in Go) -> Remote Storage >> >> However, I am researching how to write directly through linux virtual >> file system, skipping FUSE layer. Seems all similar libraries are in C. Is >> this even possible in Go? >> >> User -> file.write() -> Linux Kernel -> Virtual File System -> DFS >> Client(in Go) -> Remote Storage >> >> Thanks! >> >> Chris >> https://github.com/chrislusf/seaweedfs >> >> -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/835bbe35-6845-4d44-98b9-83a07c86b79bn%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/835bbe35-6845-4d44-98b9-83a07c86b79bn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAEkBMfGUvxmx5%2BhB4uuu6y6qMc6NihhSHmStFs4trYygoZh2QA%40mail.gmail.com.