Может ли LVM отмечать / избегать плохих блоков?

Так как btrfs не отслеживает плохие блоки , как обход этого столбца списка рассылки btrfs, предлагаемого с использованием базовой конфигурации mdadm RAID0 для поддержки badblocks.

Может ли LVM использоваться вместо mdadm для этой цели?

В общем, как уже упоминалось в комментарии здесь и в потоке списка рассылки, к которому вы привязались, современные жесткие диски, которые до сих пор ушли, у них есть незаменимые плохие блоки, нужно просто отбросить. (Вы объяснили, почему вас это интересует, но это стоит отметить для других читателей.)

Я не думаю, что в LVM есть что-то, чтобы избежать плохих блоков; обычно вы должны обращаться к этому ниже LVM на уровне устройства. Один из способов решения этой проблемы – использовать deviceperper: создать таблицу, дающую отображение сектора, необходимое для пропущения всех плохих блоков, и создать устройство, используя это. Такая таблица будет выглядеть примерно так:

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

и т. д. (это создает устройство с 196-сектором, используя /dev/sda но пропускающий сектор 98). Вы даете это dmsetup :

 dmsetup create nobbsda --table mytable 

а затем создайте PV на результирующем /dev/nobbsda устройстве (вместо /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, будет использование способности pvmove перемещать физические экстенты, чтобы переместить LV из плохих областей. Но это не помешает повторному использованию этих областей при создании нового LV или изменении существующего LV или перемещении.