Avamar: Linux VM 백업이 템플릿에서 배포되는 경우 LVM 메타데이터 불일치가 발생할 수 있음
Riepilogo: 문제: Avamar - Linux VM 백업이 템플릿에서 배포된 경우 LVM 메타데이터 불일치가 발생할 수 있습니다.
Sintomi
복원하는 동안 다음과 같은 증상이 나타납니다.
-
LVM 문제로 인한 FLR 작업 실패:

또는 VM 2개

-
Avamar UI에서 이미지 복원 작업이 성공적으로 수행되지만 LVM 문제로 인해 VM(Virtual Machine)에서 부팅이 실행될 수 있습니다.
부팅 문제 예시 1:
아래의 Red Hat 예제에서 운영 체제는 긴급 dracut 셸로 부팅됩니다.

(이 예에서) dracut 셸에서 다음 LVM 명령은 LVM 상태를 복구합니다. 출력은 LVM 디스크(sdb) 중 하나가 LVM에서 잘못 제거된 것이 문제임을 보여줍니다.
dracut:/# lvm pvscan --config 'global{locking_type=1}'
이제 복구된 가상 머신을 부팅할 수 있습니다.부팅 문제 예시 2:
데비안 예제에서 운영 체제는 긴급 사용 중 상자 셸로 부팅됩니다.

(이 예에서) 바쁜 상자 셸에서 다음을 수행합니다.
lvm명령은 이전 구성에서 LVM 볼륨 그룹 상태를 복원합니다.(initramfs) lvm vgcfgrestore vm1-vg --config 'global{locking_type=1}'참고:vm1-vg은 이 예에서 볼륨 그룹 이름입니다.
이제 복구된 가상 머신을 부팅할 수 있습니다.
기타 증상:
운영 VM(Virtual Machine)을 성공적으로 재부팅할 수 있습니다. 이 문제는 LVM을 사용하고 동일한 템플릿에서 배포된 Linux VM의 백업 복사본에만 영향을 줍니다.
LVM 구성을 사용하지 않는 Windows 및 Linux 가상 머신에서는 백업 복제본에 FLR 또는 부팅 문제가 나타나지 않습니다 .
Causa
LVM 메타데이터 배경:
- LVM으로 구성된 Linux VM은 동일한 템플릿에서 복제되거나 배포됩니다. 결과 새 가상 머신에는 동일한 LVM UUID(고유 식별자)가 있습니다.
- LVM 디스크에 대한 변경 사항(예: LVM에 가상 디스크 추가)은 LVM 메타데이터 정보를 업데이트해야 합니다. LVM은 vg_seqno(Revision Sequence Number)라는 필드를 사용하여 이러한 업데이트를 추적합니다. 이 숫자는 변경될 때마다 증가합니다.
무중단 추가 백업 문제:
Avamar 백업 중에 다음 조건이 충족되는 경우
- 소스와 클론 생성된 VM은 모두 Hot Add(기본 전송 방법)를 사용하여 동시에 백업됩니다.
- 두 VM 모두 동일한 Avamar 프록시를 사용하여 핫 추가됩니다.
- LVM 버전은 무중단 추가되는 VM 간에 다릅니다.
Avamar 프록시의 Linux 커널이 두 가상 머신의 디스크가 동일한 LVM 볼륨 그룹에 있다고 잘못 가정하여 LVM 메타데이터를 자동으로 업데이트합니다. 이 LVM 업데이트가 발생하면 LVM 메타데이터가 백업 복제본에서 일관되지 않습니다.
복원 문제:
이미지를 생성하는 동안 무중단 추가 백업 중에 업데이트된 잘못된 LVM 메타데이터로 인해 VM에 "LVM 물리적 익스텐트 누락" 또는 "트랜잭션 ID 불일치"가 표시될 수 있습니다. 이 불일치는 앞서 언급한 업데이트에서 발생합니다.
다음과 같은 복구 LVM 툴 vgcfgrestore, vgextend –restoremissing및 vgchange -ay –activationmodepartial 전체 부팅을 허용하거나 백업 복사본을 복구하여 LVM 상태를 수정해야 할 수 있습니다.
Risoluzione
이 문제는 Avamar 프록시 핫픽스 Avamar
19.4 333146에서 해결되었습니다.
Avamar 19.3 333148.
Avamar 19.2 333149.
이전 Avamar 버전: 아래 참고 사항을 참조하십시오.
이러한 핫픽스는 무중단 추가 작업 중에 LVM 메타데이터 업데이트를 방지하기 위해 Avamar 프록시에서 LVM 설정을 재구성합니다.
핫픽스 전
194proxy:~ # lvm config | grep filter
filter="a/.*/"
핫픽스 후
194proxy:~ # lvm config | grep filter
filter=["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]
영향을 받는 모든 클라이언트에 대해 CBT(Change Block Tracking) L0 백업을 강제 실행해야 합니다. 이렇게 하면 올바른 LVM 메타데이터가 새 백업에 캡처됩니다.
클라이언트 탐지를 지원하기 위해 Avamar 엔지니어링 팀에서 새로운 스크립트를 개발했습니다. 이 스크립트는 Linux 백업에서 LVM 불일치를 검사하고 발견되면 다음 작업에 대해 cbt를 자동으로 재설정합니다.
vmlvmcheck.pl
- 이 스크립트는 Avamar Server에 설치해야 합니다.
- 스크립트는 루트 사용자로 실행해야 합니다.
- 이 스크립트는 모든 Linux 가상 머신 클라이언트의 최신 백업을 스캔하고 LVM 일관성을 검사합니다.
- 여러 가상 머신을 검사하는 경우 이 스크립트 시간이 오래 걸릴 수 있습니다(몇 시간). 기본적으로 스캔된 VM 수가 50개를 초과하면 스크립트가 백그라운드/데몬 모드로 실행됩니다.
스크립트 논리:
이 스크립트는 .vmdk 백업에서 LVM 논리적 볼륨을 찾고 다음 조건을 확인합니다.
- 모든 물리적 볼륨이 백업에 있는지 확인합니다.
- 모든 물리 볼륨이 LVM 볼륨 그룹과 연결되어 있는지 확인합니다.
- 동일한 볼륨 그룹에 대한 모든 물리적 볼륨의 시퀀스 번호가 동일합니다.
거짓 양성:
- 검색된 볼륨 그룹의 가상 디스크 중 일부가 포함되지 않은 경우 이 툴의 백업 플래그 백업입니다. 근본 원인은 위에서 설명한 무중단 추가 문제와 관련이 없습니다. 이 경우 Avamar가 모든 가상 디스크를 백업하는지 확인합니다.
- 가상 디스크 중 하나라도 완전히 초기화되지 않은 LVM 파티션을 포함하는 경우 툴은 백업을 불량으로 식별합니다. 하지만 이 시나리오에서는 운영 체제에 부팅 문제가 발생하지 않습니다.
다운로드 지침:
-
central.dell.com 웹사이트에서 vmlvmcheck.pl 다운로드합니다. Central에 대한 자세한 내용은 KB Avamar: Dell Central Avamar 페이지에서 Avamar 스크립트 및 툴을 찾고 다운로드하는 방법

-
WinSCP와 같은 툴을 사용하여 vmlvmchck.pl Avamar Server의 '/root' 디렉토리로 전송합니다.
예제 1(읽기 전용 함수) 모든 Linux VM 클라이언트의 최신 백업을 검사합니다.
root@ave194:~/vmlvmcheck/#: perl vmlvmcheck.pl 11:37:13 2021-10-06 : vmlvmcheck.pl version 19.04 @ave194 11:37:14 14 VMs populated. Processing backups for these... <list of vms> “===== 3 Vm(s) with potential LVM inconsistency in backup === vm1,vm2,vm3 11:40:08 COMPLETED. Statistics on ave194 (vmvlmcheck ver 19.04) --- (after 2 minutes, 55 seconds) 11 Activities examined 11 Backups to DD 30 Files Examined 12.500 Run Sec per VM 2.917 Run Time Minutes 14 VMs Enabled 14 VMs Total 3 VMs With Inconsistent backups 21.43 % VMs With Inconsistent backups %
또는 총 검사된 vm 수가 50개를 초과하면 스크립트가 백그라운드에서 자동으로 실행됩니다.
root@ave194:/home/admin/#: perl vmlvmcheck.pl 10:55:34 2021-11-17 : vmlvmcheck.pl version 19.15 @ave194 10:55:35 55 VMs populated. Processing backups for these... Output is now going to /usr/local/avamar/var/log/vmvlmcheck.log . PID# 3563 is now running vmlvmcheck as a background process. To terminate daemon process, enter: kill 3563 Please run: tail -f /usr/local/avamar/var/log/vmvlmcheck.log예제 2(읽기 전용 함수) 다음을 사용하여 단일 클라이언트의 최신 백업 검색
--vm <vm name>깃발root@ave194:/home/admin/#: perl vmlvmcheck.pl --vm cloud2116-clone1 18:13:57 2021-10-05 : vmlvmcheck.pl version 19.04 @ave194 18:13:57 1 VMs populated. Processing backups for these... INFO:============ cloud2116-clone1 /vc6-avamar.gslabs.lab.emc.com/ContainerClients: 1 Backups WARNING: pvs Did not see a LVM on /dev/loop1 ERROR: Expected LVM member appears damaged:VMFiles/2/virtdisk-flat.vmdk. INFO: No partitions found in VMFiles/2/virtdisk-flat.vmdk. VM cskpcloud2116-clone1 has 1 LVMs inside 2 vmdks. ERROR: Bad backup: labelnum=2 2 Snapshots to be deleted ...Option DELETE_SNAPSHOTS=0. 18:14:09 COMPLETED. Statistics on ave194 (vmvlmcheck ver 19.04) --- 1 Activities examined 1 Backups to DD 2 Files Examined 12.000 Run Sec per VM 0.200 Run Time Minutes 1 VMs Enabled 1 VMs Total예제 3(쓰기 가능한 함수) 예제 1 및 2와 동일하지만 이번에는
--DELETE_SNAPSHOTS옵션 추가root@ave194:~/vmlvmcheck/#: perl vmlvmcheck.pl --vm cloud2116-clone1 --DELETE_SNAPSHOTS 14:13:35 2021-10-06 : vmlvmcheck.pl version 19.04 @ave194 14:13:36 1 VMs populated. Processing backups for these... INFO:============ cloud2116-clone1 /vc6-avamar.gslabs.lab.emc.com/ContainerClients: 1 Backups WARNING: pvs Did not see a LVM on /dev/loop1 ERROR: Expected LVM member appears damaged:VMFiles/2/virtdisk-flat.vmdk. INFO: No partitions found in VMFiles/2/virtdisk-flat.vmdk. VM cskpcloud2116-clone1 has 1 LVMs inside 2 vmdks. ERROR: Bad backup: labelnum=2 2 Snapshots to be deleted ...Option DELETE_SNAPSHOTS=1. 14:13:49 COMPLETED. Statistics on ave194 (vmvlmcheck ver 19.04) --- 1 Activities examined 1 Backups to DD 2 Files Examined 14.000 Run Sec per VM 0.233 Run Time Minutes 1 VMs Enabled 1 VMs Total
- 이 옵션은 Avamar 데이터베이스의 스냅샷 테이블만 업데이트합니다. 이 업데이트는 다음 백업이 CBT 수준 0으로 자동 전환되도록 합니다.
- 식별된 백업은 제거되지 않으며 이 작업은 복원을 방지하지 않습니다.
Informazioni aggiuntive
이전 버전 또는 패치가 적용되지 않은 Avamar 프록시에 대한 수동 LVM 설정
-
프록시 루트로 lvm.conf 파일 백업
194proxyga:~ # cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf-`date +%s
-
/etc/lvm/lvm.conf를 편집하고, 기존 "filter" 줄을 찾아 다음과 같이 변경합니다.
이전
filter = [ "a/.*/" ]
이후
filter = ["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]
-
다음 명령을 실행하여 새 필터 설정이 설정되어 있는지 확인합니다
194proxy:~ # lvm config | grep filter filter=["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]