web-dev-qa-db-ja.com

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

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

15
Hongli Lai

voretaq7 に同意する必要があります— SMARTは魔法ではありません。ドライブがあり、そのセクターの1つが不良になると、そのドライブからデータを読み取ることができなくなります。そのため、最新のディスクドライブに読み取り不能なファイルを置くことは完全に可能です。 SMARTは、この読み取り不可能なセクターが、障害発生後に最初にアクセスされたときに、「現在の保留」および「オフラインの修正不可」としてマークします。

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

smartctl -t longテストは有用です。ドライブスペース全体を読み取り不可能なセクターでテストし、実行時に最初に検出された不良セクターを「現在保留中」および「オフラインで修正不可能」として記録およびマークします。毎週1回、すべてのドライブでこの長いテストを実行するようにサーバーを構成しています。 OS要求は常にSMARTスキャンよりも優先されるため、通常のドライブ機能にはあまり影響しません。

サーバーと同様に、私は常にRAID1ミラーでディスクを実行します。そのため、長いテストで不良セクターが見つかった場合、ミラー内の別のドライブからのデータを使用してその内容を書き換え、強制的に再割り当てを行うことができます。

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

5
Tometzky

私が指摘したように 私の他の答えで 、すべての現代のハードドライブには再利用可能なスペースがあります(特に今日のディスク密度では、ドライブPlatterは完璧ではないため、ドライブには常にいくつかの欠陥があります)まったく新しい、決して使用されない、カムオフ、アセンブリライン、マイハンドドライブなどでも、再マッピングします。

このため、理論的には、ドライブのbadblocksが(エンドユーザーから見える)不良セクターに気づく前に、SMART障害が報告されるはずです。
最近のハードディスクでは、エンドユーザーから見える不良セクター(badblocksによって報告されるか、OSによって自動的に検出される可能性がある)は、死にかけているディスクの最後のあえぎと震えです。


最終的にSMARTおよびbadblocksは、2つの異なるが関連するものをテストします。

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

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

例:スピンドルモーターは通常0.10アンペアを消費しますが、現在は0.50アンペアを消費しています-異常に高いドローは、シャフトが拘束されているか、ベアリングの永久潤滑剤がなくなっていることを示している可能性があります。結局、モーターは抵抗に打ち勝つことができなくなり、ドライブが停止します。

別の例:ドライブには、不良セクターに対処するための1000個の「リマップ」ブロックがあります。それらの750を使用しており、ドライブを構築したエンジニアは、再マップの数が内部的に何か問題があることを示していると判断しました(不良プラッター、古い時代の障害、破損したヘッド)-ドライブは、事前に取得できる状態を報告します。リマップスペースがなくなり、不良セクターが見えるようになる前にデータをオフにします。

SMARTは、不良セクター以上のものを探しています。これは、ドライブの正常性のより包括的な評価です。 SMART不良セクターの警告がなく、読み取り/書き込みエラーのないドライブ(たとえば、上で説明したスピンドルモーターの問題)が発生する可能性があります。


badblocksは特定の(古い)目的を持つツールです:不良セクターを見つける。

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

私がそれが時代遅れであると言う理由は、最近のドライブの電子機器がすでに内部で数千倍高速にbadblocksの機能を実行しているためです。 badblocksは基本的に、高度な電子機器を備えていない古いドライブが故障したセクターを再マップ(またはスキップ)することを許可しますが、最新のハードドライブはすでに故障セクターを検出して再マップします。

理論的には、badblocksデータを使用して、最新のディスクが古代のWinchesterディスクであるかのように、OSの再マップ(表示)エラーを発生させることができますが、これは最終的には逆効果です-前に言ったように[〜#〜] any [〜#〜]最近のドライブでbadblocksを使用して検出された不良セクターは、ドライブ全体を欠陥があるものとして破棄します(または失敗しようとしています)。

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


したがって、基本的には、本番環境にデプロイする前にディスクでbadblocksを実行すると、先に進んでそれを実行できるようになりますが、ディスクが今世紀に製造されており、不良セクタが表示されている場合は、ディスクをチャックする必要があります。ゴミ箱(または保証書に連絡)。私のお金の場合SMART status and defense in depth は、手動でディスクをチェックするよりも時間を有効に活用しています。

11
voretaq7

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

https://superuser.com/a/693065

https://superuser.com/a/693064

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

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

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

このテスト中、不良ブロックはドライブによってマップされます。したがって、 "Realocated Sector Count"をテストの前後に記録し、SMARTしきい値と比較する必要があります。これは、ドライブの正常性について何かを伝えるためです。

5
Frank Breitling

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

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

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

ディスクをより適切に分析できる限り、smartctl -tを使用して2つの中から選択する必要があります。

Diskscanユーティリティの使用を提案することもできます https://github.com/baruch/diskscan 、それはbadblocksのように機能しますが、不良になっているセクターがあるかどうかを評価しようとします。読むのに時間がかかる難聴のセクター。これは開発中のメディアの問題を示しており、将来のバージョンでは、ディスクがこの問題を解決するのを支援する自動試行も提供する可能性があります。

2
Baruch Even