[LU-2898] More timely notification of clients in case of eviction Created: 03/Mar/13 Updated: 22/Jan/24 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Oleg Drokin | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Rank (Obsolete): | 6985 | ||||||||
| Description |
|
There have been periodic complaints about lustre not really knowing when it was evicted from a server node, as this could only be known in case an RPC is sent. As such we probably need a somewhat better way of notifying clients of their eviction so that they can reconnect somewhat more eagerly and with a bit less damage to whatever it is that might be running in userspace. |
| Comments |
| Comment by Oleg Drokin [ 03/Mar/13 ] |
|
Fujitsu as the first site to disable pinging in most of the cases hit this esp. often so they created a patch to avert this issue that makes servers to notify MGS of eviction and MGS in turn would send messages to clients to come in contact with servers and reconnect as needed (sort of like reverse imperative recovery I guess). I imagine it might have been much easier to just send a specially crafted ldlm callback to let it know we are evicting him (and this would require a lot less infrastructure changes), but that would not handle a case of severed communication between this particular server and client where as MGS connectivity of both would remain unaffected. Additionally since the case outlined as most severe by Fujitsu is that of a new application started, there is a possible workaround of doing "df" before a new job starts from whatever job scheduling framework might be there, but still there is a feeling that this case should be handled more transparently inside of Lustre. |
| Comment by Robert Read (Inactive) [ 04/Mar/13 ] |
|
My first thought was that this does seem like a special case of imperative recovery, but limited to a specific client, and we could call it "imperative reconnect." Do we understand why these seemingly idle clients are being evicted in the first place? Is there an issue there? |
| Comment by Oleg Drokin [ 04/Mar/13 ] |
|
There might be many reasons for reconnect, I guess. All of them are valid one way or another. Like one-off AST loss or such. |
| Comment by Robert Read (Inactive) [ 04/Mar/13 ] |
|
I agree that reconnects are probably valid, but I'm not sure all evicts are necessarily valid or unavoidable. If they are occurring frequently then we should at least try to find out what is causing them. |
| Comment by Hiroya Nozaki [ 14/Mar/13 ] |
|
Hi, Robert. I've often seen lots of clients are evicted when server recovering. It appeaers that a server cannot catch up with a great number of coming reconnect reqs, about 90k * (target-disks). |
| Comment by Robert Read (Inactive) [ 14/Mar/13 ] |
|
I see. Well, that's not ideal, but at least we know what the reason is. BTW, if the clients are not pinging, how did they all know to reconnect to the recovering server? |
| Comment by Hiroya Nozaki [ 14/Mar/13 ] |
|
Recovering serveres try to retrieve clients' information from last_rcvd files and see if they've been connected. And next, the serveres send callback pings to the clients in order to make them reconnect. oh, and I want you to know one thing, that is ... when we handle a large system like K, ping often eats up lnet resources such as credit |