Re: [go-nuts] Re: mount remote storage without FUSE

2020-11-27 Thread 'Axel Wagner' via golang-nuts
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  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
> 
> .
>

-- 
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.


[go-nuts] Re: mount remote storage without FUSE

2020-11-27 Thread Didier Spezia
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.