]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: bring spillover alerts back after regression.
authorIgor Fedotov <igor.fedotov@croit.io>
Fri, 3 Feb 2023 10:58:25 +0000 (13:58 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Fri, 7 Apr 2023 09:54:00 +0000 (12:54 +0300)
Fixes: https://tracker.ceph.com/issues/58440
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 4f20521faee3599dd897ecca9b32f5a4941b9709)

src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 852e48069778e921131edc170522862541c9ff1c..abd3b579a6799d1a2ede285c363cf60d2a5e109e 100644 (file)
@@ -17670,6 +17670,19 @@ void BlueStore::_record_onode(OnodeRef& o, KeyValueDB::Transaction &txn)
 void BlueStore::_log_alerts(osd_alert_list_t& alerts)
 {
   std::lock_guard l(qlock);
+  size_t used = bluefs && bluefs_layout.shared_bdev == BlueFS::BDEV_SLOW ?
+    bluefs->get_used(BlueFS::BDEV_SLOW) : 0;
+  if (used > 0) {
+      auto db_used = bluefs->get_used(BlueFS::BDEV_DB);
+      auto db_total = bluefs->get_total(BlueFS::BDEV_DB);
+      ostringstream ss;
+      ss << "spilled over " << byte_u_t(used)
+         << " metadata from 'db' device (" << byte_u_t(db_used)
+         << " used of " << byte_u_t(db_total) << ") to slow device";
+      spillover_alert = ss.str();
+  } else if (!spillover_alert.empty()){
+    spillover_alert.clear();
+  }
 
   if (!spurious_read_errors_alert.empty() &&
       cct->_conf->bluestore_warn_on_spurious_read_errors) {
index f98d55b40077cfbf33896af068023e7c844d209e..02a3bd51c87bd29e720c2061914afb2a26de42bc 100644 (file)
@@ -3350,15 +3350,6 @@ private:
     failed_cmode.clear();
   }
 
-  void _set_spillover_alert(const std::string& s) {
-    std::lock_guard l(qlock);
-    spillover_alert = s;
-  }
-  void _clear_spillover_alert() {
-    std::lock_guard l(qlock);
-    spillover_alert.clear();
-  }
-
   void _check_legacy_statfs_alert();
   void _check_no_per_pg_or_pool_omap_alert();
   void _set_disk_size_mismatch_alert(const std::string& s) {