質問: ubuntuで不良ブロックの再試行/待機時間を削減する io待機時間と再試行回数を減らして、osが障害のあるドライブに継続的に書き込みを試行しないようにするにはどうすればよいですか?私は、通常のsataデスクトップハードドライブに顧客に貸し出されるデモコンテンツのコピーを作成するために使用するシステムを持っています。 sas=を介して一度に多くのドライブを接続し、スクリプトを使用してそれらにコンテンツをコピーします。ドライブが貸し出されているため、一部が破損して戻ってくることがありますが、それらが破損していることはわかりません。そのため、次にそのドライブがコピー操作で再利用されると、システムが再試行するときに他のドライブの速度が低下しますioです。不良ドライブに気づいてそれを削除するまでに数時間かかることがあります。ドライブを削除すると、残りのドライブは通常の速度で書き込みを開始します。不良ドライブを回復する必要はありません。私はそれらを取り除き、他のすべてを遅くしないようにする必要があります。私はbadblocksとsmartmontoolsについても調査しており、書き込みを始める前にドライブの事前チェックを書き込むことを検討しています。os:ubuntu linux(12.04 lts)
回答: モニター/sys/block/<dev>/stat対象のデバイスについて、10番目のパラメーター(io_ticks)を比較します。例、ticks = io_ticks - prev_ticks / seconds_deltatime / 10これは、ディスクがディスクioの待機に費やした使用可能な時間の割合です。100%に近いのはもちろんチェックする価値があります。そうでなければ、本当に賢くなってすべてのディスクの平均と比較し、平均より上のディスクを選択します。 ブロックレイヤー統計のドキュメント を参照してください。それ以外の場合は、muninのようなものを使用してグラフ化します。 muninがしきい値(90%など)を超えた場合や、グラフで示されているものが適切なアラート値である場合にアラートを出すことができます。たとえば、/ dev/sdiを確認する必要があることを示す次の2つのmuninグラフを参照してください。この例では、/ dev/sdiが配列の一部である場合、そのために配列全体が影響を受けます。週のグラフを見ると、/ dev/sdcも遅い可能性があることがわかります。上記の/ dev/sdiが壊れていないことを追加する必要があります。これは、低速のディスク(実際にはエンタープライズグレードのsataディスクのアレイに誰かが追加した緑色のディスク)であり、アレイの速度が低下しました。実際に障害が発生したディスクは、親指のように飛び出します。要約すると、時間があればスクリプトを使用しますが、簡単な解決策が必要でサーバーへの接続が簡単だった場合、muninは簡単でした。