On 4/8/19 4:37 AM, fanzi2009@hotmail.com wrote:
Hi Layton ,Dan and other experts, When a client connect Server A, and Sever A crush. So the client try to connect Server B. If Server A reboot very slowly so that Server B don't know it should enter cluster grace period .If so, this client have no opportunity to reclaim previous resource. Is it right?
So, a couple of points here. First, the client can't just connect to server B. That's not part of the NFS protocol. Something has to cause the client to connect to B (such as Pacemaker moving the virtual IP for A over to B, or a load balancer deciding A is dead and sending it's connections to B). This means that whatever is controlling your NFS cluster must know that A is dead before an of it's clients can be sent to B. At this point, that controller must signal all other NFS servers (B in this case) to enter grace *before* it sends any of A's clients to any other server. Once the cluster is in grace, then it can send the client to B. Basically, the cluster goes into grace when A crashes, not when it reboots, and this has to happen before any clients fail over. This doesn't automatically happen; something (pacemaker/corosync, ctdb, kuberneties, etc.) must be controlling the cluster, and sending signals to all the NFS servers to send them into grace. Daniel