export disks from nodes?

hanzl at noel.feld.cvut.cz hanzl at noel.feld.cvut.cz
Tue Jan 15 05:50:53 PST 2002


> # bpsh 0 rpc.mountd --no-nfs-version 3
> svc_tcp.c - cannot getsockname or listen: Invalid argument
> mountd: cannot create tcp service.

Solved! (And NFS server on scyld node works now.)

The problem was triggered by presence of socket on mountd's
stdin. Nasty mountd calls getsockname(0,...) in rpcmisc.c/rpc_init()
called from mountd.c/main(). Normally stdin is not a socket,
getsockname(0,...) returns ENOTSOCK and mountd starts up. If stdin is
a socket, mountd changes its behavior. When mountd is bproc-moved, it
also has socket on stdin, mountd misinterprets this situation and things
go havoc.

Maybe mountd should be changed not to rely on this test (and use
an aditional option instead).

If you do not want to change mountd, you can avoid the problem by
avoiding socket on mountd's stdin. Unfortunately, bpsh -n 0 rpc.mountd
is not enough - maybe it redirects master's /dev/null to slave process
(through socket :) - if yes, maybe bpsh could be changed to use
slave's /dev/null.

To start mountd on slave node, I nfs-mounted /bin etc., did "bpsh 0 bash"
and instructed this bash to run rpc.mountd </dev/null. This works.

Now I have to clean all the experimental mess I made and once this is
finished, I will post here a clean script to start NFS server on scyld
slave node.

Best Regards

Vaclav



More information about the Beowulf mailing list