-
Linux
磁盘检测工具
smartctl
p>
的使用和分析?
1
编写目的
在如今大数据的环境中,<
/p>
磁盘的性能和稳定性是非常重要的一个业务因素。
在
Linux
系统中,
smartctl
是较为常用的磁盘检测工具。
本
< br>文
基
于
Linux
系
统
中
smartctl<
/p>
进
行
分
析
,
目
的
在
于
说
明
相
关
工
具
的
使
用
,
并
对
SMART(Self-Monitoring, Analysis and
Reporting Technology)
做一些分析。
2
术语、定义和缩略语
2.1
术语、定义
本文使用的专用术语、定义,见表
2.1
。
表
2.1
术语
/
定义
含义
SMART
Self-Monitoring, Analysis and Reporting
Technology
2.2
缩略语
本文件应用了以下缩略语,见
表
2.2
。
表
2.2
缩略语
原
文
中文含义
SMART
Self-Monitoring,
Analysis
and
Reporting
Technology
自监察分析及报告技
术
3
smartctl
smartctl
是
5 rpm
中的一个命令行工具,
可以执行
SMART<
/p>
任务:
打印
SMART self-te
st
和
error
报告,开启或关闭<
/p>
SMART
自动测试,触发磁盘
self
-test
。
语法:
smartctl [options]
device
device
:
IDE/ATA
磁盘
SCSI devices
磁盘。注意,对于
< br>SATA
磁盘,由于是通过
libata
库来访问,所以要增加参数
。
3.1
[options]
:
参数按照不同的类型来分类。
3.1.1
显示信息
参数:
-h
帮助信息
-V
版本信息
-i
打印基本信息(磁盘设备号、序列号、固件版本?)
-a
打印磁盘所有的
SMART
信息
3.1.2
运行时行为
参数:
-q TYPE
指定输出的安静模式。
TYPE
p>
可以有
3
种选择:
eorsonly
只打印错误日志。
slent
有任何打印。
nserial
不打印序列号
-d TYPE
指定磁盘的类型。如果没有指定,
smartctl
会根据磁盘的名字来
猜测磁盘类型。
-T TYPE
指定当发生错误时,
smartctl
的容忍程度,是否继续运
行。
TYPE
可以有
4
种选择:
conservative
一有错就会退出
normal
p>
如果必须支持的
SMART
命令失败,则退
出
permissive
忽略一次必须支持的
SMART
命令失
败
verypermissive
< br>忽略所有必须支持的
SMART
命令失败
-b TYPE
指定当发生校验错误时,
smar
tctl
的动作。
TYPE
有
3
种选择:
warn
发出警告,继续执行
exit
退出
smartctl
ignore
不发出告警,继续执行
-r TYPE
smartmontools
开发
人员相关。
-n POWERMODE
指定当磁盘处于节能模式时,
smartctl
是否继续检查,
默认是不检查。
< br>POWERMODE
有
4
种选择
:
never
检查
sleep
除了
sleep
< br>模式,检查。
standby
除了
sleep
或
stand
by
模式,检查。
idle
除了
sleep
或
standby
或
idle
模式,见车。
3.1.3
SMART
功能开关
参数:
-s on/off
打开或关闭磁盘的
SMART
功能
-o on/off
打开或关闭
SMART
自动离线检测,该功能每
4
小时就会自动扫描磁盘
是
否有缺陷。
-S on/off
打开或关闭“自动保存厂商指定属性”功能。
3.1.4
SMART
读和显示数据
参数
-H
报告磁盘的是否健康。如果报告不健康,则说明磁盘已经损坏或会在
24
小
时
内损坏。
-c
显示磁盘支持的普通
SMART
功能,以及这些功能当前的状态
。
-A
显示磁盘支持的厂商指定
p>
SMART
特性。这些特性的编号从
1-2
53
,并且有指
定的名字。
-l TYPE
指定显示的
log
类型。
TYPE
有
4
种选择:
error
只显示
error
log
。
selftest
只显示
selftest
log
selective
只显示
selective self-test log
directory
只显示
Log
Directory
-v N,OPTION
显示厂商指定
SMART
特性
N
时,使用厂
商相关的显示方式。
-F TYPE
设置
smartctl
的行为,当出现一些已知但还没有解决的
硬件或软件
bug
时,
smartctl
应该怎么做。
-P TYPE
设置
smartctl
是否对磁盘使用数据库中已有的参数。
3.1.5
SMART
离线测试、自测试
参数
-t TEST
立刻执行测试,可以和
-C
参数一起使用。
TEST
可以有以下几个选择:
offline
离线测试。可以在挂载文件系统的磁盘上使用
short
短时间测试。可以在挂载文件系统的磁盘上使用。
long
长时间测试。可以在挂载文件系统的磁盘上使用。
conveyance [ATA only]
传输
zi
测试。
可以在挂载文件系统的磁盘上使用。
select, N-M
select, N+SIZE [ATA only]
有选
择性测试,测试磁盘的部分
LBA
。
N
表示
LBA
编号,
M
表示结束
LBA
编号,
SIZE
表示测试的
LBA
范围。
-C
在
captive
模式下运行测试。
注意:
(
1
)
-C
必须配合
-t
一起使用,但如果是
-t offline
,
则
-C
不生效。
(
2
)
-C<
/p>
会使得磁盘很忙,所以最好是在没有挂载文件系统的磁盘上使用。
-X
中断
no-
captive
模式下运行的测试。
3.2
常用
example
3.2.1
查看当前整体健康状态
查看
/dev/sda
当前整体监控状态。
p>
PASSED
表示健康,否则意味着磁盘已经故障,或很快就
会发生故障。
smartctl -H
/dev/sda
3.2.2
查看所有信息
打印
< br>/dev/sda
所有的
SMART
信息。
martctl -a /dev/sda
相当于依次执行:
smartctl
–
i
/dev/sda
smartctl -c
/dev/sda
smartctl -A
/dev/sda
smartctl -l
error /dev/sda
smartctl -l selftest
/dev/sda
smartctl -l selective
/dev/sda
3.2.3
开
/
关
SMART
功能
打开或关闭
/dev/sda
的
SMART
功能。
smartctl -s on/off /dev/sda
查看当前
SMART
功能是否开启,可以使用
–
i
参数。
smartctl -i /dev/sda
3.2.4
离线测试
对
/dev/sda
进行离线测试,它的结果主要用来更新
SMA
RT
属性。
smartctl
-t offline /dev/sda
3.2.5
短时间测试
对
/dev/sda
进行短时间测试。
smartctl -t short /dev/sda
3.2.5.1
观察测试进度
通过
-c
参数,可以观察到测试的进度:
#
smartctl -c
/dev/sda
?
Self-test
execution status:
(
242)
Self-test routine in progress...
20% of test remaining.
?
3.2.5.2
观察测试结果
通过
-l selftest
参数,
可以看到
/dev/sda
测试的结果记录:
< br>
“
#1
”代表的那一次测试,
Completed without
error
表示完成,没有错误。
“
#2
”代表的那一次测试,
Abort
ed by host
表示测试被用户终止,还有
90%
没有完成。
#
smartctl -l selftest
/dev/sda
...
Num
Test_Description Status
Remaining
LifeTime(hours) LBA_of_first_error
# 1
Short offline
Completed without error
00%
9535
-
# 2
Extended offline
Aborted
by host
90%
9534
-
...
3.2.6
查看
SMART
属性值
通过
-A
参数,可以看到
/dev/sda
SMART
属性值。
smartctl -A /dev/sda
每一行代表一个
SMART
属性的相关信息。<
/p>
RAW_VALUE:
表示该属性的
实际值,比如
12
行,表示磁盘
pow
er-cycle
的实际次数。
VALUE:
范围是
1
到
254
,由
RAW_VA
LUE
装换而来,装换工作是由磁盘的固件自己完成的。
THRESH:
范围
0
到
255
,门限值,和
VA
LUE
值比较。如果
VALUE
值小于
等于
THRESH
,那么
这个属性就不
正常了。
TYPE: Pre-fail
表示当
VALUE
值小于或等于
T
HRESH
时,磁盘即将会有相关故障。
Old_age
表示当
VALUE
值小于或等于
THRESH
时,磁盘相关属性已经老化。
3.3
smartctl
结构
smartctl
工具的主要结构如下图,
解析参数
后,
就根据参数指定的值设置或查询
SMART
信息。
3.4
SMART
属性
使用
smartctl -A
/dev/sda
能看到很多磁盘的
SMART
属性,可以知道磁盘是否健康。
下面是一个列表,可以知道每个属性的具体含义:
ID
Hex
Attribut name
Description
01
0x01
Read
Error
Rate
(Vendor
specific
raw
value.)
Stores
data
related
to
the
rate of hardware read errors that occurred when
reading data from a disk surface. The raw
value
has
different
structure
for
different
vendors
and
is
often
not
meaningful
as
a
decimal
number.
02
0x02
Throughput
Performance
Overall
(general)
throughput
performance
of
a
hard
disk
drive.
If
the value
of
this
attribute
is
decreasing
there
is
a
high
probability
that
there is a problem with the disk.
03
0x03
Spin-Up Time
Average time of spindle spin up (from
zero RPM to fully
operational
[millisecs]).
04
0x04
Start/Stop
Count
A
tally
of
spindle
start/stop
cycles.
The
spindle
turns on, and hence
the count is increased, both when the hard disk is
turned on after having
-
-
-
-
-
-
-
-
-
上一篇:fault.c
下一篇:WebRTC源代码分析