On 4/8/19 4:37 AM, fanzi2009(a)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