캐시 장치 충돌 후 LVM 볼륨을 시작할 수 없습니다

캐시 장치 충돌 후 LVM 볼륨을 시작할 수 없습니다

저는 데비안 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를 찾을 수 있습니다.

이 문제를 해결하기 위한 나의 프로세스는 다음과 같습니다.

  1. 원본 VG 구성 파일을 백업합니다.
  2. lvname에서 "id" 및 "state" 행을 복사한 다음 lvname_corig라는 볼륨을 찾아 거기에 붙여넣습니다(블록의 id 및 state 행을 주석 처리합니다).
  3. lvname 블록을 제거하십시오.
  4. 캐시된 모든 관련 볼륨 블록(cachedatalvname_cpool, 캐시datalvname_cpool_cmeta, 캐시데이터lvname_cpool_cdata)을 삭제합니다.
  5. lvname_corig 블록의 이름을 lvname으로 바꿉니다.
  6. 결함이 있는 PV를 참조하는 다른 볼륨을 삭제합니다(제 경우에는 lvol0_pmspare 볼륨이 있습니다).
  7. 결함이 있는 PV에 대한 참조를 제거합니다(제 경우에는 "pv3"이라는 블록입니다).

vgcfgrestore -f filename vgname이러한 편집을 모두 완료한 후에는 결함이 있는 캐시 PV 또는 관련 캐시 볼륨 없이 VG/LV 구성을 복원하는 것이 유용합니다 .

관련 정보