web-dev-qa-db-ja.com

ディスクからの不良ステータスを示すsmartctlからの兆候は何ですか

smartctl -aをディスクで実行すると、多くの出力が得られます

ディスクが不良または良好であることを示す最終ステータスは何ですか?

smartctl -a /dev/sdb
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-327.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               SEAGATE
Product:              ST2000NX0433
Revision:             NS02
User Capacity:        2,000,398,934,016 bytes [2.00 TB]
Logical block size:   512 bytes
Formatted with type 2 protection
Logical block provisioning type unreported, LBPME=0, LBPRZ=0
Rotation Rate:        7200 rpm
Form Factor:          2.5 inches
Logical Unit id:      0x5000c5009eaededf
Serial number:        W46064KW
Device type:          disk
Transport protocol:   SAS
Local Time is:        Thu Nov 22 10:38:35 2018 UTC
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Disabled or Not Supported

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Current Drive Temperature:     23 C
Drive Trip Temperature:        60 C

Manufactured in week 06 of year 2017
Specified cycle count over device lifetime:  10000
Accumulated start-stop cycles:  49
Specified load-unload count over device lifetime:  300000
Accumulated load-unload cycles:  550
Elements in grown defect list: 0

Vendor (Seagate) cache information
  Blocks sent to initiator = 1986603075
  Blocks received from initiator = 2165723528
  Blocks read from cache and sent to initiator = 1298028358
  Number of read and write commands whose size <= segment size = 201615101
  Number of read and write commands whose size > segment size = 0

Vendor (Seagate/Hitachi) factory information
  number of hours powered up = 12335.38
  number of minutes until next internal SMART test = 26

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:   26648753        0         0  26648753          0      83475.092           0
write:         0        0         2         2          2     135145.593           0
verify: 3914513941        0         0  3914513941          0     109628.879           0

Non-medium error count:       14

SMART Self-test log
Num  Test              Status                 segment  LifeTime  LBA_first_err [SK ASC ASQ]
     Description                              number   (hours)
# 1  Background short  Completed                  96       2                 - [-   -    -]
Long (extended) Self Test duration: 20400 seconds [340.0 minutes]

以下の用量は良い兆候ですか?

smartctl -a /dev/sda | grep  Completed

または

 smartctl -a /dev/sda

echo $?
2
yael

全体的なヘルスステータスは、グローバルな質問に対処する_smartctl -a_の出力の一部です

ドライブは良いですか悪いですか?

ベスト。引用された出力では、そのステータスは次の行に報告されます

_SMART Health Status: OK_

これは、_-H_の代わりにsmartctlの_-a_オプションを使用して、個別に(ヘッダー付きで)取得することもできます。

この評価はsmartmontoolsからではなく、ドライブ自体からのものであり(manページ smartctl(8) on _-H_ optionを参照)、その意味はかなり粗いことに注意してください。 ウィキペディア

S.M.A.R.T.ステータスは、ドライブの過去または現在の信頼性を必ずしも示しているわけではありません。ドライブがすでに致命的な障害を起こしている場合、S.M.A.R.T.ステータスにアクセスできない可能性があります。ドライブで過去に問題が発生したことがありますが、センサーがそのような問題を検出しなくなった場合、S.M.A.R.T.ステータスは、製造元のプログラミングによっては、ドライブが正常であることを示している可能性があります。

および(同じソース):

ドライブの正常性の詳細は、S.M.A.R.T.属性を調べることで得られます。

全体的なヘルスステータスは、障害のあるディスクに設定されているsmartctlの終了ステータスのビット3(0から数えて)に反映されます。 manページ smartctl(8) のセクション「戻り値」を参照してください。

smartctlを実行した直後、このビットは(Bash)式$(($? & 8))で評価できます。

_if [ $(($? & 8)) -eq 0 ]; then
   echo Good.
else
   echo Bad.
fi
_

ビット3が設定されている場合、式$(($? & 8))は1ではなく8に評価されることに注意してください。

正常なディスクには、smartctlからの終了ステータス0で十分です(S.M.A.R.T.が判断できる限り))が、条件として、これは強力である可能性があります。このビット6ステータスは、デバイスログ内のエラーレコードの存在を反映します。これは、ドライブとホスト間の通信エラーを指す場合もあります(読み取りDMAエラー)。ログにそのようなエラーがログに表示されるドライブがいくつかあります。寿命の最初の時間からですが、私はこれらのドライブを何年も問題なく毎日使用していたので、この基準は多くの誤検知を与える可能性があります。もちろん、結局エラーがあったため、これは議論の余地があります。

とにかく、そのビット(ビット6)以外のすべてのビットを考慮に入れたい場合は、テストで次の式を使用できます:$(($? & 191))

一方、基準

_smartctl -a /dev/sda | grep Completed_

その結果を考慮せずにセルフテストが完了したことを報告するだけなので、ドライブの状態については何も言われていません。

3
Jürgen