From: Sage Weil Date: Fri, 24 Mar 2017 00:41:53 +0000 (-0500) Subject: os/bluestore: implement collect_metadata for BlueStore, BlueFS X-Git-Tag: v12.0.2~164^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ca63d166a3da24785e21ee0d227c42f9844d9f52;p=ceph.git os/bluestore: implement collect_metadata for BlueStore, BlueFS Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 3f7fa0f2a0ce..4ca20860a76f 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 28720cbb388e..030cf1709d20 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 11c2147d22fb..bf58c77ec6ed 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 fca4e20f2a42..86cd05b4c31f 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(