概述

随着硬盘容量、速度的快速发展,硬盘的可靠性问题越来越重要,今天的单块硬盘存储容量可轻松达到1TB,硬盘损坏带来的影响非常巨大。


不同的文件系统(xfs,reiserfs,ext3)都有自己的检测和修复工具。检测之前可以先使用dmesg命令查看有没有硬件I/O故障的日志,如果有,先用fsck看看是不是文件系统有问题,如果不是则可以使用下面介绍硬盘检测和优化方法来修复它。grep “error” /va/log/messages*;


SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及每一块硬盘(包括IDE、SCSI),在运行的时候都会将自身的若干参数记录下来,这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。硬盘运行了几千小时后,很多内在的物理参数都会发生变化,某一参数超过报警阈值,则说明硬盘接近损坏,此时硬盘依然在工作,如果用户不理睬这个报警继续使用,那么硬盘将变得非常不可靠,随时可能故障。


如何启用SMART

SMART是和主板BIOS上相应功能配合的,要使用SMART,必须先进入到主板BIOS设置里边启动相关设置。一般从Pentium2级别起的主板,都支持SMART,BIOS启动以后,就是操作系统级别的事情了(Windows没有内置SMART相关工具,需要安装第三方工具软件),好在Linux上很早就有了SMART支持了,如果把Linux装在VMware等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd。这个服务器就是smart的daemon进程(因为vmware虚拟机的硬盘不支持SMART,所以报错)。smartd是一个守护进程(一个帮助程序),它能监视拥有自我监视,分析和汇报技术(Self-Monitoring,Analysis, and Reporting Technology -SMART)的硬盘。SMART体系使得硬盘能监视并汇报自己的运行状况.它的一个重要特性是能够预测失败,使得系统管理员能避免数据丢失。


smartctl简单用法

smartctl -a <device> 说明:检查该设备是否已经打开SMART技术。
 smartctl -s on <device> 说明:如果没有打开SMART技术,使用该命令打开SMART技术。
smartctl -t short <device>说明:后台检测硬盘,消耗时间短;
smartctl -t long <device> 说明:后台检测硬盘,消耗时间长;
smartctl -C -t short <device> 说明:前台检测硬盘,消耗时间短;
smartctl -C -t long <device> 说明:前台检测硬盘,消耗时间长。其实就是利用硬盘SMART的自检程序。
smartctl -X <device> 说明:中断后台检测硬盘。
smartctl -l selftest <device> 说明:显示硬盘检测日志。
smartctl -l error <device> 说明:显示硬盘错误汇总。

smartctl使用实例

如何确定硬盘设备符号?
首先通过dmesg工具,确认一下硬盘的设备符号。例如一个IDE硬盘连接到Primary IDE 总线上的Slave位置,硬盘设备符号是/dev/hdb,hdb中的h代表IDE,如果显示为sdb,则代表SATA和SCSI,最后一个字幕b代表Primary总线,第二块硬盘即Slave位置,确认硬盘是否打开了SMART支持:

# smartctl -i /dev/sda
smartctl 5.40 2010-10-16 r3189 [i386-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net=== START OF INFORMATION SECTION ===
Device Model:     HITACHI HTS543225L9SA00
Serial Number:    090131FB2F32YLG28JEA
Firmware Version: FBEZC48C
User Capacity:    250,059,350,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 3f
Local Time is:    Wed May 25 10:10:39 2011 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled      //表示启用了smart支持

如果看到SMART support is: Disabled表示SMART未启用,执行如下命令,启动SMART

# smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
smartctl 5.40 2010-10-16 r3189 [i386-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.

现在硬盘的SMART功能已经被打开,执行如下命令查看硬盘的健康状况

# smartctl -H /dev/sda
smartctl 5.40 2010-10-16 r3189 [i386-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

请注意result后边的结果:PASSED,这表示硬盘健康状态良好;如果这里显示FAILED,那么最好立刻给服务器更换硬盘。SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的。通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间,有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了。但是一旦出现报警,侥幸心里是万万不能的……
如果需要定期登录到服务器上运行smartctl比较麻烦时,linux还提供了系统进程smartd,编辑配置文件:

 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,立刻用邮件通知用户指定的邮箱
 /dev/twa0 -d 3ware,0 -a -s L/../../7/00     说明:监控3ware 9000控制器上的第一个ATA磁盘的所有属性,在每个礼拜天的00:00--01:00进行长格式的自我检测
/dev/sg2 -d areca,1 -a  -s L/../(01|15)/./22 说明:监控Areca Raid控制器上的第一个SATA磁盘的所有属性,在每个礼拜月的第1天和第15天的22:00--23:00进行长格式的自我检测
-s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03)   说明:在每天的00:00,06:00,12:00,18:00进行离线的自检,并在每天的01:00-02:00进行短格式的自检,并在每个礼拜6的03:00-04:00进行长格式的自检
/etc/init.d/smartd restart说明:配置好 smartd.conf后需执行以下命令即可生效

其他和smartd.conf相关的配置可参见:
http://smartmontools.sourceforge.net/man/smartd.conf.5.html

【开发工具】【smartctl】硬盘检测工具(smartctl)的使用相关推荐

  1. linux硬盘检测工具,CrazyDiskInfo 硬盘检测工具 Linux版 | 厘米天空

    之前本站介绍过CrystalDiskInfo这款windows下的硬盘检测工具,今天来看看Linux下的版本CrazyDiskInfo.CrazyDiskInfo是一款用于Unix类系统的交互式TUI ...

  2. 好用的系统检测工具与硬盘检测工具

    CrystalDiskInfo.8.2.4: 硬盘查看器 Speccy系统信息查看: 硬盘检测工具(HD Tune Pro)5.75汉化专业版: 上面有收集:https://download.csdn ...

  3. 硬盘检测工具Smartmontools安装、部署、使用

    在服务器管理的实际环境中,硬盘是最容易出现问题及发生故障的硬件,而且硬盘中存储着大量重要的数据,万一出现故障所造成的损失也是无法估计的,轻则需要化费大量的时间与精力去做数据恢复,重则硬盘报废,里面重要 ...

  4. 硬盘检测工具+linux,linux硬盘检测工具:Smartmontools使用指南

    linux硬盘检测工具:Smartmontools使用指南 来源:互联网 作者:佚名 时间:2013-04-10 13:32 在服务器管理的实际环境中,硬盘是最容易出现问题及发生故障的硬件,而且硬盘中 ...

  5. linux下的硬盘检测工具 Smartmontools

    1.1 什么是Smartmontools? Smartmontools是一种硬盘检测工具,通过控制和管理硬盘的SMART(Self Monitoring Analysis and Reporting ...

  6. macos上的硬盘检测工具_如何在MacOS上使用双镜头面部检测器(DSFD)实现90%以上的精度

    macos上的硬盘检测工具 新程序员指南: (New Programmer's Guide:) 介绍: (Introduction:) This article is for those of us ...

  7. 电脑硬件检测_硬盘检测工具哪个好?在win10中这样检查磁盘健康状态就对了

    硬盘是电脑的灵魂,而电脑是存储所有最重要数据的地方.尽管大多数电脑硬件都可以更换,但是如果你还没有创建备份,则硬盘上的宝贵数据将无法替换.因此,确保硬盘保持健康是至关重要的. 有多种检查硬盘健康状况的 ...

  8. 优缺点 快速扫描 硬盘监测_有了这6款mac硬盘检测工具 你就能够快速检测磁盘的状态和错误情况...

    在电脑硬件中,硬盘算是比较脆弱的硬件之一,但又是最重要的硬件之一,因其存储着电脑所有重要数据,因此需要定期检测,以免丢失数据,所以检测工具就得选比较可靠的,有了这6款mac硬盘检测工具,你就能够快速检 ...

  9. CrystalDiskInfo硬盘检测工具 标准版及萌妹版

    点击下下载来源:CrystalDiskInfo硬盘检测工具 标准版及萌妹版 想要检查您的驱动器是否有任何错误,以及为了提高驱动器的性能,现在你只需要一个名为CrystalDiskInfo的硬盘检测工具 ...

  10. 五个优秀的硬盘检测工具

    虽然硬盘价格不断大幅跳水,但它显然一直是我们最宝贵的资产,硬盘一旦损坏,所有下载的音乐.铃声.软件,工作的文档.报表.模型.图片都不复存在.本文介绍五个最好的硬盘检测工具,它们各有特色,有的可以监视局 ...

最新文章

  1. CentOS7(64位)安装Jupyter Notebook
  2. 影响程序员生涯的三个错误观念,你千万不要犯!
  3. linux 查看显卡信号_Linux下如何查看NVIDIA显卡信息
  4. 国贸专业要考计算机二级,国贸专业考计算机二级有没有必要
  5. 制作Docker镜像的两种方式
  6. MongoDB模糊查询-查询某月的数据
  7. 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)
  8. linux查看内核分区,如何根据bootloader中MTD分区信息修改linux内核中的MTD分区
  9. RAW-socket
  10. 【深度学习基本概念】上采样、下采样、卷积、池化
  11. ie8打不开java项目_IE8点击打开没反应,尝试多种方法始终打不开
  12. 图像处理中关于矩的解释
  13. AngularJS停止定时器$interval
  14. IllegalStateException: Fragment already added
  15. 高考数学有得用计算机吗,高中数学为什么不让用计算器?
  16. MQTT网关连接阿里云平台案例教程
  17. 龙卷风迁徙地图,原来可以这样做
  18. 堡垒机如何传输文件_mac 堡垒机传文件
  19. ojbk的sas proc 过程之transpose
  20. 【python实现网络爬虫22】唯品会商品信息实战步骤详解

热门文章

  1. http中的301和302的区别
  2. gearman mysql_gearman的持久化,以mysql的方式
  3. “了解高并发底层原理”,面试官:讲一下MESI(缓存一致性协议)吧
  4. css中margin详细介绍
  5. 12306 购票小助手
  6. 标签noscript
  7. 使用Navicat进行ssh通道连接MySQL数据库
  8. decode函数用法
  9. php退款系统设计思路,支付系统设计实现(1)——支付退款
  10. 程序化交易接口有哪些类型策略?