From ca63d166a3da24785e21ee0d227c42f9844d9f52 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 23 Mar 2017 19:41:53 -0500 Subject: [PATCH] os/bluestore: implement collect_metadata for BlueStore, BlueFS Signed-off-by: Sage Weil --- src/os/bluestore/BlueFS.cc | 10 ++++++++++ src/os/bluestore/BlueFS.h | 1 + src/os/bluestore/BlueStore.cc | 13 +++++++++++++ src/os/bluestore/BlueStore.h | 2 ++ 4 files changed, 26 insertions(+) diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 3f7fa0f2a0c..4ca20860a76 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -434,6 +434,16 @@ void BlueFS::umount() _shutdown_logger(); } +void BlueFS::collect_metadata(map *pm) +{ + if (bdev[BDEV_DB]) + bdev[BDEV_DB]->collect_metadata("bluefs_db_", pm); + if (bdev[BDEV_WAL]) + bdev[BDEV_WAL]->collect_metadata("bluefs_wal_", pm); + if (bdev[BDEV_SLOW]) + bdev[BDEV_SLOW]->collect_metadata("bluefs_slow_", pm); +} + int BlueFS::fsck() { std::lock_guard l(lock); diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index 28720cbb388..030cf1709d2 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -332,6 +332,7 @@ public: int mount(); void umount(); + void collect_metadata(map *pm); int fsck(); uint64_t get_fs_usage(); diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 11c2147d22f..bf58c77ec6e 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -5434,6 +5434,19 @@ int BlueStore::fsck(bool deep) return errors; } +void BlueStore::collect_metadata(map *pm) +{ + dout(10) << __func__ << dendl; + bdev->collect_metadata("bluestore_bdev_", pm); + if (bluefs) { + (*pm)["bluefs"] = "1"; + (*pm)["bluefs_single_shared_device"] = stringify((int)bluefs_single_shared_device); + bluefs->collect_metadata(pm); + } else { + (*pm)["bluefs"] = "0"; + } +} + int BlueStore::statfs(struct store_statfs_t *buf) { buf->reset(); diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index fca4e20f2a4..86cd05b4c31 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -2031,6 +2031,8 @@ public: public: int statfs(struct store_statfs_t *buf) override; + void collect_metadata(map *pm) override; + bool exists(const coll_t& cid, const ghobject_t& oid) override; bool exists(CollectionHandle &c, const ghobject_t& oid) override; int set_collection_opts( -- 2.39.5