From fc5561ed6e1d44cda83a7c31d27f7392ee2e18ee Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 2 Oct 2017 22:28:13 -0500 Subject: [PATCH] os/bluestore: report omap and internal metadata usage Signed-off-by: Sage Weil --- src/os/bluestore/BlueStore.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index fe3f0911ff2ef..c4fb44aff069b 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -6175,6 +6175,8 @@ int BlueStore::_fsck(bool deep, bool repair) statfs(&actual_statfs); expected_statfs.total = actual_statfs.total; expected_statfs.available = actual_statfs.available; + expected_statfs.internal_metadata = actual_statfs.internal_metadata; + expected_statfs.omap_allocated = actual_statfs.omap_allocated; // walk PREFIX_OBJ dout(1) << __func__ << " walking object keyspace" << dendl; @@ -7097,7 +7099,10 @@ int BlueStore::statfs(struct store_statfs_t *buf) { buf->reset(); + buf->omap_allocated = db->estimate_prefix_size(PREFIX_OMAP); + uint64_t bfree = alloc->get_free(); + if (bluefs) { // part of our shared device is "free" according to BlueFS, but we // can't touch bluestore_bluefs_min of it. @@ -7126,6 +7131,11 @@ int BlueStore::statfs(struct store_statfs_t *buf) if (bluefs_shared_bdev != BlueFS::BDEV_DB) { buf->total += bluefs->get_total(BlueFS::BDEV_DB); } + + // call any non-omap bluefs space "internal metadata" + buf->internal_metadata = + std::max(bluefs->get_used(), (uint64_t)cct->_conf->bluestore_bluefs_min) + - buf->omap_allocated; } { -- 2.39.5