Восстановление массива LVM Raid-5

Восстановление массива LVM Raid-5

У меня есть неисправный массив raid-5, который я не могу восстановить. В общем, история такова: у меня были эти данные в raid 5, и я использовал LVM, в котором теперь есть встроенный raid. Я заметил, что один из дисков выходит из строя, поэтому я взял новый и выдал команду pvmoveпереместить экстенты с неисправного диска на новый. В какой-то момент во время миграции старый диск вышел из строя и полностью перестал отвечать (не уверен, почему это могло произойти). Поэтому я перезагрузил его, и теперь массив вообще не появляется. Все выглядит достаточно хорошо, например, 3/4 диска работают, и я почти уверен, что даже неисправный временно восстановлен (хотя не доверяйте этому). Но когда я выдаю команду, lvchange -a y vg-array/array-dataя получаю ошибку со следующим в dmesg

not clean -- starting background reconstruction
device dm-12 operational as raid disk 1
device dm-14 operational as raid disk 2
device dm-16 operational as raid disk 3
cannot start dirty degraded array.

Я почти уверен, что есть способы принудительного запуска с помощью mdadm, но я не видел ничего для lvm. Но поскольку у меня три диска, все мои данныетамтак что это должно быть восстанавливаемо. Кто-нибудь знает, как это сделать?

решение1

Решение этой проблемы — добавить параметр загрузки ядра.

md-mod.start_dirty_degraded=1

Затем и перезагрузка. Мне все еще пришлось активировать том вручную, но после добавления этого параметра dirty degraded arrays теперь являются предупреждением, а не ошибкой /etc/default/grub.update-grub

Это задокументировано вhttps://www.kernel.org/doc/html/latest/admin-guide/md.html#boot-time-assembly-of-degraded-dirty-arrays

решение2

После добавления нового устройства, создания на нем физического тома, добавления физического тома в группу томов с помощью vgextendи удаления отсутствующих физических томов с помощью vgreduce --remove --forceя могу восстановить свой массив raid6 на LVM с помощью следующей команды

lvconvert --repair <vgname>/<lvname>

Ход восстановления можно увидеть с помощью lvs, который отобразится в Cpy%Sync.

Связанный контент