LVM은 시작 시 스냅샷 소스 병합이 완료될 때까지 기다릴 수 있습니까?

LVM은 시작 시 스냅샷 소스 병합이 완료될 때까지 기다릴 수 있습니까?

LVM과 스냅샷을 사용하는 제품이 있습니다. 기본 설치를 생성한 후 다음을 사용하여 파티션 스냅샷을 생성합니다.

lvcreate -L 15G -s -n lv_root_gold /dev/vg_sys/lv_root
lvcreate -L 15G -s -n lv_home_gold /dev/vg_sys/lv_home
lvcreate -L 1G -s -n lv_services_gold /dev/vg_sys/lv_services

내 시스템에서 대부분의 소프트웨어는 /services에 설치되는 lv_services lv에 설치됩니다. 이로 인해 lv_services_gold 스냅샷에 많은 변경 사항이 생성됩니다.

소프트웨어 업데이트를 배포할 때 전체 시스템을 초기 스냅샷으로 롤백합니다. 모든 컴퓨터가 동일한 상태에서 설치되었는지 확인하기 위해 이 작업을 수행합니다. 재부팅한 후 "원래" 상태의 상자에 대한 새로운 스냅샷을 찍고 새 소프트웨어 설치를 진행합니다.

다음을 사용하여 시스템을 롤백할 때:

lvconvert --merge -y /dev/vg_sys/lv_root_gold
lvconvert --merge -y /dev/vg_sys/lv_services_gold
lvconvert --merge -y /dev/vg_sys/lv_home_gold

모든 파티션이 마운트되었으므로 재부팅이 필요합니다. 그러나 재부팅하면 파티션 중 하나가 Attr (O)rigin에 유지되고 스냅샷이 병합됩니다.

  LV                 VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home            vg_sys -wi-ao----  15.00g                                                    
  lv_services        vg_sys Owi-aos---   1.00g             0.00  
  lv_root            vg_sys -wi-ao----  20.00g                                                    

"lvdisplay vg_sys/lv_services_gold" 명령은 병합으로 인해 스냅샷이 여전히 존재함을 보여줍니다. 그러나 스냅샷은 lvs 명령을 통해 표시되지 않습니다.

시스템 시작 시 스냅샷을 완전히 병합하고 시스템이 온라인 상태가 된 후 "O" 속성을 방지하기 위해 차단하도록 "lvconvert"에 지정할 수 있는 수정자가 있습니까? 다시 재부팅하면 lv_services LV는 더 이상 "원본이 스냅샷과 병합됨" 모드가 아닙니다.

이 시점에서 내 해결책은 시스템이 시작될 때 스냅샷이 있었는지 확인하는 것입니다. 그렇지 않은 경우 LV가 "O" 상태인지 확인합니다. 그렇다면 모든 LV가 "병합된 스냅샷이 포함된 원본"이 될 때까지 계속 재부팅하세요. 그런 다음 새 스냅샷을 찍고 소프트웨어를 설치합니다. 반복적인 재부팅을 피하고 싶습니다.

답변1

질문을 게시한 후 곧 답변을 찾았습니다. lvs가 병합 상태를 보고하면 "Data%" 열의 값이 0.00으로 떨어집니다. [O]병합된 스냅샷 필드가 있는 rigin은 다음을 실행하여 지울 수 있습니다.

lvchange --refresh <<VG_NAME>>

예(lvconvert --merge 및 재부팅 후 초기 lvs 명령):

root@testbox:~# lvs
  LV                 VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_services        vg_sys Owi-aos---   1.00g             0.00  

root@testbox:~# lvchange --refresh vg_sys
root@testbox:~# lvs
  LV                 VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_services        vg_sys -wi-ao----   1.00g  

관련 정보