Show backfillfull pools in vitastor-cli status

This commit is contained in:
Vitaliy Filippov
2024-12-26 12:17:47 +03:00
parent 42eebfc1bd
commit 651c055bd9
2 changed files with 20 additions and 0 deletions
+3
View File
@@ -185,6 +185,7 @@ resume_1:
{ "space_efficiency", pool_stats[pool_cfg.id]["space_efficiency"].number_value() }, { "space_efficiency", pool_stats[pool_cfg.id]["space_efficiency"].number_value() },
{ "pg_real_size", pool_stats[pool_cfg.id]["pg_real_size"].uint64_value() }, { "pg_real_size", pool_stats[pool_cfg.id]["pg_real_size"].uint64_value() },
{ "osd_count", (uint64_t)pg_per_osd.size() }, { "osd_count", (uint64_t)pg_per_osd.size() },
{ "backfillfull", pool_cfg.backfillfull },
}; };
} }
// Include full pool config // Include full pool config
@@ -484,6 +485,7 @@ resume_3:
st["block_size_fmt"] = format_size(st["block_size"].uint64_value()); st["block_size_fmt"] = format_size(st["block_size"].uint64_value());
if (st["bitmap_granularity"].uint64_value()) if (st["bitmap_granularity"].uint64_value())
st["bitmap_granularity_fmt"] = format_size(st["bitmap_granularity"].uint64_value()); st["bitmap_granularity_fmt"] = format_size(st["bitmap_granularity"].uint64_value());
st["backfillfull_fmt"] = st["backfillfull"].bool_value() ? "yes" : "";
} }
// All pool parameters are only displayed in the "detailed" mode // All pool parameters are only displayed in the "detailed" mode
// because there's too many of them to show them in table // because there's too many of them to show them in table
@@ -493,6 +495,7 @@ resume_3:
{ "scheme_name", "Scheme" }, { "scheme_name", "Scheme" },
{ "used_for_fs", "Used for VitastorFS" }, { "used_for_fs", "Used for VitastorFS" },
{ "status", "Status" }, { "status", "Status" },
{ "backfillfull_fmt", "Backfillfull" },
{ "pg_count_fmt", "PGs" }, { "pg_count_fmt", "PGs" },
{ "pg_minsize", "PG minsize" }, { "pg_minsize", "PG minsize" },
{ "failure_domain", "Failure domain" }, { "failure_domain", "Failure domain" },
+17
View File
@@ -173,6 +173,8 @@ resume_2:
} }
}); });
int pool_count = 0, pools_active = 0; int pool_count = 0, pools_active = 0;
json11::Json::array backfillfull_pool_ids;
std::string backfillfull_pool_names;
std::map<std::string, int> pgs_by_state; std::map<std::string, int> pgs_by_state;
std::string pgs_by_state_str; std::string pgs_by_state_str;
for (auto & pool_pair: parent->cli->st_cli.pool_config) for (auto & pool_pair: parent->cli->st_cli.pool_config)
@@ -204,6 +206,13 @@ resume_2:
{ {
pools_active++; pools_active++;
} }
if (pool_cfg.backfillfull)
{
backfillfull_pool_ids.push_back((uint64_t)pool_pair.first);
if (backfillfull_pool_names != "")
backfillfull_pool_names += ", ";
backfillfull_pool_names += pool_cfg.name;
}
} }
for (auto & kv: pgs_by_state) for (auto & kv: pgs_by_state)
{ {
@@ -242,6 +251,7 @@ resume_2:
{ "no_scrub", no_scrub }, { "no_scrub", no_scrub },
{ "pool_count", pool_count }, { "pool_count", pool_count },
{ "active_pool_count", pools_active }, { "active_pool_count", pools_active },
{ "backfillfull_pools", backfillfull_pool_ids },
{ "pg_states", pgs_by_state }, { "pg_states", pgs_by_state },
{ "op_stats", agg_stats["op_stats"] }, { "op_stats", agg_stats["op_stats"] },
{ "recovery_stats", agg_stats["recovery_stats"] }, { "recovery_stats", agg_stats["recovery_stats"] },
@@ -338,6 +348,13 @@ resume_2:
} }
warning_str += "\n"; warning_str += "\n";
} }
if (backfillfull_pool_names != "")
{
if (backfillfull_pool_ids.size() > 1)
warning_str += " pools "+backfillfull_pool_names+" are backfillfull\n";
else
warning_str += " pool "+backfillfull_pool_names+" is backfillfull\n";
}
if (warning_str != "") if (warning_str != "")
{ {
warning_str = "\n warning:\n"+warning_str; warning_str = "\n warning:\n"+warning_str;