Linux磁盤(pán)檢測(cè)工具smartctl的使用和分析
1 編寫(xiě)目的
在如今大數(shù)據(jù)的環(huán)境中,磁盤(pán)的性能和穩(wěn)定性是非常重要的一個(gè)業(yè)務(wù)因素。在Linux系統(tǒng)中,smartctl是較為常用的磁盤(pán)檢測(cè)工具。
本文基于Linux系統(tǒng)中smartctl進(jìn)行分析,目的在于說(shuō)明相關(guān)工具的使用,并對(duì)SMART(Self-Monitoring, Analysis and Reporting Technology)做一些分析。
2 術(shù)語(yǔ)、定義和縮略語(yǔ)
2.1 術(shù)語(yǔ)、定義
本文使用的專(zhuān)用術(shù)語(yǔ)、定義,見(jiàn)表2.1。
表2.1
術(shù)語(yǔ)/定義含義
SMARTSelf-Monitoring, Analysis and Reporting Technology
2.2 縮略語(yǔ)
本文件應(yīng)用了以下縮略語(yǔ),見(jiàn)表2.2。
表2.2
縮略語(yǔ)原 文中文含義
SMARTSelf-Monitoring, Analysis and Reporting Technology自監(jiān)察分析及報(bào)告技術(shù)
3 smartctl
smartctl是smartmontools-5.38-2.el5 rpm中的一個(gè)命令行工具,可以執(zhí)行SMART任務(wù):打印SMART self-test和error報(bào)告,開(kāi)啟或關(guān)閉SMART自動(dòng)測(cè)試,觸發(fā)磁盤(pán)self-test。
語(yǔ)法:
smartctl [options] device
device:
"/dev/hd[a-t]" IDE/ATA 磁盤(pán)
"/dev/sd[a-z]" SCSI devices磁盤(pán)。注意,對(duì)于SATA磁盤(pán),由于是通過(guò)libata
庫(kù)來(lái)訪問(wèn),所以要增加參數(shù)"-d ata"。
3.1 [options]:
參數(shù)按照不同的類(lèi)型來(lái)分類(lèi)。
3.1.1 顯示信息 參數(shù):
-h 幫助信息
-V 版本信息
-i 打印基本信息(磁盤(pán)設(shè)備號(hào)、序列號(hào)、固件版本…)
-a 打印磁盤(pán)所有的SMART信息
3.1.2 運(yùn)行時(shí)行為 參數(shù):
-q TYPE 指定輸出的安靜模式。
TYPE可以有3種選擇:
eorsonly 只打印錯(cuò)誤日志。
slent 有任何打印。
nserial 不打印序列號(hào)
-d TYPE 指定磁盤(pán)的類(lèi)型。如果沒(méi)有指定,smartctl會(huì)根據(jù)磁盤(pán)的名字來(lái)
猜測(cè)磁盤(pán)類(lèi)型。
-T TYPE 指定當(dāng)發(fā)生錯(cuò)誤時(shí),smartctl的容忍程度,是否繼續(xù)運(yùn)行。
TYPE可以有4種選擇:
conservative 一有錯(cuò)就會(huì)退出
normal 如果必須支持的SMART命令失敗,則退出
permissive 忽略一次必須支持的SMART命令失敗
verypermissive 忽略所有必須支持的SMART命令失敗
-b TYPE 指定當(dāng)發(fā)生校驗(yàn)錯(cuò)誤時(shí),smartctl的動(dòng)作。
TYPE有3種選擇:
warn 發(fā)出警告,繼續(xù)執(zhí)行
exit 退出smartctl
ignore 不發(fā)出告警,繼續(xù)執(zhí)行
-r TYPE smartmontools開(kāi)發(fā)人員相關(guān)。
-n POWERMODE 指定當(dāng)磁盤(pán)處于節(jié)能模式時(shí),smartctl是否繼續(xù)檢查,
默認(rèn)是不檢查。
POWERMODE有4種選擇:
never 檢查
sleep 除了sleep模式,檢查。
standby 除了sleep或standby模式,檢查。
idle 除了sleep或standby或idle模式,見(jiàn)車(chē)。
3.1.3 SMART功能開(kāi)關(guān) 參數(shù):
-s on/off 打開(kāi)或關(guān)閉磁盤(pán)的SMART功能
-o on/off 打開(kāi)或關(guān)閉SMART自動(dòng)離線檢測(cè),該功能每4小時(shí)就會(huì)自動(dòng)掃描磁盤(pán)是
否有缺陷。
-S on/off 打開(kāi)或關(guān)閉“自動(dòng)保存廠商指定屬性”功能。
3.1.4 SMART 讀和顯示數(shù)據(jù) 參數(shù)
-H 報(bào)告磁盤(pán)的是否健康。如果報(bào)告不健康,則說(shuō)明磁盤(pán)已經(jīng)損壞或會(huì)在24小時(shí)
內(nèi)損壞。
-c 顯示磁盤(pán)支持的普通SMART功能,以及這些功能當(dāng)前的狀態(tài)。
-A 顯示磁盤(pán)支持的廠商指定SMART特性。這些特性的編號(hào)從1-253,并且有指
定的名字。
-l TYPE 指定顯示的log類(lèi)型。
TYPE有4種選擇:
error 只顯示error log。
selftest 只顯示selftest log
selective 只顯示selective self-test log
directory 只顯示Log Directory
-v N,OPTION 顯示廠商指定SMART特性N時(shí),使用廠商相關(guān)的顯示方式。
-F TYPE 設(shè)置smartctl的行為,當(dāng)出現(xiàn)一些已知但還沒(méi)有解決的硬件或軟件bug時(shí),
smartctl應(yīng)該怎么做。
-P TYPE 設(shè)置smartctl是否對(duì)磁盤(pán)使用數(shù)據(jù)庫(kù)中已有的參數(shù)。
3.1.5 SMART 離線測(cè)試、自測(cè)試 參數(shù)
-t TEST 立刻執(zhí)行測(cè)試,可以和-C參數(shù)一起使用。
TEST可以有以下幾個(gè)選擇:
offline 離線測(cè)試??梢栽趻燧d文件系統(tǒng)的磁盤(pán)上使用
short 短時(shí)間測(cè)試。可以在掛載文件系統(tǒng)的磁盤(pán)上使用。
long 長(zhǎng)時(shí)間測(cè)試??梢栽趻燧d文件系統(tǒng)的磁盤(pán)上使用。
conveyance [ATA only]傳輸zi測(cè)試??梢栽趻燧d文件系統(tǒng)的磁盤(pán)上使用。
select, N-M
select, N+SIZE [ATA only]有選擇性測(cè)試,測(cè)試磁盤(pán)的部分LBA。N表示
LBA編號(hào),M表示結(jié)束LBA編號(hào),SIZE表示測(cè)試的LBA
范圍。
-C 在captive模式下運(yùn)行測(cè)試。
注意:(1)-C必須配合-t一起使用,但如果是-t offline,則-C不生效。
(2)-C會(huì)使得磁盤(pán)很忙,所以最好是在沒(méi)有掛載文件系統(tǒng)的磁盤(pán)上使用。
-X 中斷no-captive模式下運(yùn)行的測(cè)試。
3.2 常用example
3.2.1 查看當(dāng)前整體健康狀態(tài)
查看/dev/sda當(dāng)前整體監(jiān)控狀態(tài)。PASSED表示健康,否則意味著磁盤(pán)已經(jīng)故障,或很快就會(huì)發(fā)生故障。
smartctl -H /dev/sda
3.2.2 查看所有信息
打印/dev/sda所有的SMART信息。
martctl -a /dev/sda
相當(dāng)于依次執(zhí)行:
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 開(kāi)/關(guān)SMART功能
打開(kāi)或關(guān)閉/dev/sda 的SMART功能。
smartctl -s on/off /dev/sda
查看當(dāng)前SMART功能是否開(kāi)啟,可以使用 –i 參數(shù)。
smartctl -i /dev/sda
3.2.4 離線測(cè)試
對(duì)/dev/sda進(jìn)行離線測(cè)試,它的結(jié)果主要用來(lái)更新SMART 屬性。
smartctl -t offline /dev/sda
3.2.5 短時(shí)間測(cè)試[!--empirenews.page--]
對(duì)/dev/sda進(jìn)行短時(shí)間測(cè)試。
smartctl -t short /dev/sda
3.2.5.1 觀察測(cè)試進(jìn)度
通過(guò)-c 參數(shù),可以觀察到測(cè)試的進(jìn)度:
# smartctl -c /dev/sda
…
Self-test execution status: ( 242) Self-test routine in progress...
20% of test remaining.
…
3.2.5.2 觀察測(cè)試結(jié)果
通過(guò)-l selftest 參數(shù),可以看到/dev/sda測(cè)試的結(jié)果記錄:
“#1”代表的那一次測(cè)試,Completed without error表示完成,沒(méi)有錯(cuò)誤。
“#2”代表的那一次測(cè)試,Aborted by host表示測(cè)試被用戶(hù)終止,還有90%沒(méi)有完成。
# 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屬性值
通過(guò)-A參數(shù),可以看到/dev/sda SMART屬性值。
smartctl -A /dev/sda
3.4 SMART 屬性
使用smartctl -A /dev/sda能看到很多磁盤(pán)的SMART 屬性,可以知道磁盤(pán)是否健康。
下面是一個(gè)列表,可以知道每個(gè)屬性的具體含義:
IDHexAttribut nameDescription
010x01Read 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.
020x02Throughput PerformanceOverall (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.
030x03Spin-Up TimeAverage time of spindle spin up (from zero RPM to fully operational [millisecs]).
040x04Start/Stop CountA 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 before been turned entirely off (disconnected from power source) and when the hard disk returns from having previously been put to sleep mode.
050x05Reallocated Sectors CountCount of reallocated sectors. When the hard drive finds a read/write/verification error, it marks that sector as "reallocated" and transfers data to a special reserved area (spare area). This process is also known as remapping, and reallocated sectors are called "remaps". The raw value normally represents a count of the bad sectors that have been found and remapped. Thus, the higher the attribute value, the more sectors the drive has had to reallocate. This allows a drive with bad sectors to continue operation; however, a drive which has had any reallocations at all is significantly more likely to fail in the near future.[2]While primarily used as a metric of the life expectancy of the drive, this number also affects performance. As the count of reallocated sectors increases, the read/write speed tends to become worse because the drive head is forced to seek to the reserved area whenever a remap is accessed. A workaround which will preserve drive speed at the expense of capacity is to create a disk partition over the region which contains remaps and instruct the operating system to not use that partition.
060x06Read Channel MarginMargin of a channel while reading data. The function of this attribute is not specified.
070x07Seek Error Rate(Vendor specific raw value.) Rate of seek errors of the magnetic heads. If there is a partial failure in the mechanical positioning system, then seek errors will arise. Such a failure may be due to numerous factors, such as damage to a servo, or thermal widening of the hard disk. The raw value has different structure for different vendors and is often not meaningful as a decimal number.
080x08Seek Time PerformanceAverage performance of seek operations of the magnetic heads. If this attribute is decreasing, it is a sign of problems in the mechanical subsystem.
090x09Power-On Hours (POH)Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state.
100x0ASpin Retry CountCount of retry of spin start attempts. This attribute stores a total count of the spin start attempts to reach the fully operational speed (under the condition that the first attempt was unsuccessful). An increase of this attribute value is a sign of problems in the hard disk mechanical subsystem.
110x0BRecalibration Retries orCalibration Retry CountThis attribute indicates the count that recalibration was requested (under the condition that the first attempt was unsuccessful). An increase of this attribute value is a sign of problems in the hard disk mechanical subsystem.
120x0CPower Cycle CountThis attribute indicates the count of full hard disk power on/off cycles.
130x0DSoft Read Error RateUncorrected read errors reported to the operating system.[!--empirenews.page--]
1800xB4Unused Reserved Block Count Total"Pre-Fail" Attribute used at least in HP devices.
1830xB7SATA Downshift Error CountWestern Digital and Samsung attribute.
1840xb8End-to-End error / IOEDC This attribute is a part of Hewlett-Packard's SMART IV technology, as well as part of other vendors' IO Error Detection and Correction schemas, and it contains a count of parity errors which occur in the data path to the media via the drive's cache RAM.
1850xB9Head StabilityWestern Digital attribute.
1860xBAInduced Op-Vibration DetectionWestern Digital attribute.
1870xBBReported Uncorrectable ErrorsThe count of errors that could not be recovered using hardware ECC .
1880xBCCommand TimeoutThe count of aborted operations due to HDD timeout. Normally this attribute value should be equal to zero and if the value is far above zero, then most likely there will be some serious problems with power supply or an oxidized data cable.
1890xBDHigh Fly WritesHDD producers implement a Fly Height Monitor that attempts to provide additional protections for write operations by detecting when a recording head is flying outside its normal operating range. If an unsafe fly height condition is encountered, the write process is stopped, and the information is rewritten or reallocated to a safe region of the hard drive. This attribute indicates the count of these errors detected over the lifetime of the drive.
This feature is implemented in most modern Seagate drives and some of Western Digital’s drives, beginning with the WD Enterprise WDE18300 and WDE9180 Ultra2 SCSI hard drives, and will be included on all future WD Enterprise products.
1900xBEAirflow Temperature (WDC) resp.Airflow Temperature Celsius (HP)Airflow temperature on Western Digital HDs (Same as temp. [C2], but current value is 50 less for some models. Marked as obsolete.)
1910xBFG-sense Error RateThe count of errors resulting from externally-induced shock & vibration.
1920xC0Power-off Retract Countor Emergency Retract Cycle Count(Fujitsu)Count of times the heads are loaded off the media. Heads can be unloaded without actually powering off.
1930xC1Load Cycle Count orLoad/Unload Cycle Count(Fujitsu)Count of load/unload cycles into head landing zone position.
The typical lifetime rating for laptop (2.5-in) hard drives is 300,000 to 600,000 load cycles. Some laptop drives are programmed to unload the heads whenever there has not been any activity for about five seconds.Many Linux installations write to the file system a few times a minute in the background. As a result, there may be 100 or more load cycles per hour, and the load cycle rating may be exceeded in less than a year
1940xC2Temperatureresp.Temperature CelsiusCurrent internal temperature.
1950xC3Hardware ECC Recovered(Vendor specific raw value.) The raw value has different structure for different vendors and is often not meaningful as a decimal number.
1960xC4Reallocation Event CountCount of remap operations. The raw value of this attribute shows the total count of attempts to transfer data from reallocated sectors to a spare area. Both successful & unsuccessful attempts are counted.
1970xC5Current Pending Sector CountCount of "unstable" sectors (waiting to be remapped, because of read errors). If an unstable sector is subsequently read successfully, this value is decreased and the sector is not remapped. Read errors on a sector will not remap the sector (since it might be readable later); instead, the drive firmware remembers that the sector needs to be remapped, and remaps it the next time it's written.
1980xC6Uncorrectable Sector Countor
Offline Uncorrectableor
Off-Line Scan Uncorrectable Sector Count
The total count of uncorrectable errors when reading/writing a sector. A rise in the value of this attribute indicates defects of the disk surface and/or problems in the mechanical subsystem.
1990xC7UltraDMA CRC Error CountThe count of errors in data transfer via the interface cable as determined by ICRC (Interface Cyclic Redundancy Check).
2000xC8Multi-Zone Error RateThe count of errors found when writing a sector. The higher the value, the worse the disk's mechanical condition is.
2000xC8Write Error Rate (Fujitsu)The total count of errors when writing a sector.
2010xC9Soft Read Error Rate or
TA Counter Detected
Count of off-track errors.
2020xCAData Address Mark errorsor
TA Counter Increased
Count of Data Address Mark errors (or vendor-specific).
2030xCBRun Out CancelCount of ECC errors
2040xCCSoft ECC CorrectionCount of errors corrected by software ECC
2050xCDThermal Asperity Rate (TAR)Count of errors due to high temperature.
2060xCEFlying HeightHeight of heads above the disk surface. A flying height that's too low increases the chances of a head crash while a flying height that's too high increases the chances of a read/write error.[!--empirenews.page--]
2070xCFSpin High CurrentAmount of surge current used to spin up the drive.
2080xD0Spin BuzzCount of buzz routines needed to spin up the drive due to insufficient power.
2090xD1Offline Seek PerformanceDrive’s seek performance during its internal tests.
2100xD2Unkonw(found in a Maxtor 6B200M0 200GB and Maxtor 2R015H1 15GB disks)
2110xD3Vibration During WriteVibration During Write
2120xD4Shock During WriteShock During Write
2200xDCDisk ShiftDistance the disk has shifted relative to the spindle (usually due to shock or temperature). Unit of measure is unknown.
2220xDELoaded HoursTime spent operating under data load (movement of magnetic head armature)
2230xDFLoad/Unload Retry CountCount of times head changes position.
2240xE0Load FrictionResistance caused by friction in mechanical parts while operating.
2250xE1Load/Unload Cycle CountTotal count of load cycles
2260xE2Load 'In'-timeTotal time of loading on the magnetic heads actuator (time not spent in parking area).
2270xE3Torque Amplification CountCount of attempts to compensate for platter speed variations
2280xE4Power-Off Retract CycleThe count of times the magnetic armature was retracted automatically as a result of cutting power.
2300xE6GMR Head AmplitudeAmplitude of "thrashing" (distance of repetitive forward/reverse head motion)
2310xE7TemperatureDrive Temperature
2320xE8Endurance RemainingNumber of physical erase cycles completed on the drive as a percentage of the maximum physical erase cycles the drive is designed to endure
2320xE8Available Reserved SpaceIntel SSD reports the number of available reserved space as a percentage of reserved space in a brand new SSD.
2330xE9Power-On HoursNumber of hours elapsed in the power-on state.
2330xE9Media Wearout IndicatorIntel SSD reports a normalized value of 100 (when the SSD is new) and declines to a minimum value of 1. It decreases while the NAND erase cycles increase from 0 to the maximum-rated cycles.
2400xF0Head Flying HoursTime while head is positioning
2400xF0Transfer Error Rate(Fujitsu)Count of times the link is reset during a data transfer.
2410xF1Total LBAs WrittenTotal count of LBAs written
2420xF2Total LBAs ReadTotal count of LBAs read.
Some S.M.A.R.T. utilities will report a negative number for the raw value since in reality it has 48 bits rather than 32.
2500xFARead Error Retry RateCount of errors while reading from a disk
2540xFEFree Fall Protectionount of "Free Fall Events" detected
3.5 SMART self-test
使用smartctl –t offline/short/long 可以指定磁盤(pán)進(jìn)行自測(cè)。
offline:
這個(gè)是默認(rèn)的自測(cè)。
short:
短時(shí)自測(cè)的目的是快速確認(rèn)磁盤(pán)是否故障。
測(cè)試過(guò)程有很多項(xiàng)目,都是磁盤(pán)廠商自定義的,比如下面的項(xiàng)目:
a) 電氣測(cè)試項(xiàng)目,測(cè)試磁盤(pán)內(nèi)部的電路。具體測(cè)試細(xì)節(jié)有磁盤(pán)廠商自己指定,比如:
A) 緩存測(cè)試。
B) 讀、寫(xiě)電路測(cè)試。
C) 讀、寫(xiě)磁頭測(cè)試。
b) 尋道、伺服測(cè)試項(xiàng)目,測(cè)試磁盤(pán)在數(shù)據(jù)磁道上的尋找和伺服能。
c) 讀、校驗(yàn)測(cè)試項(xiàng)目,測(cè)試磁盤(pán)對(duì)部分或全盤(pán)的讀能力。
long:
稱(chēng)為擴(kuò)展的自測(cè)試。測(cè)試的項(xiàng)目和short類(lèi)型,但是時(shí)間長(zhǎng)得多。