Smartctl-硬盘监控和分析工具
1,安装Smartctl
对于Ubuntu $ sudo apt-get install smartmontools 对于CentOS和RHEL # yum -y install smartmontools 2,常用的磁盘检测命令:(“X”使用硬盘盘符替换)
命令
目的
smartctl -A /dev/X
查看硬盘的详细信息
smartctl -s on /dev/X
打开SMART特性支持
smartctl -s on /dev/X
-S VALUE, --saveauto=VALUE (ATA)
Enable/disable Attribute autosave on device (on/off)
打开SMART属性自动保存功能
smartctl -t short /dev/X
快速检测硬盘
smartctl -t long /dev/X
详细检测硬盘
smartctl -X /dev/X
中断后台检测硬盘
smartctl -l selftest /dev
显示硬盘检测日志
smartctl -l error /dev/X
显示硬盘错误汇总
smartctl -H /dev/X
磁盘健康状态检查
3,测试前需要先卸载所有挂载点 例如: # df -h /dev/sde 551G 299G 224G 58% /data/disk01 /dev/sdf 551G 296G 227G 57% /data/disk02 卸载磁盘 # umount dev/sde # umount dev/sdf 4,自检测试命令: smartctl -t short /dev/X 对硬盘进行短时快速自检,short测试中最多用时两分钟。 smartctl -t long /dev/X 对硬盘进行长时间自检,long测试中没有时间限制,因为它会读取并验证磁盘的每个段。 例如: # smartctl -t long /dev/sde # smartctl -t long /dev/sdf 生成硬盘的详细信息log:smartctl -a /dev/X > smart-all-X-Y .log (“X”使用硬盘盘符替换,“Y”用设备IP代替,生成的[smart-all-X-Y.log]文件需收集保存) smartctl -a /dev/sde > smart-all-sde-2022-11-15.log smartctl -a /dev/sdf > smart-all-sdf-2022-11-15.log
5,分析log:【SAS盘显示结果,其它种类磁盘输出结果可能会有不同】
# vim smart-all-sde-192.172.12.154.log
6,总结 我们还可以通过smartctl -l background [device] 来检查smartctl在后台对潜在坏道的维护, 如果检查到 Recovered via rewrite in-place,表示发生了一次潜在的坏块,硬盘已经自动重定向了一个好块代替它,这种情况越多,表明硬盘的速度就会下降。
如库存的硬盘,做smartctl工具的检测。 具体作法应是: 先启动smartctl -t long [device], 然后进行一次50G的文件写入以及读检测 然后用smartctl -x [device]检查相关的信息。 重点关注:uptime 读出量,写入量(确定硬盘是否是新的) Background long 状态是不是 Completed,如果不能completed肯定是有严重问题。 关注ecc 纠正率,确认盘是较好质量的。
badblocks 检测
Linux badblocks命令用于检查磁盘装置中损坏的区,执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。
1,语法: badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数][启始区块]
2,参数说明: -b<区块大小> 指定磁盘的区块大小,单位为字节。 -o<输出文件> 将检查的结果写入指定的输出文件。 -s 在检查时显示进度。 -v 执行时显示详细的信息。 -w 在检查时,执行写入测试。 [磁盘装置] 指定要检查的磁盘装置。 [磁盘区块数] 指定磁盘装置的区块总数。 [启始区块] 指定要从哪个区块开始检查。
3,测试命令: badblocks -s -v /dev/sdb -o bdblocks-sdb & badblocks -s -v /dev/X -o bdblocks-X-Y & “X”使用硬盘盘符替换,“Y”用设备IP代替 "&"后台运行,目的同时对所有磁盘执行检查
4,实例:
目的:同时对磁盘/dev/sde与/dev/sdf进行检测并写入检测结果到指定文件 # badblocks -s -v /dev/sde -o bdblocks-sde-192.172.12.154.log & # badblocks -s -v /dev/sdf -o bdblocks-sdf-192.172.12.154.log & ~~~~~~~~~~~~~~ [1] 50498 [root@localhost]# 正在检查从 0 到 1953514583的块 Checking for bad blocks (read-only test): 0.18% done, 0:23 elapsed. (0/0/0 errors) [root@localhost]# 0.19% done, 0:24 elapsed. (0/0/0 errors) [root@localhost]# 0.20% done, 0:25 elapsed. (0/0/0 errors) [root@localhost]# ~~~~~~~~~~~~~~ 注:0.20% done 显示检查百分比,0:25 elapsed显示用时/秒 如磁盘坏块较多,用时将相应延长5,检查输出结果 # ls -lh 查看输出文件大小,发现sde盘的输出log有22k大小,而其他盘大小为0,说明sde盘上有坏道
使用“vi”打开sde磁盘log,按G到文件末端会发现共有2191行,而每一行代表磁盘的一个坏道,也就是说磁盘sde上有2191个坏道。