毎日、同じ SMART エラーに関するメールが届きます。何か変化があったり、状況が悪化したりした場合には、それを知りたいので、この特定のエラーだけを無視するように SMART デーモンを設定したいと思います。
This email was generated by the smartd daemon running on: host name: jon DNS domain: [Unknown] NIS domain: (none) The following warning/error was logged by the smartd daemon: Device: /dev/sdb [SAT], 11 Currently unreadable (pending) sectors For details see host's SYSLOG. You can also use the smartctl utility for further investigation. The original email about this issue was sent at Sun Nov 25 02:30:45 2012 CET Another email message will be sent in 24 hours if the problem persists.
これが最初に発生したとき、読み取り不可能なセクターの数が徐々に増加していたため、バックアップを作成し、このスレッドに記載されている多くのことを試しました。 https://serverfault.com/questions/104417/how-do-i-easily-repair-a-single-unreadable-block-on-a-linux-disk
メールからわかるように、これは 1.5 年前のことなので、何を試したか、何を試さなかったかは正確には覚えていません。ただし、ディスクはそれ以来安定して動作しているので、何かを変更する理由はないと思います。(はい、定期的にバックアップを作成しています。)
回避策としては、まさにこのテキストを含むすべてのメールを無視することしか思いつきませんが、これは症状を治療するだけで、原因を治療するものではありません。
編集:
皆さんの多く、あるいはほとんどが「ディスクを交換してください」というアドバイスをくれることはわかっています。これは、一般的に「このエラーが発生したのですが、どうすればよいですか?」といった質問に対する最善のアドバイスです。
でもお願いです、お願いします私がリスクを認識しており、SMART デーモンに関して非常に具体的な質問をしていることを認めてください。ドキュメントには、私が望むことが実行可能であることを示すものは何も見つかりませんでしたが、回避策を実行する前に、まずここで再確認したいと思いました。
アップデート:
約 1 週間前、カウンターが再び 1 に下がりました。原因はわかりません。そのマシンのメンテナンス作業は一切行っていません。2 年以上経って、11 セクターが再び正常になりました。これは本当に奇妙です。
答え1
/etc/smartd.confの設定を変更する必要があります
設定に引数を追加します:
-t -I 197
属性197 - 保留中のセクターを無視します
このように(例):
/dev/ad0 -H -l error -l selftest -t -I 197
答え2
ディスクを交換せずにメッセージを停止する最も簡単な方法は、ディスクにセクターを「保留中」を意味する「おそらく不良」ではなく、良好または不良としてマークさせることです。これは、ディスクの完全な読み取りを強制することで実行できます。
sudo dd if=/dev/sdb of=/dev/null bs=64K conv=noerror
これにより、ディスクのすべてのセクターが読み取られ、エラーは無視され、ディスクは保留中の各セクターを再チェックし、セクターが実際に不良であるかどうかを通知します。
注意: これにより、現在保留中の11セクターがクリアされますが、潜在的に不良な新しいセクターを発見するプロセス中に(保留中のセクター数がゼロ以外になります)。保留中のセクターがなくなるまで、これを再度実行します。
答え3
うーん... smartd を再構成する方法はわかりませんが、OMD[1] に特定の SMART エラーを無視させることはできるようになりました (安定化された再割り当てセクター数でこれを実行したことがあります)。SMART の読み取り値だけでなく、ボックスのより多くのパラメータを監視したい場合にも、これがオプションになるかもしれません。
答え4
Crucial MX500 シリーズ SSD など、一部のドライブではこのエラーが誤って返されることが知られています。 1 つの解決策は、/etc/smart_drivedb.h
次の内容を含むカスタム ドライブ db ファイルを設定することです (ファームウェア番号と一致するように編集する必要がありました)。
{ "Crucial/Micron MX500 SSDs",
"CT(250|500|1000|2000)MX500SSD[14]", // tested with CT500MX500SSD1/M3CR023
"M3CR032", // Firmware with bogus attribute 197
"This firmware returns bogus raw values in attribute 197",
//"-v 1,raw48,Raw_Read_Error_Rate "
"-v 5,raw48,Reallocate_NAND_Blk_Cnt "
//"-v 9,raw24(raw8),Power_On_Hours "
//"-v 12,raw48,Power_Cycle_Count "
"-v 171,raw48,Program_Fail_Count "
"-v 172,raw48,Erase_Fail_Count "
"-v 173,raw48,Ave_Block-Erase_Count "
"-v 174,raw48,Unexpect_Power_Loss_Ct "
"-v 180,raw48,Unused_Reserve_NAND_Blk "
"-v 183,raw48,SATA_Interfac_Downshift "
"-v 184,raw48,Error_Correction_Count "
//"-v 187,raw48,Reported_Uncorrect "
//"-v 194,tempminmax,Temperature_Celsius "
//"-v 196,raw16(raw16),Reallocated_Event_Count "
"-v 197,raw48,Bogus_Current_Pend_Sect " // Randomly flips 0 <> 1
//"-v 198,raw48,Offline_Uncorrectable "
//"-v 199,raw48,UDMA_CRC_Error_Count "
"-v 202,raw48,Percent_Lifetime_Remain "
"-v 206,raw48,Write_Error_Rate "
"-v 210,raw48,Success_RAIN_Recov_Cnt "
"-v 246,raw48,Total_LBAs_Written "
"-v 247,raw48,Host_Program_Page_Count "
"-v 248,raw48,FTL_Program_Page_Count"
}
ファイルを作成したら、実行してservice smartd restart
smartd サービスを更新します。その後、grep smartd /var/log/syslog
ドライブに対して有効になっていることを確認できます。