How are client requests load balanced across multiple nfsd processes?

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

 



However inappropriate this question is, I'm asking anyway, as this has been driving me nuts for 2 weeks and I can't find an answer.

When I set

  RPCNFSDCOUNT=16

what I thought this did was spin up an nfsd thread master with 15 threads and the thread master would pass out client requests to the threads, but looking at /proc/$PID/status -> TGID clearly indicates these are all entirely separate processes. (I wasn't sure if ps showed threads as separate processes; apparently it doesn't.)

So the question is how do different client requests get farmed out to different nfsd daemons for service? Who's actually listening on port 2049?

If there's a reference other than the source code where I can read up on this, I'm interested. I looked in a couple of linux programming books including Richard Stevens and couldn't find what I was looking for.

This was all prompted by some vendor trying to sell me an EC (Erasure Coding) n+m system who commented "NFS isn't multi-threaded, NFS can only communicate with one server, for a shared/mounted filesystem, so it will always be limited to the speed of that NFS Server. POSIX/Multi-threaded means the filesystem is parallel and can be reading/writing to multiple nodes at once in a storage cluster/setup. The opposite of NFS."

I think pNFS addresses this, but then how does one implement pNFS?





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux