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性能下降,从而影响系统的响应速度和吞吐量。这可能会导致客户的业务运行变慢(例如:作业提交运行变慢、页面响应迟钝、接口响应超时等),甚至出现崩溃或错误。
- 系统故障:慢盘故障可能会导致系统故障,从而导致客户的业务受到影响。如果慢盘上存储的数据包含关键信息,可能会导致系统崩溃或数据丢失。
可能原因
磁盘老化或者磁盘坏道。
处理步骤
检查磁盘状态。
- 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”。
- 查看该告警的详细信息,查看定位信息中“主机名”字段和“磁盘名”字段的值,获取该告警产生的故障磁盘信息。
- 确认上报告警的节点是否为虚拟化环境。
- 请检查虚拟化环境提供的存储性能是否满足硬件要求,检查完毕之后执行5。
- 以root用户登录告警节点,执行df -h命令,查看输出内容是否包含“磁盘名”字段的值。
- 执行lsblk命令,是否可以查到“磁盘名”字段值与磁盘设备的映射关系。
- 以root用户登录上报告警的节点,执行lsscsi | grep "/dev/sd[x]"命令查看磁盘的设备信息,判断磁盘是否建立了RAID。
其中/dev/sd[x]为2中获取到的上报告警的磁盘名称。
例如执行:
lsscsi | grep "/dev/sda"
如果命令执行结果第三列显示ATA、SATA或者SAS,说明磁盘没有建立RAID;显示其他信息,则该磁盘可能建立了RAID。
- 执行smartctl -i /dev/sd[x]命令检查硬件是否支持smart。
例如执行:
smartctl -i /dev/sda
如果命令执行结果中包含“SMART support is: Enabled”,表示磁盘支持smart;执行结果中包含“Device does not support SMART”或者其他,表示磁盘不支持smart。
- 执行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,则认为磁盘故障,需要更换。
- 执行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自检。
- 执行smartctl -t long /dev/sd[x]命令触发磁盘smart自检。命令执行后,会提示自检完成的时间,在等待自检完成后,重新执行9和10,检查磁盘是否正常。
例如执行:
smartctl -t long /dev/sda
- 执行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中记录的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,则认为磁盘故障,需要更换。
- 执行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自检。
- 执行smartctl -d [sat|scsi]+megaraid,[DID] -t long /dev/sd[x]命令触发磁盘smart自检。命令执行后,会提示自检完成的时间,在等待自检完成后,重新执行13和14,检查磁盘是否正常。
例如执行:
smartctl -d sat+megaraid,2 -t long /dev/sda
- 磁盘不支持smart,通常是因为配置的RAID卡不支持,此时需要使用对应RAID卡厂商的检查工具进行处理,然后执行17。
例如LSI一般是MegaCLI工具。
- 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”,单击该告警操作列的“清除”,并继续观察该告警,查看同一块磁盘的告警是否会继续上报。
如果当前磁盘出现三次以上该告警,建议用户更换磁盘。
- 是,执行18。
- 否,操作结束。
更换磁盘。
- 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”。
- 查看该告警的详细信息,查看定位信息中对应的“主机名”字段和“磁盘名”字段的值,获取该告警上报的故障磁盘信息。
- 确认当前产生告警的主机类型是否为主OMS节点或主备模式实例的主节点。
- 以root用户登录产生告警的节点,执行以下命令查看故障磁盘的挂载点。
df -h | grep "故障磁盘名称"
- 执行以下操作,触发主备倒换紧急恢复系统故障。
- 主OMS节点:
若由于慢盘故障导致系统运行卡顿、页面刷新不及时或接口响应缓慢无法进行运维操作,且当前产生告警的主机为主OMS节点,如果需要紧急恢复系统正常运行,建议使用如下操作手动执行主备倒换尝试恢复业务:
- 使用omm用户登录主OMS节点。
- 执行以下命令进行主备倒换。
- 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
- 主备倒换成功后,系统恢复正常运行,执行23更换故障磁盘。
- 主备模式实例的主节点:
若产生告警的主机为主备模式实例的主节点,且慢盘故障影响实例的正常运行无法进行运维操作,如果需要紧急恢复系统正常运行,建议在Manager页面执行主备倒换尝试恢复业务。
- 登录FusionInsight Manager,选择“集群 > 服务 > 待操作服务名称”。
- 在服务详情页面单击“更多”,选择“执行xxx倒换”。
- 输入当前登录的用户密码确认身份,单击“确定”。
- 在弹出界面单击“确定”,执行角色实例主备倒换。
- 主备倒换成功后,系统恢复正常运行,执行23更换故障磁盘。
- 主OMS节点:
- 更换硬盘。
- 检查告警是否清除。
- 是,操作结束。
- 否,执行25。
收集故障信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。