2012年1月15日日曜日

ハードディスクエラーとSMARTのPending sector, reallocated sector

SMARTで"Current Pending Sector Count"が検出されたときに、どう対応すればよいかという話。


Pending sector と reallocated sector、remap の概要

"Pending Sector"は、一言で言うと「不安定なセクタ」。次にアクセスしたときに正常に読み込める可能性もあるので"Remap"は行われないが、Remapされずにずっと不安定なままOSから参照されると dmesg等のログに "1 Currently unreadable (pending) sectors" といったエラーが出力され続けることがある。

エラーを解消するには、セクタをPending状態からremapされた状態、つまり"Reallocated sector"に変化させる必要がある。そのためには、セクタに対して一度書き込みを行えばよい。書き込みを行うことにより"Pending"の状態から"Reallocated"の状態に変化し、remapが行われるようになってエラーが解消する。同時に、SMARTの"Current Pending Sectors Count" が減り、"Reallocated Sectors Count"が増える。

ただし、エラーが解消する代わりにRemap処理はディスクアクセスの性能を落とす可能性がある(論理的に連続している情報が物理的には離れたトラックに配置され、磁気ヘッドのシーク時間が増えるため)。


対応方法

参考ページに書いてある。"hdparm --write-sector /dev/x" を使う方法と "dd if=/dev/zero of=/dev/x bs=4096 count=1 seek=y" を使う方法の二通りがあるが、前者のほうがLBAを直接指定すればよいので簡単かな、と。


0 件のコメント:

コメントを投稿