
나는 3개의 PV가 있는 VG를 가지고 있었습니다. VG에는 세 개의 PV를 모두 사용하는 하나의 LV가 있습니다. 그런 다음 하나의 PV(hdd)가 사망했습니다. 나는 내가 할 수 있는 모든 것을 회복하려고 노력하고 싶었다. 그래서 가장 먼저 해야 할 일은 LV/VG에서 누락된 PV를 제거하는 것이었습니다. 인터넷 검색을 통해 찾은 지침에 따라 vgreduce를 사용하여 해당 PV를 제거했습니다. 그러나 내가 배운 것처럼 LV도 제거되었습니다. 이제 vgchange를 대신 사용하기 위해 vgreduce 이전의 원래 구성을 복원하려고 합니다. vgcfgrestore -f 를 사용하고 있는데, 여기서 아카이브 파일은 vgreduce 이전에 생성된 파일입니다. 하지만 "누락된 것으로 표시된 1개의 PV가 있는 볼륨 그룹 VGR을 복원할 수 없습니다"라는 메시지가 계속 나타납니다.
LV를 복구할 수 있나요? 그렇다면 어떻게?
어떤 도움이라도 대단히 감사하겠습니다.
티아
시야
답변1
Linux LVM은 기본적으로 LV가 있는 PV를 제거하지 않습니다. LV의 무결성이 양호하려면 모든 범위가 필요합니다. vgreduce --force
LV를 제거할 수도 있지만 여러 안전 검사가 비활성화됩니다. BE매우어떤 옵션을 사용할지는 구체적이고 신중해야 합니다. 터미널 세션을 기록하십시오.
회복을 계획하세요. 이 데이터의 존재하는 백업을 찾으십시오. 조직에 얼마나 가치가 있는지, 재창조하는 데 시간이 얼마나 걸릴지 추정해 보세요. 백업이 없는 경우 전문 데이터 복구 서비스에서 견적을 받아보세요.
오류가 발생한 드라이브를 동일한 크기의 양호한 드라이브로 이미지화해 보십시오. 직접 수행하는 경우 dd_rescue
. 어떤 경우에는 미디어를 계속 사용하면 미디어가 더 손상될 수 있습니다(아직 죽지 않은 경우). 데이터 복구 서비스에서는 데이터를 복구하기 위해 수술을 수행할 수도 있습니다.
이미지를 생성하면 새 디스크에 이전 PV의 ID가 부여됩니다. 새 장치를 다시 추가하십시오. vgextend --restoremissing $PV
LV를 줄이면 vgcfgrestore --file
다시 시도하고 그렇게 하기 전으로 돌아가야 할 때입니다.
모든 시도가 실패하고 데이터 손실을 받아들인다면 실패한 PV를 비어 있는 새 드라이브로 교체하는 것을 고려하십시오. 거의 확실하게 이로 인해 데이터가 손상될 것입니다. 손상이 정확히 어떻게 나타나는지는 파일 시스템 등에 따라 다릅니다. 하지만 시도해 볼 만한 일입니다. man vgcfgrestore
절차를 설명합니다.
PV를 교체하려면
vgdisplay --partial --verbose
더 이상 존재하지 않는 PV의 UUID와 크기를 표시합니다. VG의 PV가 손실되고 동일한 크기의 다른 PV로 대체하려는 경우pvcreate --restorefile filename --uuid uuid
(적절한 경우 추가 인수 포함)을 사용하여 누락된 PV와 동일한 UUID로 초기화하십시오. VG에서 누락된 다른 모든 PV에 대해 반복합니다. 그런 다음vgcfgrestore --file filename
VG의 메타데이터를 복원하는 데 사용합니다 .
PV 누락이 없는 덜 저하된 시나리오에서는 pvmove
PV 간에 범위를 이동하고 스토리지 마이그레이션에 사용할 수 있습니다.
앞으로는 볼륨 그룹이 하드 드라이브 손실을 견디도록 하려면 중복성을 추가하는 것을 고려하십시오. 어레이 LUN의 PV가 있는 LVM 아래 또는 LVM 계층에 있습니다. 소프트웨어 솔루션에 대해서는 매뉴얼 페이지 mdadm
및 lvmraid
각각을 참조하십시오.
답변2
이 링크가 귀하의 질문에 대한 답변이라고 생각합니다 https://unix.stackexchange.com/questions/47380/where-does-lvm-store-data