更新时间:2026-07-28 GMT+08:00
磁盘检测
- 规格:
- 只检测DN、CN、GTM、CM(CMA、CMS)的数据盘、日志盘以及DN的表空间所在盘。
- 检测规则:
- 检测通过读写临时文件实现,针对文件会有四个操作:open(打开文件),write(写文件),read(读文件),unlink(删除文件)。其中open、write、read任意一个操作失败或者执行超时,就会判定磁盘发生故障或处于hang状态,并触发仲裁。相反,unlink操作失败或执行超时,则不会作为触发仲裁的条件。
- 非DIRECT读写:每隔1秒采用非DIRECT的方式向磁盘中写入1B的数据,如果读写失败,通过错误码判断失败的原因,其中如果是EIO(IO错误)、EROFS(文件系统只读)、ENOSPC(磁盘空间不足)、EACCES(权限不足)这些原因,会判定故障,其他类型错误暂不处理。
- DIRECT读写:默认每隔5秒(可配)采用DIRECT的方式向磁盘中写入512B(如果被检测磁盘为条带化,则写入256KB)的数据,如果写入操作阻塞超过20s(如果无法判断被检测磁盘是否为条带化,则超时时间为60s,写入数据的大小为256KB)没有返回,则判定磁盘处于I/O hang。
- 高负载下磁盘hang
- 简介:CM定时从数据库获取物理I/O指标(I/O文件读写访问次数、I/O文件读写流量)。CM检测到磁盘hang后,先判断I/O指标是否达到高负载标准(I/O文件读写访问次数10次/秒或I/O文件读写流量256kB/秒),如果达到高负载标准,则不继续进行磁盘hang的处理动作。
- 约束:
- 高负载场景定义:达到I/O文件读写访问次数10次/秒 或 I/O文件读写流量256kB/秒,认为处于高负载。
- 高负载场景,不进行磁盘hang处理。非高负载场景,进行磁盘hang处理,RTO满足60s。
- 获取不到I/O指标场景,则进行磁盘hang的处理,RTO满足60s。
- 说明:
- 写入的数据大小可配置,配置的写入大小需要根据磁盘的对齐规则进行对齐,如果配置时没对齐,cm会自动向上对齐。在磁盘LVM条带化场景,为保障写入检测能覆盖到所有磁盘,建议写入大小根据磁盘数量和数据分块大小动态调整。
- I/O hang超时时间可配置,需要根据磁盘性能进行配置,性能差的磁盘,超时时间可以适当配置长一些,进而减少业务I/O对磁盘检测的影响,相应的,hang场景RTO将会变长。配置成0则关闭hang检测。
- 写入大小过大、检测周期过短时,可能对磁盘IO有一定的争抢,进而影响数据库性能。
父主题: 故障检测原理