저는 데비안 10.7 컴퓨터에서 radi6(HDD) 설정을 실행하고 있습니다. 저는 LVM VG에 이 md 장치를 사용합니다. SSD를 연속 쓰기 캐시로 추가했습니다. 불행히도 내 bash 기록에는 빌드 명령이 포함되어 있지 않습니다. 그런데 작업 설정을 하고 며칠이 지나자 캐시 장치를 포함하여 SSD에 오류가 발생했습니다. 새 데비안을 설치한 후 루트도 SSD에 있기 때문에 LVM 볼륨을 부팅할 수 없습니다. 다음과 같은 오류 메시지가 나타납니다.
Couldn't find device with uuid
나는 이것을 시도하고 있습니다 vgreduce --removemissing
. 결과는 컴퓨터가 캐싱을 시작할 수 없다는 불만입니다.
비슷한 질문을 찾고 있었고 답변을 찾았습니다. 새 PV를 추가하고 UUID가 누락된 새 LV를 생성하세요. 그렇게 했는데 Couldn't find device with uuid
사라졌어요.
하지만 LVM 볼륨을 시작할 수 없습니다.
root@fileserver:~#lvchange -ay raid6-4T
Check of pool raid6-4T/r6_4T_files_cache failed (status:1). Manual repair required!
root@fileserver:~# lvs -a --units m
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvm-var raid6-4T Cri---C--- 35944,00m [lvm-var_cache] [lvm-var_corig]
[lvm-var_cache] raid6-4T Cwi---C--- 5036,00m
[lvm-var_cache_cdata] raid6-4T Cwi------- 5036,00m
[lvm-var_cache_cmeta] raid6-4T ewi------- 40,00m
[lvm-var_corig] raid6-4T owi---C--- 35944,00m
[lvol0_pmspare] raid6-4T ewi------- 852,00m
r6_4T_files raid6-4T Cwi---C--- 15225324,00m [r6_4T_files_cache] [r6_4T_files_corig]
[r6_4T_files_cache] raid6-4T Cwi---C--- 34172,00m
[r6_4T_files_cache_cdata] raid6-4T Cwi------- 34172,00m
[r6_4T_files_cache_cmeta] raid6-4T ewi------- 852,00m
[r6_4T_files_corig] raid6-4T owi---C--- 15225324,00m
나는 고치려고 노력한다:
root@fileserver:~# lvconvert --repair /dev/raid6-4T/r6_4T_files_cache
bad checksum in superblock
Repair of cache metadata volume of cache raid6-4T/r6_4T_files_cache failed (status:1). Manual repair required!
root@fileserver:~# lvdisplay
--- Logical volume ---
LV Path /dev/raid6-4T/r6_4T_files
LV Name r6_4T_files
VG Name raid6-4T
LV UUID P1oxae-VTkp-mu6p-8a5z-un2R-pXz9-YjakTI
LV Write Access read/write
LV Creation host, time fileserver, 2019-08-08 15:57:56 +0200
LV Cache pool name r6_4T_files_cache
LV Cache origin name r6_4T_files_corig
LV Status NOT available
LV Size 14,52 TiB
Current LE 3806331
Segments 1
Allocation inherit
Read ahead sectors auto
--- Logical volume ---
LV Path /dev/raid6-4T/lvm-var
LV Name lvm-var
VG Name raid6-4T
LV UUID RNqJF7-FLxx-5WvX-6ceH-NtHl-hvqd-Fus5A5
LV Write Access read only
LV Creation host, time fileserver, 2020-12-13 14:45:51 +0100
LV Cache pool name lvm-var_cache
LV Cache origin name lvm-var_corig
LV Status NOT available
LV Size 35,10 GiB
Current LE 8986
Segments 1
Allocation inherit
Read ahead sectors auto`
root@fileserver:~# vgdisplay
--- Volume group ---
VG Name raid6-4T
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 81
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 14,59 TiB
PE Size 4,00 MiB
Total PE 3825555
Alloc PE / Size 3825555 / 14,59 TiB
Free PE / Size 0 / 0
VG UUID 88lUal-4tQX-CEcf-ZNZe-rdGv-3B2x-4ZCDrp
줄 바꿈이 있는 코드를 붙여넣는 방법은 무엇입니까? - 이 게시물의 형식이 잘못된 것으로 알고 있습니다.
목표는 LV에 파일 시스템 마운트를 최소화하는 것입니다. 데이터를 저장한 후 설정을 다시 만들 수 있습니다. 최선의 시나리오에서는 설정을 다시 활성화합니다.
필요한 모든 정보가 포함되기를 바랍니다. 그렇지 않으면 불만을 제기해 주세요!
먼저, 감사합니다!
답변1
LVM 볼륨을 다시 활성화할 수는 없지만 데이터를 읽을 수는 있습니다.
root@fileserver:~# lvchange -ay raid6-4T/r6_4T_files_corig --activationmode partial
PARTIAL MODE. Incomplete logical volumes will be processed.
Do you want to activate component LV in read-only mode? [y/n]: y
Allowing activation of component LV.
Couldn't find device with uuid tOkG3t-aWGl-4PfO-DI3O-TMoG-ia1z-p4UQgP.
Couldn't find device with uuid qmDOrk-0SRI-9Z1S-PzgI-GRI8-xLrP-kC5LHd.
root@fileserver:~# mount -o noload -r /dev/mapper/raid6--4T-r6_4T_files_corig /media/data/
root@fileserver:~# lvchange -ay raid6-4T/lvm-var_corig --activationmode partial
PARTIAL MODE. Incomplete logical volumes will be processed.
Do you want to activate component LV in read-only mode? [y/n]: y
Allowing activation of component LV.
Couldn't find device with uuid tOkG3t-aWGl-4PfO-DI3O-TMoG-ia1z-p4UQgP.
Couldn't find device with uuid qmDOrk-0SRI-9Z1S-PzgI-GRI8-xLrP-kC5LHd.
root@fileserver:~# mount -o noload -r /dev/mapper/raid6--4T-lvm--var_corig /media/var/
답변2
오늘도 같은 문제가 발생했지만(캐시 SSD 사망) 결국 vgreduce --removemissing --force
관련 논리 볼륨을 실행하고 삭제했습니다! 잠시 당황한 후 vgcfgrestore를 사용하여 보관된 LVM 구성에서 LV를 복원하려고 시도했지만 물리 볼륨 누락으로 인해 이 역시 계속 실패했습니다.
해결 방법은 보관된 LVM 구성(/etc/lvm/archive/vgname.vg)을 편집하고 결함이 있는 PV 및 캐시 장치/볼륨에 대한 모든 참조를 제거하는 것이었습니다.
해당 파일에는 PV(결함이 있는 PV 포함) 및 LV(이 예에서는 "lvname"이라고 함)에 대한 참조가 있습니다. LV 참조에는 "캐시" 유형 세그먼트가 있습니다. 또한 캐시되지 않은 데이터가 저장된 위치를 나타내는 데이터 PV의 여러 세그먼트와 메타데이터 캐싱을 위한 추가 LV 등이 있는 "lvname_corig"라는 LV를 찾을 수 있습니다.
이 문제를 해결하기 위한 나의 프로세스는 다음과 같습니다.
- 원본 VG 구성 파일을 백업합니다.
- lvname에서 "id" 및 "state" 행을 복사한 다음 lvname_corig라는 볼륨을 찾아 거기에 붙여넣습니다(블록의 id 및 state 행을 주석 처리합니다).
- lvname 블록을 제거하십시오.
- 캐시된 모든 관련 볼륨 블록(cachedatalvname_cpool, 캐시datalvname_cpool_cmeta, 캐시데이터lvname_cpool_cdata)을 삭제합니다.
- lvname_corig 블록의 이름을 lvname으로 바꿉니다.
- 결함이 있는 PV를 참조하는 다른 볼륨을 삭제합니다(제 경우에는 lvol0_pmspare 볼륨이 있습니다).
- 결함이 있는 PV에 대한 참조를 제거합니다(제 경우에는 "pv3"이라는 블록입니다).
vgcfgrestore -f filename vgname
이러한 편집을 모두 완료한 후에는 결함이 있는 캐시 PV 또는 관련 캐시 볼륨 없이 VG/LV 구성을 복원하는 것이 유용합니다 .