최근에 Linux LVM 볼륨 그룹 중 하나의 물리적 볼륨인 RAID를 잃어버렸습니다. 나는 결국 vgreduce --removemissing
데이터 복원 작업을 시작했습니다.
글쎄, 오늘 나는 RAID를 발견했습니다(숨겨져 있었으니 묻지 마세요).
# pvdisplay -m /dev/md2
WARNING: Volume group mg20 is not consistent
"/dev/md2" is a new physical volume of "499.87 GiB"
--- NEW Physical volume ---
PV Name /dev/md2
VG Name
PV Size 499.87 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz
mg20
분실물 PV에는 /dev/md2
에 있는 파일 시스템을 언급하는 이전 논리 볼륨 카탈로그의 복사본이 포함되어 있을 가능성이 높기 때문에 일관성이 없습니다 /dev/md2
.
/dev/md2
그 파일 시스템 에 다시 통합 mg20
하고 보존하려면 어떻게 해야 합니까 ? (그리고 내용을 복원하는 번거로움을 덜어줍니다.) 단순화 요소는 /dev/md2
단 하나의 LV만 포함하고 LV는 에 완전히 포함되어 있다는 것입니다 /dev/md2
.
답변1
나는 알아냈다ㅏ습격을 복구하는 방법. 최신 LVM 시스템은 VG 구성을 자주 백업합니다. 를 사용하여 백업 목록과 이를 트리거한 명령을 볼 수 있습니다 vgcfgrestore --list
. 나는 이전 작업을 수행할 때 하나를 선택했고 vgreduce --removemissing
그 안에서 다음과 같은 관련 비트를 발견했습니다.
pv8 {
id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
device = "unknown device" # Hint only
status = ["ALLOCATABLE"]
flags = ["MISSING"]
dev_size = 1048312832 # 499.875 Gigabytes
pe_start = 2048
pe_count = 127967 # 499.871 Gigabytes
}
그리고
homes18 {
id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1
segment1 {
start_extent = 0
extent_count = 89600 # 350 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv8", 0
]
}
}
"MISSING"
그래서 해당 파일의 복사본을 만들고 flags =
. 나는 또한 를 설정했지만 device = "/dev/md2"
아마도 그럴 필요는 없었을 것입니다. 나는 a를 수행했고 vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20
이제 내 mg20/homes18이 돌아와서 fsck를 통과했습니다.
솔직히 말해서, 나는 이것에 대한 답변에 별로 만족하지 않습니다. 전체 구성을 복원하는 것은 약간 과잉입니다.
실제 답변에는 가 포함될 수 있다고 생각 lvcreate -Z n
하지만 이를 확인하기 위해 필요한 실험을 수행하기에는 너무 게으르다.