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) {
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) {