У меня есть неисправный массив 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.