文档首页/ MapReduce服务 MRS/ 用户指南/ MRS集群运维/ MRS集群告警处理参考/ ALM-12033 慢盘故障(2.x及以前版本)
更新时间:2024-08-13 GMT+08:00
分享

ALM-12033 慢盘故障(2.x及以前版本)

告警解释

MRS 2.x及以前版本:

  • 对于HDD盘,满足以下任意条件时触发告警:
    • 系统每3秒执行一次iostat命令,在30秒内连续10周期svctm值超过1000ms。
    • 系统每3秒执行一次iostat命令,在300秒内有超过60%的IO超过150ms。
  • 对于SSD盘,满足以下任意条件时触发告警:
    • 系统每3秒执行一次iostat命令,在30秒内连续10周期svctm值超过1000ms。
    • 系统每3秒执行一次iostat命令,在300秒内有超过60%的IO超过20ms。

当系统连续15分钟不满足以上所有条件时,告警自动清除。

MRS 1.9.3.10及之后的补丁的版本:

  • 对于HDD盘,满足以下任意条件时触发告警:
    • 系统默认每3秒采集一次数据,在30秒内至少7个采集周期的svctm时延达到1000ms。
    • 系统默认每3秒采集一次数据,在300秒内至少50%次采集到的svctm时延达到150ms。
  • 对于SSD盘,满足以下任意条件时触发告警:
    • 系统默认每3秒采集一次数据,在30秒内至少7个周期的svctm时延达到1000ms。
    • 系统默认每3秒采集一次数据,在300秒内至少50%次检测到的svctm时延达到20ms。

系统采集周期为3秒,检测周期为30秒或300秒,当系统连续3个30秒、300秒的周期均不满足以上条件时,告警自动清除。

相关参数获取方法请参考参考信息

告警属性

告警ID

告警级别

是否自动清除

12033

  • 次要:MRS 1.9.3.10及之后的补丁版本
  • 重要:其他MRS 2.x及之前版本

告警参数

参数名称

参数含义

来源

产生告警的集群或系统名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

磁盘名

产生告警的磁盘名。

对系统的影响

磁盘慢盘故障,导致业务性能下降,阻塞业务的处理能力,严重时可能会导致服务不可用。

可能原因

磁盘老化或者磁盘坏道。

处理步骤

检查磁盘状态。

  1. 打开MRS集群详情页面,在实时告警列表中,单击此告警。在“告警详情”区域,获取告警所在主机信息和故障磁盘信息。
  2. 确认上报告警的节点是否为虚拟化环境。

    • 是,执行3
    • 否,执行6

  3. 请检查虚拟化环境提供的存储性能是否满足硬件要求,检查完毕之后执行4
  4. root用户登录告警节点,执行df -h命令,查看输出内容是否包含“磁盘名”字段的值。

    • 是,执行6
    • 否,执行5

  5. 执行lsblk命令,是否可以查到“磁盘名”字段值与磁盘设备的映射关系。

    • 是,执行6
    • 否,执行21

  6. root用户登录上报告警的节点,执行lsscsi | grep "/dev/sd[x]"命令查看磁盘的设备信息,判断磁盘是否建立了RAID。

    其中/dev/sd[x]1中获取到的上报告警的磁盘名称。

    例如执行:

    lsscsi | grep "/dev/sda"

    如果命令执行结果第三列显示ATA、SATA或者SAS,说明磁盘没有建立RAID;显示其他信息,则该磁盘可能建立了RAID。

    • 是,执行11
    • 否,执行7

  7. 执行smartctl -i /dev/sd[x]命令检查硬件是否支持smart。

    例如执行:

    smartctl -i /dev/sda

    如果命令执行结果中包含“SMART support is: Enabled”,表示磁盘支持smart;执行结果中包含“Device does not support SMART”或者其他,表示磁盘不支持smart。

    • 是,执行8
    • 否,执行16

  8. 执行smartctl -H --all /dev/sd[x]命令查看smart的基本信息,判断磁盘是否正常。

    例如执行:

    smartctl -H --all /dev/sda

    查看命令执行结果的“SMART overall-health self-assessment test result”内容,如果是“FAILED”,表示磁盘故障,需要更换;如果为“PASSED”,需要进一步看“Reallocated_Sector_Ct”或者“Elements in grown defect list”项的计数,如果大于100,则认为磁盘故障,需要更换。

    • 是,执行9
    • 否,执行17

  9. 执行smartctl -l error -H /dev/sd[x]命令查看磁盘的GLIST列表,进一步继续判断磁盘是否正常。

    例如执行:

    smartctl -l error -H /dev/sda

    查看命令执行结果的“Command/Featrue_name”列,如果出现“READ SECTOR(S)”或者“WRITE SECTOR(S)”表示磁盘有坏道;如果出现其他错误,表示磁盘电路板有问题。这两种错误均表示磁盘不正常,需要更换。

    如果显示“No Errors Logged”,则表示没有错误日志,则可以触发磁盘smart自检。

    • 是,执行10
    • 否,执行17

  10. 执行smartctl -t long /dev/sd[x]命令触发磁盘smart自检。命令执行后,会提示自检完成的时间,在等待自检完成后,重新执行89,检查磁盘是否正常。

    例如执行:

    smartctl -t long /dev/sda

    • 是,执行16
    • 否,执行17

  11. 执行smartctl -d [sat|scsi]+megaraid,[DID] -H --all /dev/sd[x]命令检查硬件是否支持smart。

    • [sat|scsi]表示磁盘类型,需要尝试以上两种类型。
    • [DID]表示槽位信息,需要尝试0~15。

    例如依次执行:

    smartctl -d sat+megaraid,0 -H --all /dev/sda

    smartctl -d sat+megaraid,1 -H --all /dev/sda

    smartctl -d sat+megaraid,2 -H --all /dev/sda

    ...

    依次尝试不同磁盘类型和槽位信息的命令组合,如果执行结果中显示“SMART support is: Enabled”,表示磁盘支持smart,记录命令执行成功时磁盘类型和槽位信息组合参数;如果尝试完以上所有的命令组合,执行结果都未显示“SMART support is: Enabled”,表示磁盘不支持smart。

    • 是,执行12
    • 否,执行15

  12. 执行11中记录的smartctl -d [sat|scsi]+megaraid,[DID] -H --all /dev/sd[x]命令查看smart的基本信息,判断磁盘是否正常。

    例如执行:

    smartctl -d sat+megaraid,2 -H --all /dev/sda

    查看命令执行结果的“SMART overall-health self-assessment test result”内容,如果是“FAILED”,表示磁盘故障,需要更换;如果为“PASSED”,需要进一步看“Reallocated_Sector_Ct”或者“Elements in grown defect list”项的计数,如果大于100,则认为磁盘故障,需要更换。

    • 是,执行13
    • 否,执行17

  13. 执行smartctl -d [sat|scsi]+megaraid,[DID] -l error -H /dev/sd[x]命令查看硬盘的GLIST列表,进一步判断硬盘是否正常。

    例如执行:

    smartctl -d sat+megaraid,2 -l error -H /dev/sda

    查看命令执行结果的“Command/Featrue_name”列,如果出现“READ SECTOR(S)”或者“WRITE SECTOR(S)”表示磁盘有坏道;如果出现其他错误,表示磁盘电路板有问题。这两种错误均表示磁盘不正常,需要更换。

    如果显示“No Errors Logged”,则表示没有错误日志,则可以触发磁盘smart自检。

    • 是,执行14
    • 否,执行17

  14. 执行smartctl -d [sat|scsi]+megaraid,[DID] -t long /dev/sd[x]命令触发磁盘smart自检。命令执行后,会提示自检完成的时间,在等待自检完成后,重新执行1213,检查磁盘是否正常。

    例如执行:

    smartctl -d sat+megaraid,2 -t long /dev/sda

    • 是,执行16
    • 否,执行17

  15. 磁盘不支持smart,通常是因为配置的RAID卡不支持,此时需要使用对应RAID卡厂商的检查工具进行处理,然后执行16

    例如LSI一般是MegaCLI工具。

  16. 在告警详情页面单击“清除告警”,并继续观察该告警,查看同一块磁盘的告警是否会继续上报。

    如果当前磁盘出现三次以上该告警,建议用户更换磁盘。

    • 是,执行17
    • 否,操作结束。

更换磁盘。

  1. 在MRS Manager界面,单击“告警管理”。
  2. 查看该告警的详细信息,查看定位信息中对应的“主机名”字段和“磁盘名”字段的值,获取该告警上报的故障磁盘信息。
  3. 更换硬盘。
  4. 检查告警是否清除。

    • 是,操作结束。
    • 否,执行21

收集故障信息

  1. 在MRS Manager界面,选择“系统设置 > 日志导出”
  2. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

相关参数获取方法如下:

  • MRS 2.x及以前版本:

    当前慢盘故障告警的检查原理为:

    在Linux平台上判断IO是否存在问题,输入命令iostat -x -t 1,观察svctm的值(如图所示红色框中的部分)。

    svctm值表示该磁盘IO服务时间。

  • MRS 1.9.3.10及之后的补丁版本:

    svctm的获取方法:

    svctm = (tot_ticks_new - tot_ticks_old) / (rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old)

    当检测周期粒度为30秒时,如果rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old = 0,则svctm = 0。

    当检测周期粒度为300秒时,在rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old = 0的情况下,如果tot_ticks_new - tot_ticks_old = 0则svctm = 0,否则svctm值为无穷大。

参数获取如下:

系统每3秒执行一次cat /proc/diskstats命令采集数据。例如:

连续两次采集的数据中:

第一次采集的数据中,第4列的数字是“rd_ios_old”,第8列的数字是“wr_ios_old”,第13列的数字是“tot_ticks_old”。

第二次采集的数据中,第4列的数字是“rd_ios_new”,第8列的数字是“wr_ios_new”,第13列的数字是“tot_ticks_new”。

则上图中svctm值为:

(19571460 - 19569526) / (1101553 + 28747977 - 1101553 - 28744856) = 0.6197

相关文档