Re: Rumprun - Network filesystems

  • From: Antti Kantee <pooka@xxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Fri, 17 Feb 2017 18:52:22 +0000

On 17/02/17 17:51, Kevin Lemonnier wrote:

Reading this : https://github.com/rumpkernel/rumprun/blob/master/doc/config.md
I understand (or I think I do, at least) how to mount a block device, which is a
good start, but is there any way currently to mount an NFS share, or any other
network filesystems (glusterfs or ceph might be a bit much I guess) ?
I assume NFS is the easiest way to have multiple unikernels access the same 
files
in RW. It also makes HA pretty easy, it doesn't matter where it's booted as long
as it has access to the network.

Well ... mounting a file system involves essentially three components: 1) the driver which talks the file system protocol 2) the mount utility which sets up the driver 3) the "will to act" which comes from an rc script or config or manually run command or whatever.

The good news is that "1" and "2" for NFS are supported by rump kernels. The bad news is that they are not supported by Rumprun, and neither is "3". One weakness with the current Rumprun config/setup/deployment scheme is that it completely ignores "1" and "2", so just concentrating on "3" won't really help much.

If you really want to do some work, I'd start by trying to get mount_nfs supported by rumpctrl. Alternatively, install a NetBSD virtual machine, and "hijack" mount_nfs and point it at your rump kernel, a bit like described in this document from 2011:
https://www.netbsd.org/docs/rump/sptut.html#masterclass

Also include the NFS driver component in your Rumprun instance, and enable sysproxy listening.

It might be as simple as that to test things out (i.e. 1+2, no 3), or it might not. Either way, in the spirit of open source, when it doesn't work, you get to fix it :/

At least glusterfs might work using the same principle, except there are a lot more details to consider and places to hang yourself.

Other related posts: