]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #12273 from songbaisen/s4
authorYuri Weinstein <yuri.weinstein@gmail.com>
Tue, 7 Feb 2017 21:05:27 +0000 (13:05 -0800)
committerGitHub <noreply@github.com>
Tue, 7 Feb 2017 21:05:27 +0000 (13:05 -0800)
mon: add warn info for osds were removed from osdmap but still kept in crushmap

Reviewed-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Sage Weil <sage@redhat.com>
1  2 
src/mon/OSDMonitor.cc

index 585cd7bf0fcaad54b12a6e81f7746551262b345b,4b4e9546158eebc65f46a40a6e76be7456ddb6e6..d2a8570429e274684c4bd75adf633bd88794239b
@@@ -2902,26 -3012,31 +2909,35 @@@ void OSDMonitor::get_health(list<pair<h
        summary.push_back(make_pair(HEALTH_WARN, ss.str()));
      }
  
+     if (!osds.empty()) {
+       ostringstream ss;
+       ss << "osds were removed from osdmap, but still kept in crushmap";
+       summary.push_back(make_pair(HEALTH_WARN, ss.str()));
+       if (detail) {
+         ss << " osds: [" << osds << "]";
+         detail->push_back(make_pair(HEALTH_WARN, ss.str()));
+       }
+     } 
      // warn about flags
 -    if (osdmap.test_flag(CEPH_OSDMAP_FULL |
 -                       CEPH_OSDMAP_PAUSERD |
 -                       CEPH_OSDMAP_PAUSEWR |
 -                       CEPH_OSDMAP_NOUP |
 -                       CEPH_OSDMAP_NODOWN |
 -                       CEPH_OSDMAP_NOIN |
 -                       CEPH_OSDMAP_NOOUT |
 -                       CEPH_OSDMAP_NOBACKFILL |
 -                       CEPH_OSDMAP_NOREBALANCE |
 -                       CEPH_OSDMAP_NORECOVER |
 -                       CEPH_OSDMAP_NOSCRUB |
 -                       CEPH_OSDMAP_NODEEP_SCRUB |
 -                       CEPH_OSDMAP_NOTIERAGENT)) {
 +    uint64_t warn_flags =
 +      CEPH_OSDMAP_FULL |
 +      CEPH_OSDMAP_PAUSERD |
 +      CEPH_OSDMAP_PAUSEWR |
 +      CEPH_OSDMAP_PAUSEREC |
 +      CEPH_OSDMAP_NOUP |
 +      CEPH_OSDMAP_NODOWN |
 +      CEPH_OSDMAP_NOIN |
 +      CEPH_OSDMAP_NOOUT |
 +      CEPH_OSDMAP_NOBACKFILL |
 +      CEPH_OSDMAP_NORECOVER |
 +      CEPH_OSDMAP_NOSCRUB |
 +      CEPH_OSDMAP_NODEEP_SCRUB |
 +      CEPH_OSDMAP_NOTIERAGENT |
 +      CEPH_OSDMAP_NOREBALANCE;
 +    if (osdmap.test_flag(warn_flags)) {
        ostringstream ss;
 -      ss << osdmap.get_flag_string() << " flag(s) set";
 +      ss << osdmap.get_flag_string(osdmap.get_flags() & warn_flags)
 +       << " flag(s) set";
        summary.push_back(make_pair(HEALTH_WARN, ss.str()));
        if (detail)
        detail->push_back(make_pair(HEALTH_WARN, ss.str()));