OCP 出现 OBServer存在坏盘 的告警 is_disk_valid = 0 的判断依据是什么

【 使用环境 】生产环境
【 OB or 其他组件 】OCP
【 使用版本 】4.4.0
【问题描述】OCP出现 ob_host_invalid_disk_exists OBServer存在坏盘 的告警,之后该告警自动恢复了


查看官网该告警的判断指标主要根据 __all_virtual_disk_stat 中的 is_disk_valid字段是否为0,is_disk_valid字段是否为0的判断标准是什么**(当磁盘出现什么情况下,OB会将is_disk_valid标记为0,判断它为坏盘)**


【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

在这种情况下,您遇到的问题可能与OceanBase的磁盘健康状况有关。is_disk_valid 字段为 0 表示该磁盘已经被系统标记为不可用或存在问题。这通常是因为磁盘的读写出现了错误、性能严重下降,或者磁盘本身存在硬件故障。

为了解决这个问题,我们首先需要通过 obdiag 工具来收集相关的日志信息,以进一步分析导致磁盘被标记为坏盘的具体原因。同时,也可以尝试通过根因分析来找出是否有特定的操作或情况触发了这个状态。

日志采集场景: IO问题
日志采集命令: obdiag gather scene run --scene=observer.io

请运行上述命令,并将生成的日志文件发送给我们,以便进行详细的分析。此外,为了能够更准确地定位问题,请您回答以下几个问题:

  1. 您是否注意到在磁盘被标记为坏盘之前有任何异常的操作或事件发生?
  2. 系统日志中是否有任何关于磁盘错误或警告的信息?
  3. 是否有进行过任何最近的系统维护或更新?
  4. 您能否提供具体的 OBServer 节点信息,包括 IP 地址和所涉及的磁盘?
  5. 该磁盘是否曾经遇到过类似的故障?

以上信息将帮助我们更有效地分析并解决问题。感谢您的配合!

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

根据代码描述, 只要磁盘健康状态不是 NORMAL,包括 WARNINGERRORis_disk_valid 就是 0

  • WARNING: 探测读出现文件系统错误次数达到 10
  • ERROR: 探测读出现文件系统错误次数达到 100
1 个赞

这个探测是去查什么文件呢,磁盘上的文件系统?OCP上可以有指标看到吗

OCP看不到,这个是ob内部发起的探测进程
它做的是对 OceanBase 自己正在访问的那个文件对象,再发起一次 pread 探测读