最新のディスクで「badblocks」を使用する


21

不良ブロックを使用してHDDをチェックしたいので、その動作を明確にしてください。

缶誰かがで使用するのが最善の選択肢を説明してください-b-c?私はそれらの定義をマニュアルページから含めましたが、64MB RAMと4kセクターを備えた最新のディスクに大きなサイズが有益かどうかはわかりません。

-b block-size       Specify the size of blocks in bytes. The default is 1024. 
-c number of blocks the number of blocks which are tested at a time. The default is 64

第二に、書き込みモードのテストが非破壊的な読み取り/書き込みモードよりも徹底的かどうかを知りたいですか?

最後に、SMARTセクターの再割り当てはいくつ受け入れられますか?ゼロ以外の再割り当てカウントを持つドライブはすぐに交換する必要がありますか?


3
第2部:不良ブロックが表示されるとすぐに、何か問題が発生したことを意味します。これはおそらく、まったく読み取れない前にディスクを交換する必要がある良い兆候です。ただし、すべての場合において、障害が発生する前に、作業コピーに加えて、重要なデータのバックアップを常に2つ(ローカル1つ、リモート1つ)保持する必要があります。そこに私の答えの詳細を参照してください。superuser.com/a/528181/174998
オリヴィエ・デュラック

4
ブロックサイズの場合:OSがそのハードドライブにデータを格納するために使用していた実際のブロックサイズを反映する必要があります(使用するファイルシステムに応じて)。物事をスピードアップするのではなく、ブロックを「不良」とマークするようにします。そのブロックは実際には1ブロックであり、1/2または1/4または2(またはそれ以上)ブロックではありません。
オリビエデュラック

回答:


21

質問1:

-bオプションに関して:これはディスクに依存します。最新の大きなディスクには4KBブロックがあり、その場合はを設定する必要があり-b 4096ます。ブロックサイズはオペレーティングシステムから取得できます。また、通常、ラベルからディスクの情報を読み取るか、ディスクのモデル番号をグーグルで取得することもできます。-bブロックサイズよりも大きい値に設定されている場合、badblocks結果の整合性が損なわれる可能性があります(つまり、偽陰性が発生する可能性があります。場合は-b、ドライブのブロックサイズよりも小さいものに設定されている、のスピードbadblocks走行が損なわれる可能性があります。わからないが、設定に他の問題があるかもしれない-bブロックサイズよりも小さい値に設定します。ブロック全体の整合性を検証するものではないため、設定が小さすぎると偽陰性が発生する可能性があります。

この-cオプションは、一度にチェックするブロック数に対応しています。基本的に、バッチ読み取り/書き込み。このオプションは結果の整合性には影響しませんが、badblocks実行速度には影響します。badblocks(オプション)書き込み、読み取り、バッファリング、チェック、で指定されたNブロックごとに繰り返します-c。場合は-c、あまりにも低く設定され、これはあなたのようになりますbadblocks実行キューイングとオーバーヘッド別のIO要求招きを処理するように、はるかに長い通常よりもかかり、およびディスクも要求ごとの追加のオーバーヘッドを課す可能性があります。の-c設定が高すぎるとbadblocks、メモリが不足する可能性があります。これが発生した場合、badblocks起動後すぐに失敗します。ここでの追加の考慮事項には、並列badblocks実行が含まれます:実行している場合badblocks同じディスク上の複数のパーティションに対して(悪い考え)、または同じIOチャネル上の複数のディスクに対して、-c使用可能なメモリを考慮して、かなり高い値にチューニングしbadblocksて、並列実行がIO帯域幅を奪わないようにすることができます。そして、健全な方法で並列化できます。

質問2:

他の答えが示すものとは反対に-w書き込みモードテストは、非破壊的な読み取り/書き込みテストよりも信頼性は高くも低くもありませんが、すべてのデータを破壊するという代償を払って2倍高速です。理由を説明します。

非破壊モードでbadblocksは、次のことを行います。

  1. 既存のデータを読み取り、チェックサム(必要に応じて再度読み取り)し、メモリに保存します。
  2. 事前に定義されたパターン(-p通常は必要ではありませんが、オプションでオーバーライド可能)をブロックに書き込みます。
  3. ブロックを読み戻し、読み取ったデータがパターンと同じであることを確認します。
  4. 元のデータをディスクに書き戻します。
    • これについてはわかりませんが、おそらく元のデータが正常に書き込まれ、同じものに対するチェックサムが引き続き行われていることを再読み取りして検証します。

破壊(-w)モードでは、badblocks上記の手順2と3のみを実行します。つまり、データの整合性を検証するために必要な読み取り/書き込み操作の回数が半分になります。ブロックが不良の場合、データはどちらのモードでもエラーになります。もちろん、ドライブに保存されているデータを気にする場合は、非破壊モードを使用する必要があります。-wすべてのデータをbadblocks消去し、代わりにパターンをディスクに書き込みます。

警告:ブロックがされた場合に起こって悪いが、まだ完全消えていない、いくつかの読み取り/書き込み検証ペアが動作する可能性があり、一部はないかもしれません。この場合、非破壊モードでは、2セットの読み取り/書き込み検証を行うため、ブロックの「むしさ」をより確実に示すことができます(おそらく、手順4の箇条書きを参照してください)。その方法で非破壊モードの方が信頼性が高い場合でも、偶然により信頼性高まるだけです。完全に不良ではないが、複数の読み取り/書き込み操作を維持できないブロックをチェックする正しい方法はbadblocks-pオプションを使用して同じデータに対して複数回実行することです。

質問3:

SMARTがセクターを再割り当てしている場合は、できるだけ早くドライブを交換することを検討する必要があります。いくつかのセクターを失ったドライブは、常にそれらを失い続けるわけではありませんが、原因は通常、使用頻度の高いドライブが磁気的にどろどろになったり、ヘッド/モーターが故障して読み取り/書き込みが不正確または失敗したことです。もちろん、最終決定はあなた次第です。ドライブ上のデータの価値と、その上で実行するシステムに必要な信頼性に基づいて、あなたはそれを維持することを決めるかもしれません。私のファイルサーバーには、何年もSMART警告で回転している既知の不良ブロックのドライブがいくつかありますが、それらはスケジュールに基づいてバックアップされているので、全体の障害をそれほど苦痛なく処理できます。


4
なぜ-bデフォルトになり1024ますか?それはちょっと奇妙に思えます。どうして512
ライアンJ

6
@RyanJ 1024は、の最小ブロックサイズですext2。badblocksはe2fsprogsの一部であり、元々はext2ファイルシステムの不良ブロックリストに入力することを目的としていました。mkfs.ext2の正しい形式で数値を取得するには、FSと同じブロックサイズで実行する必要があります。TL; DR:気にするべきではない歴史的な理由。
sourcejedi

BUUUTT、@ Zac Bは、「-bがブロックサイズよりも大きい値に設定されると、badblocksの結果の整合性が損なわれる可能性がある」と述べました1024> 512。ただし、「-bがブロックサイズよりも大きい値に設定されていて、その数が複数ではない場合、badblocksの結果の整合性が損なわれる可能性があります」と言い換える必要があります。私より賢い他の人たちのオリジナルのポスターは何と言いますか?
ビリーC.

4

1)最新のディスクが512b以外のセクターサイズを使用している場合- -bオプション(つまり-b 4096)でそのサイズを設定する必要があります。このオプションを使用しないと、各実セクターが複数回(4kセクターの場合は8回)試行されるため、チェックの実行が非常に遅くなります。また、質問へのコメントでOlivier Dulacが言及したように-block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.

オプション-cは、一度にいくつのセクターtryidを意味します。パフォーマンスに何らかの影響を与える可能性があり、そのパフォーマンスの価値は特定のディスクモデルに依存する可能性があります。

2)write-mode test-私の理解では、ハードバッドエラーまたはソフトバッドエラー(別名サイレントデータ劣化、ビット腐敗、ストレージメディアの劣化、UNCセクター)があるかどうかのみをチェックします

3)ある時点でSMARTレポートを信頼しません。時間とともに値がどのように変化するかがより重要です。また、大容量ディスクドライブの人口における Google Failure Trendsによる調査と、それに関する議論もここにあります。ここに研究からの引用があります:

この高い相関関係にもかかわらず、SMARTパラメーターのみに基づいたモデルは、個々のドライブの障害を予測するのに役立つ可能性は低いと結論付けています。

ディスク交換に​​関する他の人の言及について-ハードディスクの問題ではなく、サイレントデータの劣化(ビットの腐敗、ストレージメディアの劣化、UNCセクター)がある可能性があります。その場合、ディスクを交換する意味はありませんが、代わりにディスクへの同じデータの読み取り/書き込みを実行すると便利です。あなたは見ることができる、ここでそれを解決することができる方法。

ハードバッドエラーが発生した場合、不良領域がパーティション外にあるようにドライブのパーティションを再作成することができます。私にとって、このアプローチは有用であり、そのような不良ドライブは問題なく長期間使用されました。


最初の文は間違っており、-bデフォルトは1024です。ディスクが1024以外のセクターサイズを使用している場合、これはext2ファイルシステムの外部ではかなり一般的であるため、指定する必要があります。
ハシム

1

変更する特別な理由がない限り、-bと-cをデフォルトのままにします。ディスクのブロックサイズが4kの場合、おそらく-bを4096に設定できます。

まず、非破壊rwテストでbadblocksを実行することをお勧めします。不良セクタが見つかった場合、ディスクは破損しているため、交換する必要があります。非破壊で不良ブロックが見つからないが、不良ブロックがあると思われる場合は、破壊的rwテストを実行します。

最後に、SMARTセクターの再割り当てはいくつ受け入れられますか?ゼロ以外の再割り当てカウントを持つドライブはすぐに交換する必要がありますか?

セクタが交換されるとすぐにドライブを交換します。


2
セクタが交換されるとすぐにドライブを交換します。通常の操作でブロックが悪くなっていることをどのように知っていますか?何らかの方法で信号を受け取りますか?
アレクシスウィルケ

5
SMARTログを監視する必要があります。
ЯрославРахматуллин

1
それらを変更する特別な理由がない限り。デフォルトの1024とは異なるブロックサイズを持っているような、非常に一般的ですか?
カルカマーノ

1

この種類は、不良ブロックの読み取りモード(非破壊)と書き込みモード(破壊)の違いになります。

ドライブは、書き込みが失敗した場合にのみ不良セクタを再割り当てします。ファイルの読み取りエラーは、ファイルを書き直そうとしたときにのみ「修正」されます。さもないと。何かを回復できる可能性があるという前提で、不良ブロックはファイルの一部のままです。パーティションテーブルの読み取りエラーは、書き込みモードで不良ブロックを実行し、パーティションを再作成することによってのみ「修正」できます。

そのため、読み取りモードでは不良ブロックの場所がわかりますが、それらについては何もできません。書き込みモードは各セクターの正常性をテストし、ディスクに不良ブロックを再割り当てさせますが、データを破壊します。好きなのを選びな。


0

再マップされたセクターに関する2番目の質問に答えるには、状況によります。私は、この種のものを(ときどき)監視するホームユーザーのコンテキストから話しています。

  • ドライブに保存されるデータはどれほど重要ですか?
  • ドライブが突然腹を上げた場合、何が失われますか?
  • データは他の場所にバックアップされていますか?
  • ドライブの損失による影響が最小限であるRAIDのメンバーですか?
  • 再マップされたセクターの数は増えていますか?

ここに私が直面した2つの状況があります。6台の200GBドライブのRAID5がありました。ライトがちらつくという電源障害の後、1つのドライブが14個の再マップされたセクターを示し、いくつかのエラーを記録しました。ドライブを監視したところ、エラーは記録されず、再マップされたセクター数は安定したままでした。私は、ドライブが電源の過渡現象に苦しみ、それ以外の場合は故障していないと結論付けました。何年も使い続けました。元のRAID5は廃止されましたが、私はこれらのドライブのうち2台を稼働しており、約10年間の電源オン時間でした。彼らは少数のリマップされたセクターを持っています。そのうちの2つをミラーリングして、プライマリバックアップからの増分バックアップダンプを保存します。そのようにして、メインバックアップは(ほとんど)読み取り操作を確認し、書き込みは異なるデバイスに送信されます。これらの古代のドライブの1つが故障した場合、もう1つは継続します。両方とも失敗した場合、それらを別のものに置き換え、バックアップスクリプトを再実行します。これらのドライブの1つに障害が発生した場合の影響はゼロに近いため、セクターの再マップについて心配する必要はありません。

ミラードライブのペアの1つであり、リマップセクターの成長を開始した2TBのHDDがありました。最初は数十、数百、数千でした。これは数年にわたるものでした。ペアのもう一方のドライブは正常なままで、実際、ゆっくりと失敗する派生はアレイから削除されませんでした。最終的に、両方のドライブを6TBドライブに交換しましたが、リマップされたセクター数の増加は問題になりませんでした。ドライブはまだあり、約4500個のリマップセクターがあっても、それは「動作」しています。このようなドライブを(RAIDメンバーとして)テストシステムに配置して、実際に死んだときに何が起こるかを確認しました。私はこれを使って仕事をする機会がいくつかありましたが、すべての状況で交換はドラマなしで行きました。

プライマリバックアップファイルサーバーでドライブ障害が発生しました。高度な警告は生成されず、SATAコマンドへの応答が停止しました。ZFS RAIDZ2のメンバーであり、ドラマなしで交換しました。実際、テストサーバーでは、電源を入れ直したりサーバーを再起動したりせずに、故障したドライブを交換しました。

もう1つ注意すべき点は、すべての重要なデータのオンサイトおよびオフサイトのバックアップがあることです。1つのシステムが失われた場合、別の場所にデータのコピーが2つあります。

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