On 4/2/19 5:38 AM, fanzi2009(a)hotmail.com wrote:
Hi ,
Suppose I have mulitple nfs-ganesha servers behind a load balancer. All nfs clients
connect the load balancer, then balancer choose a nfs-ganesha server and redirect the
request to it. When a nfs-ganesha (Ganesha-A)which has connection with a client restart in
a time, the server enter grace period and read previous clients from backend. However, as
client connection is broken and load balancer choose another nfs-ganesha sever(Ganesha-B).
Even the client want to reclaim open and clock, Ganesha-B is not in grace period. In this
scenario, how could client relaim the resource?
Thanks,
Marvin
If you're going to have multiple Ganesha's serving the same clients,
whether load balanced or with failover, you need to have a system to put
the entire set of Ganeshas into Grace when any of them fails. In this
case, I suspect the load balancer needs to know when a Ganesha fails,
and block any new client connections and not move any clients between
Ganeshas until all the Ganeshas have entered Grace.
Basically, the load balancer moving a client from one Ganesha to
another, for any reason, looks like a failover to NFS, and all the
Ganeshas need to be in Grace before it can happen.
NFS is not well designed for a clustered server setup, so it's a bit
awkward to get it working well.
Daniel