SMARTセルフテストはどのように不良ブロックに関連していますか?


14

smartctlツールを使用すると、長いセルフテスト(smartctl -t long /dev/sda)を開始できます。ただしbadblocks、ドライブで実行できることもあります。この2つはどのように関連していますか?badblocksが不良ブロックを検出した場合、ドライブはSMART値を自動的に更新しますか(たとえば、再配置されたセクターカウントを更新することによって)?badblocksを置き換えることはできますsmartctl -t longか?

回答:


5

私はvoretaq7に反対しなければなりません— SMARTは魔法ではありません。ドライブがあり、そのセクターの1つが故障すると、そのドライブからデータを読み取ることができなくなります。そのため、最新のディスクドライブに読み取り不能なファイルを置くことは完全に可能です。SMARTは、障害後に最初にアクセスするときに、この読み取り不可のセクターを「Current Pending」および「Offline Uncorrectable」としてマークします。

しかし、このセクターが再び書き込まれると、マークされていないリマップスペースに再マップされ、「Reallocated_Sector_Ct」カウンターが増加します。その後、ドライブ全体が再び読み取り可能になります。

smartctl -t longテストは便利です—読み取り不能なセクターについてドライブ全体をテストし、実行時に最初に発生した不良セクターを「Current Pending」および「Offline Uncorrectable」として記録およびマークします。この長いテストをすべてのドライブで週に1回実行するようにサーバーを構成しています。OS要求は常にSMARTスキャンよりも優先されるため、通常のドライブ機能にはあまり影響しません。

サーバーでは、常にRAID1ミラーでディスクを実行しているため、長いテストで不良セクターが検出された場合、ミラー内の別のドライブのデータを使用してその内容を書き換え、再割り当てを強制できます。

badblocksまた、時には便利です。たとえば、ドライブ全体をテストし、最初のエラーで停止しません。単一のパーティションまたはドライブの他の部分をテストできます。これを使用して、不良ブロックが正常に再割り当てされたかどうかをすばやく確認できます。


11

私が他の答えで指摘しように、現代のすべてのハードドライブには再利用可能なスペースがあります(特に今日のディスク密度では、ドライブプラッターは完璧ではありません-ブランド上でも、ドライブが再マッピングする必要があるいくつかの欠陥が常にあります-決して使用されることのない、アセンブリラインから私の手に届くドライブ)。

このため、理論的にはbadblocks、ドライブ上の不良セクタ(エンドユーザーに表示される)のようなものの前にSMART障害を報告する必要があります。
最新のハードディスクでは、エンドユーザーに見える不良セクタ(badblocksOSによって報告されるか、OSによって自動的に検出される可能性がある)は、死にかけているディスクの最後の息をのむようなものです。


最終的にはSMARTで、badblocks2つの異なるが関連するものをテストします。

SMARTは自己監視ツールです。

ハードドライブは、その動作パラメータに関する情報をいくつか知っており、一部については「正常」であり、その他については「許容可能」であるものに関するメタ知識を持っています。
特定のパラメータが「異常」または「許容できない」ことをドライブが検知すると、故障前の状態を報告します。つまり、ドライブはまだ機能していますが、すぐに故障する可能性があります。

たとえば、通常、スピンドルモーターは0.10アンペアを消費しますが、現在は0.50アンペアを消費しています。これは、シャフトが結合しているか、ベアリングの永久潤滑油がなくなっていることを示す異常に高い消費です。最終的には、モーターが抵抗に打ち勝つことができなくなり、ドライブが停止します。

別の例:ドライブには、不良セクタを処理するための1000個の「再マップ」ブロックがあります。750個を使用し、ドライブを構築したエンジニアは、リマップの数が内部的に間違ったもの(プラッターの不良、老年期の障害、頭部の損傷)を示していると判断しました-ドライブは障害発生前の状態を報告します。リマップスペースがなくなり、不良セクタが表示される前にデータがオフになります。

SMARTは不良セクター以上のものを探しています-それはドライブの健全性のより包括的な評価です。不良セクタや読み取り/書き込みエラーのないドライブ(たとえば、上記で説明したスピンドルモーターの問題)で、SMART事前障害警告を受け取ることができます。


badblocks 特定の(時代遅れの)目的を持つツールです:不良セクタを見つけます。

badblocksSMARTおよび不良セクタの再マッピングの前の時間から来ます。当時、ドライブには欠陥があることはわかっていましたが、データを誤って保存しないようにドライブをマップする唯一の方法は、ディスクのストレステストを行い、障害を引き起こし、データを再び配置しないことを覚えていました。

私がそれが時代遅れだと言う理由は、最新のドライブの電子機器がすでにbadblocks内部で数千倍の速度で機能しているからです。badblocks基本的に、洗練された電子機器を持たない古代のドライブは、故障したセクターを再マッピング(またはスキップ)できますが、最新のハードドライブはすでに故障したセクターを検出して再マッピングします。

理論的にはあなたが使用することができbadblocks、あなたの最近のディスクは、古代のウィンチェスターディスクだったが、それは最終的には逆効果だかのようにOSの再マップ(可視)の障害を持っているデータを-と同様に、私は以前に述べたいかなる不良セクタが検出されたとbadblocks、現代ドライブに廃棄する原因となっていますドライブ全体に欠陥がある(または故障する)。

目に見える不良セクタは、ドライブが再マッピング領域外であることを示します。これは、古い(機能寿命の終わりに近づいている)か、欠陥のある(工場の不良プラッタ/ヘッド)でない限り、現代のディスクでは比較的まれです。


したがって、基本的に、実稼働badblocks環境に展開する前にディスクで実行する場合は、先に進んで実行する方が良いと思いますが、ディスクが今世紀に製造され、目に見える不良セクターが表示される場合は、ゴミ箱にチャックする必要がありますその保証)。私のお金では、SMARTステータスと多層防御は、ディスクを手動でチェックするよりも私の時間を有効に活用しています。


1
さて、それはSMARTとbadblocksの違いを非常によく説明しています。しかし、これはSMART状況を監視することは十分にあることを意味するものではない、または私はない、私はSMART警告が正しくオフに行きたい場合は、たまに長いSMARTテストを実行する必要がありますか?smartctl -t long /dev/sdaつまり、smartdたまに実行することになっているのでしょうか、それとも他に何も設定しなくても差し迫った問題を「自動的に」警告してくれると思いますか?
Hongliライ

それはあなただけが行うことができる決定ですが、SMARTは手動の介入を必要とするようには設計されていません(「うまくいく」ので、通常はいじってはいけません)。ハードウェアを信頼してください(少なくともこの限られた範囲で)。ハードウェアを信頼できない場合は、荷造りして帰宅することもできます。
voretaq7

1
「最新のドライブはすでに内部で数千倍の速度でbadblocksを実行しています」ドライブ badblocksからすべてのバイトを読み取り、ランダムパターンでそれらを上書きしてから元のデータを戻します。SMARTセルフテストはこれを行いません。私が正しく理解していれば、これは「保留中」のセクターをクリアするはずです。
エンドリス

4
@endolithテストは直接同等ではありませんが、テストの目的は同等です(不良セクタの発見と再マッピングを許可します)。私の主なポイントは最後の段落でした:ディスクエクササイザーとしてbadblocksを実行したい場合(多数の不良ブロックを検出しているためにSMARTエラーを引き起こすことができるかどうかを確認するため)不良ブロックリストを読み込んで、これらのセクターの使用を回避することを意図しています(石器時代のように)あなたはそれを間違っています:不良セクターが見えるのは、最も近いゴミ箱にドライブをチャックする必要があることを意味します。
voretaq7

1
@Hashimはい、保留中のセクターをクリアするため、バッドブロックを使用すると便利だと思います。
エンドリス

5

この質問に対する良い答えは

/superuser//a/693065

/superuser//a/693064

他の答えとは反対に、私はバッドブロックが時代遅れではなく、非常に便利なツールだと思います。PCを新しいハードドライブにアップグレードすると、不安定になり始めました。不良ブロックのおかげで、ディスクの表面に欠陥があることを認識するのにかなり時間がかかりました。それ以来、新しいハードドライブを使用するたびに完全な書き込みモード(破壊可能!)の不良ブロックを実行し、その問題は二度と起こりませんでした。私は強くお勧めします

時間sudo badblocks -swvo sdX.log / sev / sdX

新しいハードドライブごとに。ディスクのすべてのビットを数回テストして書き込みと読み取りを行うため、後で多くのトラブルを回避できます。

このテスト中に、ドライブによって不良ブロックがマッピングされます。そのため、「再割り当てセクター数」はテストの前後に記録し、SMARTしきい値と比較する必要があります。これはドライブの健全性について何かを伝えるためです。


2
まだ保証期間中に新しいドライブのストレステストを行うことは素晴らしい考えです。
エンドリス

2

badblocksは昔からの遺物であり、厳密には有用ではありません。現在読み取り不可能なセクターを見つけることができますが、不良セクターを処理する正しい方法は、バックアップからデータを回復することです。データがあなたにとって重要ではなかった場合にできることは、関連するファイルを削除し、その場所に何かを書き込むことです。これにより、必要に応じてディスクがセクターを再割り当てし、作業を続行できます。

ディスクのセルフテストも行われ、さまざまな欠陥についてメディア全体をテストします。通常の動作で使用するものよりも低いしきい値を使用して、ディスクに多くの弱点があるかどうかを確認し、ベンダーのロジックに基づいてディスクは耐用年数を過ぎており、テストが失敗したと宣言します。その時点で、すべてのデータを取り出すか、バックアップから復元してディスクを交換する必要があります。

ディスクアクション(不良ブロックまたは通常の操作)が回復不能な読み取りエラーを検出した場合、ディスクは再割り当て保留中カウンターを自動的に更新し、再割り当てが実行されると、再割り当て保留中および再割り当てカウンターを更新します。単純なddでも同じことが起こります。

2つの間で選択する必要がある場合、smartctl -tを使用すると、ディスクの分析が向上します。

私もdiskscanユーティリティの使用をお勧めすることができますhttps://github.com/baruch/diskscanをソートとるセクター難聴のような悪いを行っているが、セクタ、場合、それは評価するために、より多くの不良ブロックが、試行のように動作し、読むのに時間がかかります。これは、メディアの開発に問題があることを示しており、将来のバージョンでは、ディスクがこの問題を修正するための自動試行を提供する可能性もあります。


「また、ディスク自体がデータを再割り当てし、ファイルシステムレベルで不良ブロックをマッピングする必要が実際にないため、不良ブロックは今日では本質的に廃止されています。」しないbadblocksSMARTセルフテストがないことな方法でドライブを強調?
エンドリス

いいえ。badblocksはディスクの順次スキャンを実行します。これはddよりも優れているわけではなく、セルフテストの場合と同じです。
バルクも

badblocksディスクからすべてのバイトを読み取り、テストパターンで置き換え、元のデータを元の場所に書き込みます。SMARTセルフテストは、同様に読み書きテストですか?
エンドリス

1
不良ブロックがデータを書き換えると、「保留中のセクター」がすべてクリアされ、ドライブはそれらを再び良好としてマークするか、再割り当てしますか?
エンドリス

1
はい。それはあなたがそのような場合に欲しいものかもしれません。
バルクも
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.