tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: virtualized nfsd (Re: virtual kernels, syscall routing, etc.)



I almost forgot my annual contribution to this thread (actually missed
it last year, sorry 'bout that).

On Fri Oct 16 2009 at 05:36:40 +0300, Antti Kantee wrote:
> On Thu Nov 27 2008 at 20:32:15 +0200, Antti Kantee wrote:
> > Good news everyone!
> > 
> > I've made the kernel nfs service (nfsd) run in userspace.
> 
> Ok, I've worked on this a little more.  Now it's possible to run a fully
> selfcontained nfsd with a virtualized TCP/IP stack and hence a dedicated
> IP address (the previous solution used host IP and rpcbind in a very
> unholy cocktail).
> 
> [...]
>
> The bad news is that this currently requires a hacked version of the libc
> rpc client.  Without syscall routing mentioned in my first email on the
> subject, we cannot route the syscalls libc makes to the right kernel.
> The good news is that the modifications are selfcontained and I've put
> up a tarball.

So now I worked on it even more, and it's possible to use the stock kernel
nfs server code and stock userland binaries to run the kernel nfs server
in userspace (and, as usual, the stock kernel module binaries on x86).
The instructions are part of the tutorial I published last week:

http://www.netbsd.org/docs/rump/sptut.html#masterclass

If you want to use kernel module bins instead of rump libs, just remove
-lrumpfs_nfsserver and even -lrumpfs_nfs and -lrumpfs_ffs from the
rump_server command line.  The functionality will be autoloaded from
/stand/i386/5.99.48/modules on the host.  On amd64 it'll require some
tinkering, though, since with standard kernel module binaries you need
to load all rump kernel code into the bottom 2GB due to -mcmodel=kernel
and that tinkering is left as an exercise for the reader (you either
need static linking or to teach ld.so to do this).  Still, even without
tinkering the rump libs work just fine on every arch.

Since I can't figure out how to develop things any further than running
unmodified source and binary of every relevant component, I guess here
endeth this thread.

-- 
älä karot toivorikkauttas, kyl rätei ja lumpui piisaa


Home | Main Index | Thread Index | Old Index