新しいHGST DeskStar 4TB 3.5インチSATAハードドライブをいくつか購入しようとしています。最近使用したり、データを委託したりする前に、特に初期段階で実行する必要がある、最近推奨される方法はありますか?保証期間?
通常、私は新しいドライブを挿入し、fdiskし、必要に応じて暗号化し、ext4でフォーマットしてから実行しますが、今回はZFS(ZoL経由)になります。時間があるとき、smartdがそれらを監視できるように、それらをsmartmontoolsにフックしますが、それはそれだけです。
最初に特定のSMART=値を確認する必要がありますか?ディスクの全長にわたって1、0、またはランダムデータを書き込んで、もしそうであれば、すべて読み取りますか? 30日間電源を入れたままにして、何かを監視しますか?頻繁なスピンダウンによる早期の摩耗がないように、ドライブのAPM設定がオフになっていることを確認する必要がありますか?
2017年10月7日更新:@ Xen2050の回答と@sawdustのコメントの提案に従いました。
ドライブを入手し、テストを開始する準備ができました。 Xen2050の推奨事項をキャプチャしたスクリプトを作成しました。
#!/bin/sh
AWK=/usr/bin/awk
CLEAR=/usr/bin/clear
GREP=/bin/grep
SLEEP=/bin/sleep
SMARTCTL=/usr/sbin/smartctl
EXIT_SUCCESS=0
EXIT_INSUFFICIENT_ARGS=1
usage() {
cat << END_OF_FILE
USAGE
${0} interval device
EXAMPLES
${0} /dev/sda
END_OF_FILE
}
runIteration() {
runIteration_device=${1}
#${HDPARM} -B ${runIteration_device} | ${GREP} 'APM_level'
#${HDDTEMP} ${runIteration_device}
#${SMARTCTL} --attributes ${runIteration_device}
${SMARTCTL} --attributes ${runIteration_device} | ${GREP} -E '(ATTRIBUTE_NAME|Temperature_Celsius|Current_Pending_Sector|Pre\-fail|Power_On_Hours|Power_Cycle_Count|Load_Cycle_Count)' | ${AWK} '
{
for (i = 1; i <= NF; ++i) {
len=20;
if ((i != 3) && (i != 7) && (i != 8)) {
s = substr($i, 0, len-1);
printf("%-4s", s);
}
if (i == 2) {
printf(sprintf("%s%0" (len-length(s)) "s", "", ""));
}
printf(" ");
}
print "";
}'
${SMARTCTL} --get=apm ${runIteration_device} | ${GREP} '^APM'
}
exitCode=${EXIT_SUCCESS}
if [ ${#} -eq 2 ]; then
interval=${1}
device=${2}
while [ 1 ]; do
${CLEAR}
runIteration ${device}
${SLEEP} ${interval}
done
else
exitCode=${EXIT_INSUFFICIENT_ARGS}
echo ${0}: Insufficient arguments 1>&2
usage 1>&2
fi
exit ${exitCode}
このコンピューターに使用可能なSATAポートがないという理由だけで、4つの新しいドライブのうち2つを一度に2つのUSBドックに接続し、机の上に置いています。電源ファンが作動している密閉型シャーシ内よりも温度が高いか低いかがわかりません。
USBドックなので、今まで見たことのないトラブルに見舞われました。デバイスは/dev/sda
および/dev/sdb
として表示されましたが、smartctl
コマンドを実行すると昨夜エラーが発生しました。 lsusb
は、ドックがJMicron Technologyであると報告し、クイック Google検索 は、--device
オプションを指定する必要があることを示しました。いくつか試してみたところ、うまくいかなかったので諦めました。
今夜、私は--deviceなしで再試行しましたが、明らかな理由はありません。
また、これはネットワークから切断されたコンピューターで実行していることにも注意してください(イーサネットケーブルを接続する場所がないためです)。その結果、このラップトップで対応するsmartctl
コマンドを実行し、出力を貼り付け、テストPCの画面に表示される値と一致するように値をマッサージすることにより、ここでメモをキャプチャしようとしています。貼り付けた後、1つの値の更新を見逃してしまったので、これについて言及しました。値が間違っているように見えるために、以下の出力が混乱して完全に理解できない場合に備えて、事前に謝罪したいと思います。 (FYI見逃した値は、RAW_VALUEを更新したときのTemperature_CelsiusのVALUE/WORSTでした。)
これは、上記のスクリプトをテストPCに手動で入力する必要があることも意味します。すべてを正しく入力したと思いますが、どこかにコンマまたはセミコロンを入力しなかった可能性は常にあります。
次のセクションの手順を2回実行しました。最初の2台のドライブで1回、次にすべての電源を切り、ドライブを残りの2台に交換してから、すべての電源を入れ直した後。該当する場合、2回目の実行との違いに注釈を付けました。
OK。さて、楽しい部分に...
System RescueCDバージョン5.0.3のライブCDを使用してPCを起動しました。プロンプトが表示された後、ログを監視しました。
# tail -F /var/log/messages
各USBドックの電源を入れ、/ dev/sdaと/ dev/sdbのメッセージが表示されるのを見ました。
スクリプトを実行するには、次のように入力しました。
# ~/scripts/hdd_init_checks.sh 60 /dev/sdX
ディスクごとに(sdaおよびsdb)。
ポーリングの頻度が高すぎるとドライブの消耗が発生するかどうかはわかりませんが、この間は1分に1回で十分であると考えました。
初期パラメータは、2つのドライブで同じでした。
ID# ATTRIBUTE_NAME VALUE WORST THRESH WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 100 100 016 -
2 Throughput_Performa 100 100 054 -
3 Spin_Up_Time 100 100 024 -
5 Reallocated_Sector_ 100 100 005 -
7 Seek_Error_Rate 100 100 067 -
8 Seek_Time_Performan 100 100 020 -
9 Power_On_Hours 100 100 000 -
10 Spin_Retry_Count 100 100 060 -
12 Power_Cycle_Count 100 100 000 -
193 Load_Cycle_Count 100 100 000 -
194 Temperature_Celsius 250 250 000 - 24 (Min/Max
197 Current_Pending_Sec 100 100 000 -
APM level is: Disabled
SMART=テストを実行し始めましたが、smartctl --capabilities
は、これらのいずれも搬送セルフテストをサポートしていないと報告しました。
# smartctl --capabilities /dev/sdX
...
Self-test supported.
No Conveyance Self-test supported.
...
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 571) minutes.
Sdaとsdbのそれぞれの即時オフラインテストから始めましたが、最初に各ドライブのsmartctl --capabilities /dev/sdX
を確認しました。
Offline data collection status: (0x80) Offline data collection activity
was never started.
Auto Offline Data Collection: Enabled.
...
Total time to complete Offline
data collection: ( 113) seconds.
次に、即時オフラインテストを開始しました。
# smartctl --test=offline /dev/sdX
Testing has begun.
Please wait 113 seconds for test to complete.
Test will complete after Thu Oct 5 03:40:52 2017
テスト中、smartctl --capabilities
を使用して進行状況を監視しました:
# watch -n 1 'echo "--- sda"; smartctl --capabilities /dev/sda | head -13 | tail -9; echo "--- sdb"; smartctl --capabilities /dev/sdb | head -13 | tail -9'
Offline data collection status: (0x84) Offline data collection activity
was suspended by an interrupting command from Host.
Auto Offline Data Collection: Enabled.
...
Total time to complete Offline
data collection: ( 113) seconds.
完了時に結果を表示しました。
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
...
Total time to complete Offline
data collection: ( 113) seconds.
パラメータが上記と少し異なります。
ID# ATTRIBUTE_NAME VALUE WORST THRESH WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 100 100 016 -
2 Throughput_Performa 136 136 054 -
3 Spin_Up_Time 100 100 024 -
5 Reallocated_Sector_ 100 100 005 -
7 Seek_Error_Rate 100 100 067 -
8 Seek_Time_Performan 128 128 020 -
9 Power_On_Hours 100 100 000 -
10 Spin_Retry_Count 100 100 060 -
12 Power_Cycle_Count 100 100 000 -
193 Load_Cycle_Count 100 100 000 -
194 Temperature_Celsius 125 125 000 - 48 (Min/Max
197 Current_Pending_Sec 100 100 000 -
APM level is: Disabled
(2回目の実行:ハードドライブの2番目のペアでは、sdaのThroughput_PerformanceはVALUEとWORSTで137でした。sdbの値は上記と一致しました。また、これらの温度はより低温でした。 31と34で、しかしそれはおそらく私が今回何をしているのかを知っていて、それらがまだ熱くならないようにこれらのステップを通り抜けているからです。)
気温が上がっているようです。ここでメモを取り込もうとしているので、終了してから数分になります。 46、47、48でした。ドライブは標準的な机の本棚部分にあるので、6つの側面のうち5つで囲まれていますが、PCケースの内部はもっと暖かいと思います。部屋の天井のファンをオンにして、助けになる場合に備えて空気を循環させました。
エラーログにはエラーは表示されませんでした。
# smartctl --log=error /dev/sdX
=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
No Errors Logged
次に、sdaとsdbのそれぞれについて2分間の短いセルフテストを実行しました。
# smartctl --test=short /dev/sdX
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Thu Oct 5 04:10:34 2017
テスト中、私はsmartctl --capabilities
で進行状況を監視しました:
# watch -n 1 'echo "--- sda"; smartctl --capabilities /dev/sda | head -13 | tail -9; echo "--- sdb"; smartctl --capabilities /dev/sdb | head -13 | tail -9'
Self-test execution status: ( 249) Self-test routine in progress...
90% of test remaining.
( 248) 80% of test remaining.
( 247) 70% of test remaining.
( 246) 60% of test remaining.
( 245) 50% of test remaining.
( 244) 40% of test remaining.
( 243) 30% of test remaining.
( 242) 20% of test remaining.
( 241) 10% of test remaining.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
(注:出力は実際にはこのようには見えませんでした。読みやすくするために、さまざまなパーセンテージをすべて組み合わせました。以下の長いテストは、より現実的な出力を示しています。)
温度が47から48の間で変動しているように見えることを除いて、パラメータはまったく変化していないようです。
ID# ATTRIBUTE_NAME VALUE WORST THRESH WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 100 100 016 -
2 Throughput_Performa 136 136 054 -
3 Spin_Up_Time 100 100 024 -
5 Reallocated_Sector_ 100 100 005 -
7 Seek_Error_Rate 100 100 067 -
8 Seek_Time_Performan 128 128 020 -
9 Power_On_Hours 100 100 000 -
10 Spin_Retry_Count 100 100 060 -
12 Power_Cycle_Count 100 100 000 -
193 Load_Cycle_Count 100 100 000 -
194 Temperature_Celsius 127 127 000 - 47 (Min/Max
197 Current_Pending_Sec 100 100 000 -
APM level is: Disabled
セルフテストログにエラーはありませんでした:
# smartctl --log=selftest /dev/sdX
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 1 -
注:セルフテストログのLifeTime(hours)列は、現在のライフタイム時間の属性9のPower_On_Hoursと組み合わせた場合に、最後のテストからの期間を示すことができます。
(2回目の実行:今回はLifeTime(hours)は0でした。今回も、より速く移動し、これらの手順をより早く実行しているためです。)
これらのデバイスではこれを実行できませんでした。私は試した:
# smartctl --test=conveyance /dev/sdX
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Conveyance Self-test functions not supported
Sending command: "Execute SMART Conveyance self-test routine immediately in off-line mode".
Command "Execute SMART Conveyance self-test routine immediately in off-line mode" failed: scsi error aborted command
残念な。どこかで他の人の応答を読んだ後、私は、「デバイスの輸送中に生じた損傷を特定する」と述べられているマニュアルページを確認しました。これらを宅配便で受け取った後、このタイプのテストを実行したいと思います。
私は最後のSMARTテストをこれらのドライブで深夜に実行するためにテストを開始しました。10時間後にはそれを確認するために周りにいないので、明日の夜まで待つ必要があります-今からほぼ24時間。
# smartctl --test=long /dev/sdX
Testing has begun.
Please wait 571 minutes for test to complete.
Test will complete after Thu Oct 5 13:57:44 2017
テスト中、私は定期的にsmartctl --capabilities
で進行状況を監視しました。
# watch -n 1 'echo ---- /dev/sda; smartctl --capabilities /dev/sda | head -13 | tail -9; echo ---- /dev/sdb; smartctl --capabilities /dev/sdb | head -13; tail -9'
---- /dev/sda
Self-test execution status: ( 249) Self-test routine in progress...
90% of test remaining.
Total time to complete Offline
data collection: ( 113) seconds.
---- /dev/sdb
Self-test execution status: ( 249) Self-test routine in progress...
90% of test remaining.
Total time to complete Offline
data collection: ( 113) seconds.
...
おそらく開始から約6時間後に戻ってきて、出力が10%残っていることを確認しましたが、完了までにはいられないことはわかっていました。私は、SMART属性のどれもそこにあるように見えないことに気づきました。
開始から24時間後に戻ってきて、テストが完了したことを確認しました。
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
ドライブは一日中アイドル状態だったので、今では冷えているようです。
ID# ATTRIBUTE_NAME VALUE WORST THRESH WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 100 100 016 -
2 Throughput_Performa 136 136 054 -
3 Spin_Up_Time 100 100 024 -
5 Reallocated_Sector_ 100 100 005 -
7 Seek_Error_Rate 100 100 067 -
8 Seek_Time_Performan 128 128 020 -
9 Power_On_Hours 100 100 000 -
10 Spin_Retry_Count 100 100 060 -
12 Power_Cycle_Count 100 100 000 -
193 Load_Cycle_Count 100 100 000 -
194 Temperature_Celsius 142 142 000 - 42 (Min/Max 23/50)
197 Current_Pending_Sec 100 100 000 -
APM level is: Disabled
何らかの理由で(おそらく上記のawkスクリプトのタイプミスが原因で)最小/最大が途切れているため、手動でsmartctl --attributes
を実行し、この過去の出力の値を貼り付けました。ある時点で温度が50に達したようです。
セルフテストログにエラーはありませんでした:
# smartctl --log=selftest /dev/sdX
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 2 Extended offline Completed without error 00% 10 -
# 1 Short offline Completed without error 00% 1 -
badblocks
を実行します上記の長いセルフテストを実行していたので、このセクションを同時に実行するか、セルフテストが完了するまで待つかを議論していました。これらの最初の2つのディスクでは、パーティションをフォーマットする前に長いセルフテストを最後まで実行することを選択したため、上記のテストの実行中にこのセクションを作成しましたが、これらの手順は24時間後まで実行しませんでした。上記のテストが完了しました。
注:@ Xen2050で述べたように、このセクションではデバイスで書き込みテストを実行します。ハードディスクドライブでこれを実行してもかまいません。ただし、書き込みが限られているため、フラッシュメモリまたはSSDでこれを実行する前に、2度考えます。
Ext2またはext4ファイルシステムを使用する場合、次のようなコマンドを実行して、fdisk/gdiskでパーティションを作成した後、パーティションをフォーマットできます。
# mke2fs -c -c /dev/sdX1
Manページによると、最初の-c
はファイルシステムを作成する前に不良ブロックをチェックし、2番目の-c
は低速の読み書きテストを実行します。
マニュアルページには、badblocks
を直接実行するのではなく、-c
オプションを使用するようにという警告もあります。
ただし、これらのドライブにextファイルシステムを配置する予定はないため、badblocks
を直接実行することにしました。
気温は42度から43度の間で変動しているようです。そうでなければ、他のすべては静的です:
ID# ATTRIBUTE_NAME VALUE WORST THRESH WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 100 100 016 -
2 Throughput_Performa 136 136 054 -
3 Spin_Up_Time 100 100 024 -
5 Reallocated_Sector_ 100 100 005 -
7 Seek_Error_Rate 100 100 067 -
8 Seek_Time_Performan 128 128 020 -
9 Power_On_Hours 100 100 000 -
10 Spin_Retry_Count 100 100 060 -
12 Power_Cycle_Count 100 100 000 -
193 Load_Cycle_Count 100 100 000 -
194 Temperature_Celsius 139 139 000 - 43 (Min/Max
197 Current_Pending_Sec 100 100 000 -
APM level is: Disabled
これで、書き込みテストの前にベースラインができました。
badblocks
を実行しますこれで、sda
とsdb
の両方でbadblockを実行する準備ができました。
# time badblocks -s -v -w /dev/sdX
Checking for bad blocks in read-write mode
From block 0 to 3907018583
Testing with pattern 0xaa: 0.00% done, 0:55 elapsed. (0/0/0 errors)
上記の拡張テストと同様に、私はこれを両方のドライブで同時に実行しました。
15〜20分後に戻ってきました。両方のドライブの温度は46になり、0.02%完了したように見えます。
Testing with pattern 0xaa: 0.02% done, 18:33 elapsed. (0/0/0 errors)
私が正しく計算している場合、これはテストが完了するまでに約100000分、つまり70日かかることを意味します。確認するドライブがあと2つあり、返品/交換期間が30日しかないため、あまり時間がないのではないかと思います。これについては、後で心配します。
さらに15分ほどでテストを中止しました。 SMART属性は上記と同じですが、温度が異なります。
述べたように、時間があれば、またはドライブが小さければ、書き込みテストを最後まで継続させることができます。
または、ドライブをゼロにしたい場合は、次のようにできます。
#dd if =/dev/zero of =/dev/sdX bs = 1M
そうしている間、私はSMART属性を監視して、大幅な変更がないか確認しました。
@sawdustの推奨に従って、ドライブはすでに24時間稼働しており、この間にSMART属性を観察しました。
(2回目の実行:これは私がしばらくの間これらの2つのドライブに対して行ったことです。)
この時点で、私はドライブの電源を切り、2つの追加の新しいドライブと交換し、前述のようにそれらのドライブに対して上記のすべての手順を実行しました。
ほとんどのSMART監視ツールは、問題が発生したことを検出するとアラートを鳴らします。注意すべきカップルは「現在保留中のセクター」と「再割り当てされたセクター数」ですが、明らかに一般的なエラーはほとんどありません。
すべてのSMARTセルフテストも、オフライン、短い、長い)を実行します。輸送テストは特に適用可能である必要があります。これは、「デバイスの輸送中に発生した損傷を特定することを目的としています」。
詳細については、smartctl
のマニュアルページを参照してください。または buntuのSmartmontoolsのコミュニティヘルプWiki
ドライブをフォーマットするときは、badblocks
の書き込みテストを実行します(またはフォーマットする前に自分で実行します。明らかにすべてのmkfsがサポートしているわけではありません)。_0
_、_1
_、_01
_と_10
_は良いワークアウトであるはずです。大幅に増加した数値がないか、SMARTデータを後で確認します。
フラッシュメモリデバイスまたはSSDの場合、書き込みの有効期間は限られているが、障害が発生する前に異常な量の書き込みを処理する必要がある、一定のSSDの[テストで読みました]何ヶ月も書いて、通常の使用よりはるかに多いので、心配しないでください。]
ドライブのスピンダウンタイムアウトを確認します。過去に2〜3分ごとにスピンダウンして、記録的な速さでドライブを使い果たしてしまうドライブがいくつかありました。 Linuxでは、通常、ドライブの時間を計測してスピンダウンするのは他のプログラムの責任ですが、ドライブ自体に注意してください。
ドライブの温度を監視できる場合は、監視してください。 hddtemp
は機能するはずです。 1つのドライブが他のドライブよりも大幅に高温になっている場合は、ドライブが赤信号であるか、単に冷却されているだけです。
また、製造元が特定のテスト/監視プログラムを持っている場合は、試してみてください。彼らはドライブの詳細についてより多くの洞察を持っているはずです。