022.常见硬盘检测方式
硬盘监测概述
硬盘异常损坏日常相对概率较高,同时不同的文件系统(xfs,reiserfs,ext3)其检测方式不同。建议使用dmesag查看有没有硬件I/O故障的日志,也可使用用fsck确认是否文件系统异常。
SMART检测硬盘
SMART是一种磁盘自我分析检测技术,硬盘运行中会将主要参数进行记录,主要有:型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。
硬盘运行一段时间后,如上参数会有相应的变动,某些参数超过阀值会出现报警。依靠相应的报警可初步判断硬盘是否接近(已经)损坏。
启用SMART
SMART是和主板BIOS上相应功能配合的,在使用smart之前必须在bios设置中启动相关特性。
硬件特性开启smart的情况下,对于Linux,有相应的smartd服务驻守运行,该进程能监视、分析和汇聚相关硬盘情况。
smartctl简单用法
smartctl可用于对磁盘进行相关检测,主要用法如下:
smartctl -a
smartctl -s on
smartctl -t short
smartctl -t long
smartctl -C -t short
smartctl -C -t long
smartctl -X
smartctl -l selftest
smartctl -l error
提示:首先通过dmesg工具,确认一下硬盘的设备符号。
smartctl使用示例
# smartctl -i /dev/sda
……
SMART support is: Available - device has SMART capability.
SMART support is: Enabled #表示启用了smart支持
# smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
# smartctl -H /dev/sda
……
SMART overall-health self-assessment test result: PASSED
命令释义:
PASSED:这表示硬盘健康状态良好;
FAILED:硬盘不健康,建议更换硬盘。
提示:SMART仅报告磁盘不再健康,但是报警后能持续运行多长时间无法确定。
#smartctl -A /dev/sda #查看硬盘的详细信息,测试硬盘使用时间以及写入字节数
#smartctl -s on /dev/sda #如果没有打开SMART技术,使用该命令打开SMART技术。
#smartctl -t short /dev/sda #后台检测硬盘,消耗时间短;
#smartctl -t long /dev/sda #后台检测硬盘,消耗时间长;
#smartctl -C -t short /dev/sda #前台检测硬盘,消耗时间短;
#smartctl -C -t long /dev/sda #前台检测硬盘,消耗时间长。
#smartctl -X /dev/sda #中断后台检测硬盘。
#smartctl -l selftest /dev/sda #显示硬盘检测日志。
#smartctl -l error /dev/sda #显示硬盘错误汇总。
smart常驻配置
通常执行smartctl需要在服务器终端执行,sarmt也支持作为服务运行在服务端,进程deamon为startd,从而实现定时判断硬盘状态,同时指定报警、日志等。
配置方式
如下示例配置好 smartd.conf 后启动进程即可。
# vi /etc/smartd.conf
/dev/sda -H -m test@test123123.com #配置监控磁盘的健康状态,当SMART中报告 PASSED无视,Failure,则邮件通知
/dev/sda -a -m admin@example.com,root@localhost #监控磁盘的所有属性,当SMART中报告 PASSED无视,Failure,则邮件通知
启动startd服务。
# /etc/init.d/smartd restart #加载配置文件启动
提示:更多smart使用及配置参考:https://www.smartmontools.org/wiki/TocDoc
badblocks检测硬盘
badblocks概述
badblocks命令可以检查磁盘装置中损坏的区块。该命令需要指定所要检查的磁盘设备,及此磁盘区块数。
语法:
badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]
参数:
- -b 指定磁盘的区块大小,单位为字节。
- -o 将检查的结果写入指定的输出文件。
- -s 在检查时显示进度。
- -v 执行时显示详细的信息。
- -w 在检查时,执行写入测试。
- [磁盘设备] 指定要检查的磁盘设备。
- [磁盘区块数] 指定磁盘设备的区块总数。
- [启始区块] 指定要从哪个区块开始检查。
badblocks使用示例
badblocks检测磁盘坏块:
badblocks -s -v /dev/sda1 #显示进度和执行检查的详细情况
# badblocks -s -v /dev/sda
# badblocks -s -w -v /dev/sda2 #显示进度并且以写入的方式检测同时显示详细情况
注意:不能以写的方式检测已经挂载的硬盘
作者:木二
出处:http://www.cnblogs.com/itzgr/
关于作者:云计算、虚拟化,Linux,多多交流!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接!如有其他问题,可邮件(xhy@itzgr.com)咨询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2019-11-14 003.Kubernetes二进制部署准备
2019-11-14 002.Kubernetes简单入门实例