]> 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:47:29 +0000 (12:47 +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 ce15862949a04f0d33a35ead1192d90d3f264d05..fd7ebd89fde503026fab4706eea25d45a8673ba1 100644 (file)
@@ -17691,6 +17691,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 a0e8f324c0829480be43d379c2a71b8e7aca4180..c3d014dc938048006cc7cc39e8740f3e81780dcb 100644 (file)
@@ -3360,15 +3360,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) {