From: Sage Weil Date: Thu, 1 Nov 2018 10:09:42 +0000 (-0500) Subject: os/filestore: collect partition/device metadata from journal X-Git-Tag: v14.1.0~873^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8d93bd18037c1b4e5a4c453d094992ed85678224;p=ceph-ci.git os/filestore: collect partition/device metadata from journal Signed-off-by: Sage Weil --- diff --git a/src/os/filestore/FileJournal.cc b/src/os/filestore/FileJournal.cc index c0f5113761a..9e8b1cd31ac 100644 --- a/src/os/filestore/FileJournal.cc +++ b/src/os/filestore/FileJournal.cc @@ -2191,10 +2191,27 @@ void FileJournal::get_devices(set *ls) char dev_node[PATH_MAX]; BlkDev blkdev(fd); if (int rc = blkdev.wholedisk(dev_node, PATH_MAX); rc) { - return rc; + return; } ls->insert(dev_node); if (strncmp(dev_node, "dm-", 3) == 0) { get_dm_parents(dev_node, ls); } } + +void FileJournal::collect_metadata(map *pm) +{ + BlkDev blkdev(fd); + char partition_path[PATH_MAX]; + char dev_node[PATH_MAX]; + if (blkdev.partition(partition_path, PATH_MAX)) { + (*pm)["backend_filestore_journal_partition_path"] = "unknown"; + } else { + (*pm)["backend_filestore_journal_partition_path"] = string(partition_path); + } + if (blkdev.wholedisk(dev_node, PATH_MAX)) { + (*pm)["backend_filestore_journal_dev_node"] = "unknown"; + } else { + (*pm)["backend_filestore_journal_dev_node"] = string(dev_node); + } +} diff --git a/src/os/filestore/FileJournal.h b/src/os/filestore/FileJournal.h index 52376d18f39..23ca024d65b 100644 --- a/src/os/filestore/FileJournal.h +++ b/src/os/filestore/FileJournal.h @@ -464,6 +464,7 @@ private: void flush() override; void get_devices(set *ls) override; + void collect_metadata(map *pm) override; void reserve_throttle_and_backoff(uint64_t count) override; diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index 3d39d1b0ca2..dd0efe02752 100644 --- a/src/os/filestore/FileStore.cc +++ b/src/os/filestore/FileStore.cc @@ -708,6 +708,9 @@ void FileStore::collect_metadata(map *pm) (*pm)["vdo_physical_size"] = stringify(4096 * get_vdo_stat(vdo_fd, "physical_blocks")); } + if (journal) { + journal->collect_metadata(pm); + } } } diff --git a/src/os/filestore/Journal.h b/src/os/filestore/Journal.h index 17744308494..cfb667d8969 100644 --- a/src/os/filestore/Journal.h +++ b/src/os/filestore/Journal.h @@ -53,7 +53,7 @@ public: virtual void flush() = 0; virtual void get_devices(set *ls) {} - + virtual void collect_metadata(map *pm) {} /** * reserve_throttle_and_backoff *