scan_extents, scan_inodes, and other state-changing operations.
Related Tracker: https://tracker.ceph.com/issues/63191
+* OSD: A health warning is reported when BlueStore DB/WAL sizes are large relative
+ to the main OSD data device.
+ This warning is informational and does not impact OSD functionality, but highlights
+ uneven OSD utilization and cause some OSDs to reach *full states sooner
+ than others. Administrators may review and take action if needed.
+ Users can temporarily mute it with:
+ ``ceph health mute BLUESTORE_SHARED_DB_RATIO``
+
>=20.0.0
* RADOS: The lead Monitor and stretch mode status are now displayed by `ceph status`.
summary += " experiencing stalled read in block device of BlueStore";
} else if (asum.first == "WAL_DEVICE_STALLED_READ_ALERT") {
summary += " experiencing stalled read in wal device of BlueFS";
+ } else if (asum.first == "BLUESTORE_SHARED_DB_RATIO") {
+ summary += " have shared DB/WAL device exceeding 6% of main device size";
} else if (asum.first == "DB_DEVICE_STALLED_READ_ALERT") {
summary += " experiencing stalled read in db device of BlueFS";
} else if (asum.first.find("_DISCARD_QUEUE") != std::string::npos) {
} else if (!spillover_alert.empty()){
spillover_alert.clear();
}
+ // CHECK: shared DB/WAL ratio with main device size
+ if (bluefs) {
+ uint64_t db_size = bluefs->get_block_device_size(BlueFS::BDEV_DB);
+ uint64_t block_size = bluefs->get_block_device_size(BlueFS::BDEV_SLOW);
+
+ if (block_size > 0 && db_size >0) {
+ double ratio = static_cast<double>(db_size) / static_cast<double>(block_size);
+ if (ratio > 0.06) {
+ ostringstream ss;
+ ss << "BlueStore shared DB/WAL device (" << byte_u_t(db_size)
+ << ") exceeds 6% of main device (" << byte_u_t(block_size)
+ << ", " << std::fixed << std::setprecision(2)
+ << ratio * 100.0 << "%)";
+ alerts.emplace("BLUESTORE_SHARED_DB_RATIO", ss.str());
+ }
+ }
+ }
if (cct->_conf->bluestore_slow_ops_warn_threshold) {
size_t qsize = _trim_slow_op_event_queue(mono_clock::now());
if (qsize >= cct->_conf->bluestore_slow_ops_warn_threshold) {