更新时间:2024-11-29 GMT+08:00

ALM-12033 慢盘故障

告警解释

  • 对于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秒的周期均不满足以上条件时,告警自动清除。

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

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

12033

次要

物理资源告警

FusionInsight Manager

告警参数

类别

参数名称

参数含义

定位信息

来源

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

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

磁盘名

产生告警的磁盘名。

附加信息

磁盘序列号

产生告警的磁盘序列信息。

对系统的影响

  • 系统性能下降,慢盘会导致系统I/O性能下降,从而影响系统的响应速度和吞吐量。这可能会导致客户的业务运行变慢(例如:作业提交运行变慢、页面响应迟钝、接口响应超时等),甚至出现崩溃或错误。
  • 系统故障:慢盘故障可能会导致系统故障,从而导致客户的业务受到影响。如果慢盘上存储的数据包含关键信息,可能会导致系统崩溃或数据丢失。

可能原因

磁盘老化或者磁盘坏道。

处理步骤

检查磁盘状态。

  1. 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”。
  2. 查看该告警的详细信息,查看定位信息中“主机名”字段和“磁盘名”字段的值,获取该告警产生的故障磁盘信息。
  3. 确认上报告警的节点是否为虚拟化环境。

    • 是,执行4
    • 否,执行7

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

    • 是,执行7
    • 否,执行6

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

    • 是,执行7。.
    • 否,执行25

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

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

    例如执行:

    lsscsi | grep "/dev/sda"

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

    • 是,执行12
    • 否,执行8

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

    例如执行:

    smartctl -i /dev/sda

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

    • 是,执行9
    • 否,执行16

  9. 执行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,则认为磁盘故障,需要更换。

    • 是,执行10
    • 否,执行18

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

    例如执行:

    smartctl -l error -H /dev/sda

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

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

    • 是,执行11
    • 否,执行18

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

    例如执行:

    smartctl -t long /dev/sda

    • 是,执行17
    • 否,执行18

  12. 执行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。

    • 是,执行13
    • 否,执行16

  13. 执行12中记录的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,则认为磁盘故障,需要更换。

    • 是,执行14
    • 否,执行18

  14. 执行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自检。

    • 是,执行15
    • 否,执行18

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

    例如执行:

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

    • 是,执行17
    • 否,执行18

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

    例如LSI一般是MegaCLI工具。

  17. 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”,单击该告警操作列的“清除”,并继续观察该告警,查看同一块磁盘的告警是否会继续上报。

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

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

更换磁盘。

  1. 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”。
  2. 查看该告警的详细信息,查看定位信息中对应的“主机名”字段和“磁盘名”字段的值,获取该告警上报的故障磁盘信息。
  3. 确认当前产生告警的主机类型是否为主OMS节点或主备模式实例的主节点。

    • 是,执行21
    • 否,其他类型节点执行23

  4. root用户登录产生告警的节点,执行以下命令查看故障磁盘的挂载点。

    df -h | grep "故障磁盘名称"

    查看故障磁盘挂载点分区是否为集群软件安装目录(安装路径为“${BIGDATA_HOME}”)或数据盘目录(数据盘目录默认为“${BIGDATA_DATA_HOME}”)。
    • 是,执行22
    • 否,执行23

  5. 执行以下操作,触发主备倒换紧急恢复系统故障。

    • 主OMS节点:

      若由于慢盘故障导致系统运行卡顿、页面刷新不及时或接口响应缓慢无法进行运维操作,且当前产生告警的主机为主OMS节点,如果需要紧急恢复系统正常运行,建议使用如下操作手动执行主备倒换尝试恢复业务:

      1. 使用omm用户登录主OMS节点。
      2. 执行以下命令进行主备倒换。
        • IPv4模式:${OMS_RUN_PATH}/workspace/ha/module/hacom/tools/ha_client_tool --ip=127.0.0.1 --port=20013 --switchover --name=product
        • IPv6模式:${OMS_RUN_PATH}/workspace/ha/module/hacom/tools/ha_client_tool --ip=::1 --port=20013 --switchover --name=product
      3. 主备倒换成功后,系统恢复正常运行,执行23更换故障磁盘。
    • 主备模式实例的主节点:

      若产生告警的主机为主备模式实例的主节点,且慢盘故障影响实例的正常运行无法进行运维操作,如果需要紧急恢复系统正常运行,建议在Manager页面执行主备倒换尝试恢复业务。

      1. 登录FusionInsight Manager,选择“集群 > 服务 > 待操作服务名称”。
      2. 在服务详情页面单击“更多”,选择“执行xxx倒换”。
      3. 输入当前登录的用户密码确认身份,单击“确定”。
      4. 在弹出界面单击“确定”,执行角色实例主备倒换。
      5. 主备倒换成功后,系统恢复正常运行,执行23更换故障磁盘。

  6. 更换硬盘。
  7. 检查告警是否清除。

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

收集故障信息。

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选“OMS”,单击“确定”。
  3. 单击右上角的编辑按钮设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

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

参考信息

不涉及。