From e741ea4ed9473421d2faf8b91c8988887007c1bc Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 24 May 2014 15:58:54 -0700 Subject: [PATCH] os/FileStore: include filestore backend, f_type in osd metadata Report the FileStore backend and underlying fs type as part of the osd metadata shared with the monitor. Signed-off-by: Sage Weil --- src/os/FileStore.cc | 8 ++++++++ src/os/FileStore.h | 2 ++ src/os/ObjectStore.h | 2 ++ src/osd/OSD.cc | 5 ++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 64de42b5a3f38..092ad22cd849d 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -543,6 +543,14 @@ bool parse_attrname(char **name) return false; } +void FileStore::collect_metadata(map *pm) +{ + (*pm)["filestore_backend"] = backend->get_name(); + ostringstream ss; + ss << "0x" << std::hex << m_fs_type << std::dec; + (*pm)["filestore_f_type"] = ss.str(); +} + int FileStore::statfs(struct statfs *buf) { if (::statfs(basedir.c_str(), buf) < 0) { diff --git a/src/os/FileStore.h b/src/os/FileStore.h index 347e1a2d598ed..4312400449f8c 100644 --- a/src/os/FileStore.h +++ b/src/os/FileStore.h @@ -363,6 +363,8 @@ public: */ bool get_allow_sharded_objects(); + void collect_metadata(map *pm); + int statfs(struct statfs *buf); int _do_transactions( diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h index 084bbdba4c57d..078e40f547983 100644 --- a/src/os/ObjectStore.h +++ b/src/os/ObjectStore.h @@ -1174,6 +1174,8 @@ public: virtual int statfs(struct statfs *buf) = 0; + virtual void collect_metadata(map *pm) { } + /** * get the most recent "on-disk format version" supported */ diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 179560c6f7273..1e20a7804594c 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -3840,12 +3840,15 @@ void OSD::_collect_metadata(map *pm) // config info (*pm)["osd_data"] = dev_path; (*pm)["osd_journal"] = journal_path; - (*pm)["osd_objectstore"] = g_conf->osd_objectstore; (*pm)["front_addr"] = stringify(client_messenger->get_myaddr()); (*pm)["back_addr"] = stringify(cluster_messenger->get_myaddr()); (*pm)["hb_front_addr"] = stringify(hb_front_server_messenger->get_myaddr()); (*pm)["hb_back_addr"] = stringify(hb_back_server_messenger->get_myaddr()); + // backend + (*pm)["osd_objectstore"] = g_conf->osd_objectstore; + store->collect_metadata(pm); + // kernel info struct utsname u; int r = uname(&u); -- 2.39.5