Project

General

Profile

Actions

Feature #61866

open

MDSMonitor: require --yes-i-really-mean-it when failing an MDS with MDS_HEALTH_TRIM or MDS_HEALTH_CACHE_OVERSIZED health warnings

Added by Patrick Donnelly 10 months ago. Updated 1 day ago.

Status:
Fix Under Review
Priority:
Immediate
Assignee:
Category:
Administration/Usability
Target version:
% Done:

0%

Source:
Development
Tags:
Backport:
reef,quincy
Reviewed:
Affected Versions:
Component(FS):
MDSMonitor
Labels (FS):
Pull request ID:

Description

If an MDS is already having issues with getting behind on trimming its journal or an oversized cache, restarting it may only create new problems with very slow recovery. In particular, if the MDS gets very behind on trimming its journal with 1M or more segments, replay can take hours or longer.

We already track these warnings in MDSMonitor so do a simple check to help the operator or support folks not shoot themselves in the foot.

Actions #1

Updated by Venky Shankar 10 months ago

  • Category set to Administration/Usability
  • Assignee set to Manish Yathnalli
Actions #2

Updated by Venky Shankar 8 months ago

  • Priority changed from Urgent to Immediate

Manish, please take this one on prio.

Actions #3

Updated by Manish Yathnalli 8 months ago

  • Status changed from New to In Progress

I will take a look Venky.

Actions #4

Updated by Venky Shankar 2 months ago

  • Assignee changed from Manish Yathnalli to Venky Shankar
  • Backport changed from reef,quincy,pacific to reef,quincy
Actions #5

Updated by Venky Shankar about 2 months ago

  • Assignee changed from Venky Shankar to Rishabh Dave

Rishabh, please take this one.

Actions #6

Updated by Patrick Donnelly about 2 months ago

  • Status changed from In Progress to Fix Under Review
  • Pull request ID set to 56066
Actions #7

Updated by Rishabh Dave 16 days ago

Patrick, should we include other health warnings too? I didn't include it in PR because it was mentioned on this ticket. Since Venky too brought this up here, I think it's worth discussing and writing a fix for it.

Copying Venky's comment below -


What about other health warnings?

enum mds_metric_t {
  MDS_HEALTH_NULL = 0,
  MDS_HEALTH_TRIM,
  MDS_HEALTH_CLIENT_RECALL,
  MDS_HEALTH_CLIENT_LATE_RELEASE,
  MDS_HEALTH_CLIENT_RECALL_MANY,
  MDS_HEALTH_CLIENT_LATE_RELEASE_MANY,
  MDS_HEALTH_CLIENT_OLDEST_TID,
  MDS_HEALTH_CLIENT_OLDEST_TID_MANY,
  MDS_HEALTH_DAMAGE,
  MDS_HEALTH_READ_ONLY,
  MDS_HEALTH_SLOW_REQUEST,
  MDS_HEALTH_CACHE_OVERSIZED,
  MDS_HEALTH_SLOW_METADATA_IO,
  MDS_HEALTH_CLIENTS_LAGGY,
  MDS_HEALTH_CLIENTS_LAGGY_MANY,
  MDS_HEALTH_DUMMY, // not a real health warning, for testing
};

Esp, MDS_HEALTH_SLOW_REQUEST - where the MDS could probably running close to its limits.
Actions #8

Updated by Patrick Donnelly 1 day ago

Rishabh Dave wrote in #note-7:

Patrick, should we include other health warnings too? I didn't include it in PR because it was mentioned on this ticket. Since Venky too brought this up here, I think it's worth discussing and writing a fix for it.

Copying Venky's comment below -

[...]

So far as we know, the two main culprits for slow recovery are the ones included in your PR. That is our main concern with gating mds failover. I don't see a strong argument to include the others at this time.

Actions

Also available in: Atom PDF