'badblocks'による完全な読み取り/書き込み表面スキャンは、組み込みの SMART Extended self test とどのように異なりますか?
どちらも全面スキャンのようですが、なぜbadblocks -vws
1 TBドライブをテストするための3日間、SMARTは2時間半で完了します(少なくともsmartmonが私に与えた推定時間です)?
SMART表面テストはほぼ確実に単一であり、確実に非破壊的な読み取りパスです。指摘されているように、これはドライブの内部にもあります;マイナーな制御データを除いて、テスト中、ホストとの間でデータが送受信されていません。
一方、 badblocks -w
はドライブ上で4つのパスを作成し、それぞれに1つの書き込みと1つの読み取りを行います。これだけでも、テストにかかる時間の8倍の差と回転待ち時間が原因です。これはホスト上で実行されるソフトウェアなので、すべてのデータをディスクインターフェースを介してRAM)にシャッフルし、ソフトウェア(この場合は不良ブロック)で処理する必要があります。
最悪の場合、1倍の回転レイテンシをとると(データを書き込んだ後、ディスクが1回転してデータを読み取る必要があります。これは、不良ブロックが最初に全体を埋める場合に見られるものとほぼ同じです。ディスクを読み取り、それをすべて読み戻します。LBAではほとんど不可能である一度に1つの物理トラックでI/Oを実行するのではなく)、最悪の場合(1 + 1)×8×= 16×になり、操作を完了します。 16×2.5h = 40h。これは確かに数値と一致しており、ドライブ上のデータストレージのみを処理しており、ドライブがシーケンシャルI/Oを維持できるのと同じ速さで発生していると想定しています。
S.M.A.R.T.ショートおよびロングテストは、セクターの(ローカライズされた)読み取りのみを実行します。これは、データに対して非破壊的でもあります。読み取りデータは、オンボードコントローラーにのみ転送され、ホストPC:SATAインターフェイスはテスト中は基本的にアイドル状態であり、PCのHDDアクティビティライトは点灯しないはずです。
badblocks -vws
は書き込みセクターを要求してから、読み取りと検証の操作を行います。書き込みと読み取りのたびに、操作ごとにディスクの革命が加わり、SATAインターフェイスを介したデータ転送とホストPC処理の時間が追加されます。ほとんどの場合、HDDアクティビティライトが点灯しているはずです。
https://wiki.archlinux.org/index.php/badblocks#Comparisons_with_Other_Programs
ここでの警告は、一部のメーカーのテストプログラムは完全なテスト結果を出力せず、合格または不合格の場合にのみ特定の数の不良セクタを許可することです。ただし、製造元のプログラムは、通常、不良ブロックよりも高速な場合があります。
したがって、可能な場合は、badblocksの破壊的で徹底的なテストを使用してください。
編集:破壊的ということは、最近の多くのハードドライブには180 TB /年のワークロードがあることを意味します。つまり、12 TBのhdでは、バッドブロックテストの完全なセットを実行してそれをテストするだけで、96 TBのワークロードを取得することになります。ワークロードで書き込みのみを意味する場合は48TBになる可能性がありますが、これは事実かもしれませんが、十分に文書化されていません。