복구할 수 없는 실패한 raid-5 어레이가 있습니다. 기본적으로 이 데이터는 raid 5에 있었고 지금은 raid가 내장된 LVM을 사용하고 있었습니다. 디스크 중 하나가 손상되는 것을 발견하여 새 디스크를 구입하고 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에 대해서는 아무것도 본 적이 없습니다. 하지만 디스크가 3개 있으므로 모든 데이터는거기따라서 복구 가능해야 합니다. 누구든지 그것을 수행하는 방법을 알고 있습니까?
답변1
이에 대한 해결책은 커널 부팅 매개변수를 추가하는 것입니다.
md-mod.start_dirty_degraded=1
/etc/default/grub
그때 까지 update-grub
재부팅하십시오. 여전히 볼륨을 수동으로 활성화해야 했지만 해당 매개변수를 추가한 후에는 더티 성능 저하 어레이가 이제 오류가 아닌 경고로 표시됩니다.
이것은 다음에 문서화되어 있습니다.https://www.kernel.org/doc/html/latest/admin-guide/md.html#boot-time-assemblies-of-degraded-dirty-arrays
답변2
새 장치를 추가한 후 PV를 생성하고 를 사용하여 PV를 볼륨 그룹에 추가하고 을 사용 vgextend
하여 누락된 PV를 제거합니다 vgreduce --remove --force
. 다음 명령을 사용하여 LVM에서 raid6 어레이를 복구할 수 있습니다.
lvconvert --repair <vgname>/<lvname>
lvs
Cpy%Sync에 표시되는 복구 진행 상황을 확인할 수 있습니다 .