故障定位方法-磁盘故障定位手段

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。磁盘故障有的会导致文件系统损坏,比如磁盘未挂载,集群管理自动定期做磁盘检测时会识别故障并将实例停止,查看集群状态时对应实例状态异常;有的不会导致文件系统损坏,比如磁盘空间不足,集群管理无法检测到,服务进程访问到故障磁盘会异常退出,比如:数据库无法启动、checksum校验不对、页面读写失败、页面校验错误等。对于会导致文件系统损坏的故障,查看集群状态会显示对应实例状态持续为Unknown,定位方法如下:查看cm_agent日志,日志保存在mpp/omm/cm/cm_agent,日志中会有类似“data path disc wri

常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。

磁盘故障有的会导致文件系统损坏,比如磁盘未挂载,集群管理自动定期做磁盘检测时会识别故障并将实例停止,查看集群状态时对应实例状态异常;有的不会导致文件系统损坏,比如磁盘空间不足,集群管理无法检测到,服务进程访问到故障磁盘会异常退出,比如:数据库无法启动、checksum校验不对、页面读写失败、页面校验错误等。

对于会导致文件系统损坏的故障,查看集群状态会显示对应实例状态持续为Unknown,定位方法如下:
查看cm_agent日志,日志保存在mpp/omm/cm/cm_agent,日志中会有类似“data path disc writable test failed”异常,说明文件系统已损坏。

文件系统损坏可能是磁盘未挂载,通过ls –l可以看到该磁盘对应的目录权限异常,如下:

ls -l
ls: cannot access data
total 108
drwxr-xr-x 2 root root 4096 2014-10-24 00:00 bin
drwxr-xr-x 3 root root 4096 2014-10-24 00:07 boot
d????????? ? ? ? ? ? data
也可能是磁盘出现坏块,然后操作系统将文件系统保护起来,拒绝读写,可以使用磁盘坏块检查工具如badblocks检查磁盘是否有坏块,如下:

badblocks /dev/sda2 -s -v
Checking blocks to 30681000
Checking for bad blocks (read-only test): 306809600674112/ 306810000000
30680964
30680973
...
done
Pass completed, 37 bad blocks found.
对于不会导致文件系统损坏的故障,服务进程访问到故障磁盘会异常退出,定位方法如下:
查看CN/DN日志,日志保存在mpp/omm/pg_log下。日志中会有文件读写错误,如“No space left on device”、“ invalid page header in block 122838 of relation base/16385/152715”。

文件读写错误可能是磁盘空间不足,通过df -h可以看到磁盘空间已达100%%,如下:

df -h
-文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda3 258G 245G 100%% /
devtmpfs 48G 132K 48G 1%% /dev
tmpfs 48G 4.0K 48G 1%% /dev/shm
/dev/sda1 1004M 45M 908M 5%% /boot
/dev/sdb 14T 449G 13T 4%% /mnt/slicefile1
/dev/sdc 14T 1.3T 12T 10%% /mnt/slicefile2
如果磁盘是RAID5,执行df命令查看到磁盘空间已满,但可能空间并没有写满,可能是一个raid组里发生了多盘故障,通过Megacli工具可以看到一个以上raid盘出现故障,如下:

./megacli64 -cfgdsply -aall

Adapter:
Product Name: PERC 5/i Integrated
Memory: 256MB
BBU: Present

Serial No: 12345

RAID Level: Primary-1, Secondary-, RAID Level Qualifier-
Size:285568MB
State: Optimal
Physical Disk:
Media Error Count:
Other Error Count:
Firmware state: Offline
Physical Disk: 1
Media Error Count:
Other Error Count:
Firmware state: Offline
如果是因为机器异常掉电,导致数据页面丢失场景,可能是因为买手机靓号平台磁盘Disk Cache Policy没有关闭导致,查看Disk Cache Policy是否关闭的命令如下:
plat1:/opt/MegaRAID/MegaCli # ./MegaCli64 -LDInfo -Lall -aAll
Adapter -- Virtual Drive Information:
Virtual Drive: (Target Id: )
Name :
RAID Level : Primary-1, Secondary-, RAID Level Qualifier-0
Size : 557.861 GB
Sector Size : 512
Mirror Data : 557.861 GB
State : Optimal
Strip Size : 256 KB
Number Of Drives : 2
Span Depth : 1
Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy : Disabled
Encryption Type : None
PI type: No PI
Is VD Cached: No
如果查看Disk Cache Policy不是Disabled,那么执行下面命令将其关闭:

plat1:/opt/MegaRAID/MegaCli # ./MegaCli64 -LDSetProp -DisDskCache -Immediate -Lall -aAll
Set Disk Cache Policy to Disabled on Adapter , VD (target id: ) success
Set Disk Cache Policy to Disabled on Adapter , VD 1 (target id: 1) success
Set Disk Cache Policy to Disabled on Adapter , VD 2 (target id: 2) success
Set Disk Cache Policy to Disabled on Adapter , VD 3 (target id: 3) success
Set Disk Cache Policy to Disabled on Adapter , VD 4 (target id: 4) success
Set Disk Cache Policy to Disabled on Adapter , VD 5 (target id: 5) success
Set Disk Cache Policy to Disabled on Adapter , VD 6 (target id: 6) success
Exit Code: x00

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
运维 监控 Devops
运维自动化:提升效率与减少人为错误的策略
【8月更文挑战第12天】在信息技术的海洋中,运维自动化如同一艘装备精良的航船,引领企业驶向高效、精准的彼岸。本文将深入探讨运维自动化的重要性,分析其如何通过智能化工具和策略,实现流程优化、效率提升及错误率降低。我们将一同见证,当创新技术与运维实践相结合时,是如何为企业带来革命性变革的。
|
2月前
|
运维 监控 安全
两种策略可保护企业免受下一次大规模技术故障的影响
两种策略可保护企业免受下一次大规模技术故障的影响
|
4月前
|
运维 监控 持续交付
自动化运维:提升效率与减少人为错误的关键策略
在信息技术快速发展的当下,自动化运维成为企业追求高效、稳定服务的重要手段。本文将探讨自动化运维的概念、实施步骤及其对企业运维工作的深远影响,揭示通过自动化工具和流程优化来提升工作效率和减少人为错误的有效途径。文章还将分享一些行业内的成功案例,为读者提供实践自动化运维的参考和启示。 【7月更文挑战第16天】
41 3
|
4月前
|
运维 持续交付
运维自动化:提升效率与减少人为错误的关键策略
本文深入探讨了运维自动化在现代IT管理中的核心角色,从技术演进的角度分析了自动化工具的发展,并结合具体案例和统计数据,展示了自动化如何显著提高运维效率与准确性。文章还对运维自动化实施过程中的挑战进行了讨论,并提出了相应的解决策略,以期为企业实现运维自动化提供实用的指导。
|
5月前
|
运维 监控 持续交付
自动化运维:提升效率与减少人为错误的现代策略
在数字化时代,自动化运维成为企业追求高效、稳定服务的关键。本文将深入探讨自动化运维的核心价值、实现方法以及面临的挑战,旨在为读者提供一套实用的自动化运维解决方案,帮助企业构建更加灵活、可靠的IT基础设施。
|
SQL 运维 测试技术
记一次由于操作失误致使数据库瘫痪的故障分析与解决方案
在这篇文章中,我将分享一次由于操作不当导致数据库瘫痪的经验。通过回顾故障发生的时间、系统简介、时间线、问题分析和经验总结等方面的内容。讨论操作时间不当、操作流程不当、缺乏执行计划和限流机制等问题,并提出一些建议,如确认数据库更新时间、优化更新操作、使用限流工具、设置超时时间和重试机制、调整数据库参数以及定期维护和优化数据库。通过分享这次经验,我希望能帮助他人避免类似的错误,并提高数据库操作的准确性和稳定性。
106 0
|
SQL 数据库连接 API
应用性能管理场景下自动探查风险
本场景主要内容是体验如何在应用性能管理场景下,模拟数据的导入、读取和预处理的过程,了解自动探查风险。
|
缓存 JSON 运维
如何避免大规模线上故障
如何避免大规模线上故障
177 0
|
缓存 运维 监控
IT硬件故障的主要原因和预防的最佳实践
企业组织面临的超过 45% 的网络中断完全是由于硬件故障造成的,因此 24x7 全天候监控硬件至关重要
371 0
IT硬件故障的主要原因和预防的最佳实践
|
存储 Kubernetes Java
K8s集群稳定性提升手段
K8s集群稳定性提升手段
K8s集群稳定性提升手段