基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
ob_host_invalid_disk_exists OBServer 存在坏盘
更新时间:2026-03-24 12:08:53
告警描述
如果磁盘出现坏盘,OBServer 会检测到该故障(OBServer 的数据盘或日志盘),然后标记为磁盘故障。
- 坏盘检测只覆盖在 OBServer 中有引用计数的块, 如果 dd 写坏的不是一个数据块,那么坏盘检测时不会检测到这个坏块的。
- 坏盘检测会消耗一定的资源,为了降低资源消耗,只检测写入至少 2 天的块。
告警原理
| 参数 | 值 |
|---|---|
| 监控指标 | ob_disk_invalid_count,该指标表示 OBServer 是否存在坏盘,当值大于阈值时触发告警。 |
| 监控表达式 | sum(ob_disk_invalid_count{@LABELS}) by (@GBLABELS) |
| 采集指标 | ob_disk_invalid_count |
| 指标来源 | 采集自内部视图,采集 SQL:select /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ count(1) as cnt from __all_virtual_disk_stat where is_disk_valid = 0 and svr_ip = ? and svr_port = ? |
| 采集周期 | 5 秒 |
规则信息
| 监控指标 | 默认阈值 | 持续时间 | 告警周期 | 消除周期 |
|---|---|---|---|---|
| ob_disk_invalid_count | 0 | 0 秒 | 20 秒 | 5 分钟 |
告警信息
| 告警触发方式 | 告警等级 | 范围 |
|---|---|---|
| 基于监控指标的表达式 | 严重 | 主机 |
告警模板
告警概述
- 模板:${alarm_target} ${alarm_name}
- 样例:alarm_template_id=0:ob_cluster=TEST-1:host=xxx.xxx.xxx.xxx OBServer 存在坏盘
告警详情
- 模板:集群:${ob_cluster_name},主机:${host},告警:${alarm_name}。
- 样例:集群:TEST,主机:xxx.xxx.xxx.xxx,告警:OBServer 存在坏盘。
告警恢复
- 模板:告警:${alarm_name},OBServer 存在坏盘的主机个数:${recover_value}
- 样例:告警:OBServer 存在坏盘,OBServer 存在坏盘的主机个数:0
对系统的影响
发送磁盘坏盘,OBServer 会主动退出。可能得影响:
- 坏盘节点的业务请求被中断。只要保证多数派,OBServer 仍能正常提供服务。
- 可用性降低,如 3 节点的 OceanBase 集群会变为 2 节点的集群,可用性会下降,此时应尽快修复问题或增加可用节点。
可能原因
无常见原因。
处理方法
可以确认磁盘坏盘原因:
select * from __all_virtual_bad_block_table where svr_ip = ? and svr_port = ?确认 OBServer 日志中是否存在关键字:
error occours on data disk or slog disk,会产生相关日志告警。如果发生坏盘,OBServer 会主动退出。需要先修复磁盘坏块后再启动 OBServer。