On 4/2/19 5:38 AM, fanzi2009@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