LVM は不良ブロックをマーク/回避できますか?

LVM は不良ブロックをマーク/回避できますか?

以来btrfsは不良ブロックを追跡しない回避策としてこのbtrfsメーリングリストの投稿badblocks サポートのために、基盤となる mdadm RAID0 構成を使用することを提案しました。

この目的のために、mdadm の代わりに LVM を使用できますか?

答え1

一般的に、コメントここで、そしてあなたがリンクしたメーリング リストのスレッドでも述べられているように、交換不可能な不良ブロックを持つほど劣化した最新のハード ドライブは、廃棄するべきです。(あなたがこれに興味を持っている理由を説明しましたが、他の読者にとっても注目に値します。)

LVM には不良ブロックを回避するための機能は何もないと思います。通常は LVM の下のデバイス層で対処します。この問題に対処する 1 つの方法は、デバイス マッパーを使用することです。つまり、不良ブロックをすべてスキップするために必要なセクター マッピングを示すテーブルを作成し、それを使用してデバイスを構築します。このようなテーブルは次のようになります。

0 98 linear /dev/sda 0
98 98 linear /dev/sda 99

など(これは196セクターのデバイスを作成し、/dev/sdaセクター98は使用してスキップします)。これをdmsetup:

dmsetup create nobbsda --table mytable

/dev/nobbsda次に、結果のデバイス ( の代わりに)に PV を作成します/dev/sda

この方法を使用すると、少しの事前計画で、ドライブのファームウェアと同じように、将来的に故障したセクターを処理することもできます。つまり、ドライブの最後にいくつかのセクターを空けておき (リスクを分散したい場合は、ドライブのあちこちに点在させてもかまいません)、それらを使用して故障したセクターによってできた穴を埋めます。上記の例を使用して、たとえば 200 から始まるセクターをスペア セクターと見なし、セクター 57 が不良になったとします。

0 57 linear /dev/sda 0
57 1 linear /dev/sda 200
58 40 linear /dev/sda 58
98 98 linear /dev/sda 99

指定された不良セクタのリストを使用してデバイス マッパー テーブルを作成することは、badblocks読者の課題として残されています。

既存のLVM設定で動作する別の解決策としては、pvmoveLV を不良領域から移動するために物理エクステントを移動する機能。ただし、新しい LV が作成されたり、既存の LV がサイズ変更または移動されたりしたときに、それらの領域が再利用されるのを防ぐことはできません。

関連情報