Avamar: Linux VM 백업이 템플릿에서 배포되는 경우 LVM 메타데이터 불일치가 발생할 수 있음

Summary: 문제: Avamar - Linux VM 백업이 템플릿에서 배포된 경우 LVM 메타데이터 불일치가 발생할 수 있습니다.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

복원하는 동안 다음과 같은 증상이 나타납니다.

  1. LVM 문제로 인한 FLR 작업 실패:
    물리적 볼륨 변경 실패 오류

    또는 VM 2개
    LMV GUID 목록 구문 분석 실패 오류

  2. Avamar UI에서 이미지 복원 작업이 성공적으로 수행되지만 LVM 문제로 인해 VM(Virtual Machine)에서 부팅이 실행될 수 있습니다.

    부팅 문제 예시 1:
    아래의 Red Hat 예제에서 운영 체제는 긴급 dracut 셸로 부팅됩니다.
    긴급 dracut 쉘 부트

    (이 예에서) dracut 셸에서 다음 LVM 명령은 LVM 상태를 복구합니다. 출력은 LVM 디스크(sdb) 중 하나가 LVM에서 잘못 제거된 것이 문제임을 보여줍니다.

    dracut:/# lvm pvscan --config 'global{locking_type=1}'

    LVM 디스크(sdb) 중 하나가 LVM 출력 명령에서 잘못 제거되었습니다.
    이제 복구된 가상 머신을 부팅할 수 있습니다.

    부팅 문제 예시 2:
    데비안 예제에서 운영 체제는 긴급 사용 중 상자 셸로 부팅됩니다.
    데베인 부팅 이슈2

    (이 예에서) 바쁜 상자 셸에서 다음을 수행합니다. lvm 명령은 이전 구성에서 LVM 볼륨 그룹 상태를 복원합니다.

    (initramfs)  lvm vgcfgrestore vm1-vg   --config 'global{locking_type=1}'

     

    참고: vm1-vg 은 이 예에서 볼륨 그룹 이름입니다.

     

    debian-repair
    이제 복구된 가상 머신을 부팅할 수 있습니다.

 

기타 증상:

운영 VM(Virtual Machine)을 성공적으로 재부팅할 수 있습니다. 이 문제는 LVM을 사용하고 동일한 템플릿에서 배포된 Linux VM의 백업 복사본에만 영향을 줍니다.
LVM 구성을 사용하지 않는 Windows 및 Linux 가상 머신에서는 백업 복제본에 FLR 또는 부팅 문제가 나타나지 않습니다 .

 

Cause

LVM 메타데이터 배경:

  1. LVM으로 구성된 Linux VM은 동일한 템플릿에서 복제되거나 배포됩니다. 결과 새 가상 머신에는 동일한 LVM UUID(고유 식별자)가 있습니다.
  2. LVM 디스크에 대한 변경 사항(예: LVM에 가상 디스크 추가)은 LVM 메타데이터 정보를 업데이트해야 합니다. LVM은 vg_seqno(Revision Sequence Number)라는 필드를 사용하여 이러한 업데이트를 추적합니다. 이 숫자는 변경될 때마다 증가합니다.

 

무중단 추가 백업 문제:
Avamar 백업 중에 다음 조건이 충족되는 경우

  1. 소스와 클론 생성된 VM은 모두 Hot Add(기본 전송 방법)를 사용하여 동시에 백업됩니다.
  2. 두 VM 모두 동일한 Avamar 프록시를 사용하여 핫 추가됩니다.
  3. LVM 버전은 무중단 추가되는 VM 간에 다릅니다.

 

Avamar 프록시의 Linux 커널이 두 가상 머신의 디스크가 동일한 LVM 볼륨 그룹에 있다고 잘못 가정하여 LVM 메타데이터를 자동으로 업데이트합니다. 이 LVM 업데이트가 발생하면 LVM 메타데이터가 백업 복제본에서 일관되지 않습니다.

참고: 백업 작업이 끝날 때 가상 디스크가 프록시에서 핫 제거되면 LVM 업데이트가 삭제됩니다. 이렇게 하면 운영 가상 머신 디스크가 일관된 LVM 메타데이터를 유지할 수 있습니다.

 

복원 문제:
이미지를 생성하는 동안 무중단 추가 백업 중에 업데이트된 잘못된 LVM 메타데이터로 인해 VM에 "LVM 물리적 익스텐트 누락" 또는 "트랜잭션 ID 불일치"가 표시될 수 있습니다. 이 불일치는 앞서 언급한 업데이트에서 발생합니다.

다음과 같은 복구 LVM 툴 vgcfgrestore, vgextend –restoremissingvgchange -ay –activationmodepartial 전체 부팅을 허용하거나 백업 복사본을 복구하여 LVM 상태를 수정해야 할 수 있습니다.

 

Resolution

이 문제는 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

  1. 이 스크립트는 Avamar Server에 설치해야 합니다.
  2. 스크립트는 루트 사용자로 실행해야 합니다.
  3. 이 스크립트는 모든 Linux 가상 머신 클라이언트의 최신 백업을 스캔하고 LVM 일관성을 검사합니다.
  4. 여러 가상 머신을 검사하는 경우 이 스크립트 시간이 오래 걸릴 수 있습니다(몇 시간). 기본적으로 스캔된 VM 수가 50개를 초과하면 스크립트가 백그라운드/데몬 모드로 실행됩니다.

 

스크립트 논리:
이 스크립트는 .vmdk 백업에서 LVM 논리적 볼륨을 찾고 다음 조건을 확인합니다.

  1. 모든 물리적 볼륨이 백업에 있는지 확인합니다.
  2. 모든 물리 볼륨이 LVM 볼륨 그룹과 연결되어 있는지 확인합니다.
  3. 동일한 볼륨 그룹에 대한 모든 물리적 볼륨의 시퀀스 번호가 동일합니다.

 

거짓 양성:

  1. 검색된 볼륨 그룹의 가상 디스크 중 일부가 포함되지 않은 경우 이 툴의 백업 플래그 백업입니다. 근본 원인은 위에서 설명한 무중단 추가 문제와 관련이 없습니다. 이 경우 Avamar가 모든 가상 디스크를 백업하는지 확인합니다.
  2. 가상 디스크 중 하나라도 완전히 초기화되지 않은 LVM 파티션을 포함하는 경우 툴은 백업을 불량으로 식별합니다. 하지만 이 시나리오에서는 운영 체제에 부팅 문제가 발생하지 않습니다.

 

다운로드 지침:

  1. central.dell.com 웹사이트에서 vmlvmcheck.pl 다운로드합니다. Central에 대한 자세한 내용은 KB Avamar: Dell Central Avamar 페이지에서 Avamar 스크립트 및 툴을 찾고 다운로드하는 방법
    vmlvmcheck.pl 다운로드

  2. 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

 

"DELETE_SNAPSHOTS" 옵션에 대한 참고 사항:
  1. 이 옵션은 Avamar 데이터베이스의 스냅샷 테이블만 업데이트합니다. 이 업데이트는 다음 백업이 CBT 수준 0으로 자동 전환되도록 합니다.
  2. 식별된 백업은 제거되지 않으며 이 작업은 복원을 방지하지 않습니다.

 

Additional Information

이전 버전 또는 패치가 적용되지 않은 Avamar 프록시에 대한 수동 LVM 설정

  1. 프록시 루트로 lvm.conf 파일 백업

    194proxyga:~ # cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf-`date +%s
  2. /etc/lvm/lvm.conf를 편집하고, 기존 "filter" 줄을 찾아 다음과 같이 변경합니다.

    이전

        filter = [ "a/.*/" ]

    이후

        filter = ["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]
  3. 다음 명령을 실행하여 새 필터 설정이 설정되어 있는지 확인합니다

    194proxy:~ # lvm config | grep filter
            filter=["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]

 

Affected Products

Avamar

Products

Avamar Client for VMware
Article Properties
Article Number: 000191774
Article Type: Solution
Last Modified: 11 Jun 2024
Version:  13
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.