From: Joao Eduardo Luis Date: Thu, 18 Sep 2014 15:53:43 +0000 (+0100) Subject: ceph_mon: check available storage space for mon data dir on start X-Git-Tag: v0.86~37^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2da1a2914ac7df18ce842b0aac728fffb5bed2b6;p=ceph.git ceph_mon: check available storage space for mon data dir on start error out if available storage space is below 'mon data avail crit' Fixes: #9502 Signed-off-by: Joao Eduardo Luis --- diff --git a/src/ceph_mon.cc b/src/ceph_mon.cc index 3ff033f7f9de..ef0e11bfa30a 100644 --- a/src/ceph_mon.cc +++ b/src/ceph_mon.cc @@ -305,6 +305,27 @@ int main(int argc, const char **argv) usage(); } + { + // check fs stats. don't start if it's critically close to full. + ceph_data_stats_t stats; + int err = get_fs_stats(stats, g_conf->mon_data.c_str()); + if (err < 0) { + cerr << "error checking monitor data's fs stats: " << cpp_strerror(err) + << std::endl; + exit(-err); + } + if (stats.avail_percent <= g_conf->mon_data_avail_crit) { + cerr << "error: monitor data filesystem reached concerning levels of" + << " available storage space (available: " + << stats.avail_percent << "% " << prettybyte_t(stats.byte_avail) + << ")\nyou may adjust 'mon data avail crit' to a lower value" + << " to make this go away (default: " << g_conf->mon_data_avail_crit + << "%)\n" << std::endl; + exit(ENOSPC); + } + } + + // -- mkfs -- if (mkfs) {