From: Sage Weil Date: Fri, 29 Jan 2021 23:31:33 +0000 (-0500) Subject: mon: simplify fs 'services' view of 'ceph status' X-Git-Tag: v17.1.0~2849^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=db10d80b66f13dc1fb27bebceb1f7d38dfa3d5d0;p=ceph.git mon: simplify fs 'services' view of 'ceph status' Show daemon counts for up/in, failed, standby, standby-replay. Signed-off-by: Sage Weil --- diff --git a/src/mds/FSMap.cc b/src/mds/FSMap.cc index 59cbd93f113f..3d0bbd5173b5 100644 --- a/src/mds/FSMap.cc +++ b/src/mds/FSMap.cc @@ -224,8 +224,33 @@ void FSMap::print(ostream& out) const } } +void FSMap::print_daemon_summary(ostream& out) const +{ + // this appears in the "services:" section of "ceph status" + int num_up = 0, num_in = 0, num_failed = 0; + int num_standby_replay = 0; + for (auto& [fscid, fs] : filesystems) { + num_up += fs->mds_map.get_num_up_mds(); + num_in += fs->mds_map.get_num_in_mds(); + num_failed += fs->mds_map.get_num_failed_mds(); + num_standby_replay += fs->mds_map.get_num_standby_replay_mds(); + } + int num_standby = standby_daemons.size(); + out << num_up << "/" << num_in << " daemons up"; + if (num_failed) { + out << " (" << num_failed << " failed)"; + } + if (num_standby) { + out << ", " << num_standby << " standby"; + } + if (num_standby_replay) { + out << ", " << num_standby_replay << " hot standby"; + } +} + void FSMap::print_fs_summary(ostream& out) const { + // this appears in the "data:" section of "ceph status" if (!filesystems.empty()) { int num_failed = 0, num_recovering = 0, num_stopped = 0, num_healthy = 0; int num_damaged = 0; diff --git a/src/mds/FSMap.h b/src/mds/FSMap.h index 7355b04ac525..8a3a6b69cb4e 100644 --- a/src/mds/FSMap.h +++ b/src/mds/FSMap.h @@ -567,6 +567,7 @@ public: void print(std::ostream& out) const; void print_summary(ceph::Formatter *f, std::ostream *out) const; + void print_daemon_summary(std::ostream& out) const; void print_fs_summary(std::ostream& out) const; void dump(ceph::Formatter *f) const; diff --git a/src/mds/MDSMap.h b/src/mds/MDSMap.h index 56344dd96a94..64b2b12f334c 100644 --- a/src/mds/MDSMap.h +++ b/src/mds/MDSMap.h @@ -305,6 +305,15 @@ public: int get_num_failed_mds() const { return failed.size(); } + unsigned get_num_standby_replay_mds() const { + unsigned num = 0; + for (auto& i : mds_info) { + if (i.second.state == MDSMap::STATE_STANDBY_REPLAY) { + ++num; + } + } + return num; + } unsigned get_num_mds(int state) const; // data pools void add_data_pool(int64_t poolid) { diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 73afc284279a..02e03f37de1e 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -3053,7 +3053,9 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f, const FSMap *fsmapp = &fsmap_copy; if (fsmapp->filesystem_count() > 0 and mdsmon()->should_print_status()){ - ss << " mds: " << spacing << *fsmapp << "\n"; + ss << " mds: " << spacing; + fsmapp->print_daemon_summary(ss); + ss << "\n"; } ss << " osd: " << spacing;