私は何気なくsmartctl
を使用して、実際に飛び込むことなくディスクを覗き見していました。 Hacker Newsへのコメント を読んだ後、毎日の短いテストと毎週の長いテストをスケジュールすることにしました。
実際にそれらをうまく利用する方法は?
smartctl -a /dev/sda
の結果を見ると、すぐにはわからない情報がたくさんあります。
# smartctl -a /dev/sda
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Crucial/Micron MX100/MX200/M5x0/M600 Client SSDs
Device Model: Crucial_CT500MX200SSD4
Serial Number: 160311862C1C
LU WWN Device Id: 5 00a075 111862c1c
Firmware Version: MU03
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: Solid State Device
Form Factor: < 1.8 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-3 T13/2161-D revision 4
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Mon Sep 3 10:49:49 2018 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x80) Offline data collection activity
was never started.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 1271) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 7) minutes.
Conveyance self-test routine
recommended polling time: ( 3) minutes.
SCT capabilities: (0x0035) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 100 100 000 Pre-fail Always - 0
5 Reallocate_NAND_Blk_Cnt 0x0032 100 100 010 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 16446
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 44
171 Program_Fail_Count 0x0032 100 100 000 Old_age Always - 0
172 Erase_Fail_Count 0x0032 100 100 000 Old_age Always - 0
173 Ave_Block-Erase_Count 0x0032 094 094 000 Old_age Always - 139
174 Unexpect_Power_Loss_Ct 0x0032 100 100 000 Old_age Always - 29
180 Unused_Reserve_NAND_Blk 0x0033 000 000 000 Pre-fail Always - 5548
183 SATA_Interfac_Downshift 0x0032 100 100 000 Old_age Always - 0
184 Error_Correction_Count 0x0032 100 100 000 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
194 Temperature_Celsius 0x0022 058 049 000 Old_age Always - 42 (Min/Max 23/51)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 100 100 000 Old_age Always - 0
202 Percent_Lifetime_Used 0x0030 094 094 001 Old_age Offline - 6
206 Write_Error_Rate 0x000e 100 100 000 Old_age Always - 0
210 Success_RAIN_Recov_Cnt 0x0032 100 100 000 Old_age Always - 0
246 Total_Host_Sector_Write 0x0032 100 100 000 Old_age Always - 15420692355
247 Host_Program_Page_Count 0x0032 100 100 000 Old_age Always - 481912759
248 Bckgnd_Program_Page_Cnt 0x0032 100 100 000 Old_age Always - 1753257160
SMART Error Log Version: 1
No Errors Logged
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% 16446 -
# 2 Short offline Completed without error 00% 10532 -
# 3 Short offline Completed without error 00% 8040 -
# 4 Vendor (0xff) Completed without error 00% 3608 -
# 5 Vendor (0xff) Completed without error 00% 597 -
# 6 Vendor (0xff) Completed without error 00% 585 -
# 7 Vendor (0xff) Completed without error 00% 520 -
# 8 Vendor (0xff) Completed without error 00% 161 -
# 9 Vendor (0xff) Completed without error 00% 98 -
#10 Vendor (0xff) Completed without error 00% 65 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Completed [00% left] (57881389-57946924)
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
具体的には、明確な兆候はありません
smartctl -a /dev/sdX
をときどき実行し、異常なイベントを認識したい場合、分析のベストプラクティスはありますか?
メールを送信できるように smartmontools を設定している場合、問題が見つかった場合はメールが届きます。
それとは別に、エラーとログはsmartctl
の出力に表示されます。私は最初に「Offline_Uncorrectable」フィールドを見る傾向があります。ゼロ以外の場合は、ドライブが何もできない媒体に欠陥があることを意味します(SSDの場合、通常はドライブが実行されたことを意味します)死亡したセルの交換用フラッシュのうち)。他の属性は読み取りまたは書き込みエラーを示しますが、それらの重要性はエラーの原因によって異なります。
ドライブエラーもエラーログに記録されます。
SMART Error Log Version: 1
No Errors Logged
そしてテストログのテスト結果:
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% 16446 -
# 2 Short offline Completed without error 00% 10532 -
# 3 Short offline Completed without error 00% 8040 -
# 4 Vendor (0xff) Completed without error 00% 3608 -
# 5 Vendor (0xff) Completed without error 00% 597 -
# 6 Vendor (0xff) Completed without error 00% 585 -
# 7 Vendor (0xff) Completed without error 00% 520 -
# 8 Vendor (0xff) Completed without error 00% 161 -
# 9 Vendor (0xff) Completed without error 00% 98 -
#10 Vendor (0xff) Completed without error 00% 65 -
ここでは、「エラーなしで完了」とマークされたテストが必要です。ライフタイムフィールドは、ドライブの現在のライフタイムからそれほど遠くありません(テストスケジュールによって異なります)。あなたのケースでは、ドライブの寿命は16446時間で、完了したばかりのテストがあります。また、特定の属性が更新されるときに拡張オフラインテストを定期的に確認する必要があります(例:オフラインで修正不可)。
私はsmartctl -x
ではなくsmartctl -a
を使用する傾向があり、さらに多くの情報が表示されます。
スマートテクノロジーは、約12年前に磁気ディスクで始まり、表面の潜在的な問題を内部的に記録していました。まったく異なるテクノロジーに基づくSSDディスク(旧称Electrical Erasable Programable ROM)を使用しています。データは磁気ディスクのセクターと呼ばれるブロックに書き込まれますが、SSDのデータはより大きなブロックに書き込まれ、ブロックが書き込まれる(実際にはプログラムされる)前に消去する必要があります。ブロックを消去するとブロック要素に小さな損傷が発生するため、同じブロックへのwiriteの量が制限されているため、ファームウェアは最終的にすべてのブロックに書き込み(=消去=損傷)を分散しようとします(SLC約100000回、MLC約5000回、TLCは約300回のみ)。
さて、smartctl
で報告されたエラーは、両方の基本的な技術にとって他の意味を持っています。磁気ディスクでは、_Current_Pending_Sector
_の書き込み(読み取り不能)データの不良を示すもの(_ID 197
_)と_Reallocated_sector_count
_(_ID 5
_)の磁気面の不良を示すものを確認する必要があります。 _ID 194
_ _Temperature_Celsius
_。 SSDにいる間、_ID 5
_は_Reallocate_NAND_Blk_Cnt
_に名前が変更され、ライブタイムからのブロック数が表示されます。
どちらの場合も、いくつかの不良ブロック(セクター)が存在するだけで、ディスクが停止しているとは限りません。問題は、多くの障害のあるブロックが突然現れた場合、またはそれらの数が日々増加している場合のいずれかである可能性があります。
磁気ディスクの寿命は、想定される用途(サーバー24x7、デスクトップ、ビデオレコーダー)に適したブランドとタイプを慎重に選択し、可能な限り良好な状態でサポートすることで延長できます(温度を下げるためのファン、十分な電力、厳密に水平または垂直位置)。
SSDディスクの稼働時間は、SLCを選択することで延長できます(低速ですがより優れています)。現在、MLCのみを購入できますが、TLCよりも長持ちします。そして、不必要な書き込みの可能な制限を行います。そのため、スワップ(pagefile.sys)をユーザーディレクトリ(ホーム)およびログファイルとして磁気ディスクに移動する必要があります。 Linuxでは、noatime、nodiratimeマウントオプションを追加できます。そして、しばしばバックアップを作成します!定期的にスマートをチェックすることは役立ちますが、失われたデータを取り戻すことはできません。