Avamar:如果 Linux 虚拟机备份是从模板部署的,则可能存在 LVM 元数据不一致

Riepilogo: 问题:Avamar — 如果 Linux 虚拟机备份是从模板部署的,则可能存在 LVM 元数据不一致。

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Sintomi

在还原过程中,会看到以下症状:

  1. FLR 操作失败并出现 LVM 问题:
    无法更改物理卷错误


    无法解析 LMV GUID 列表错误
    2 个虚拟机

  2. 映像还原的作业在 Avamar UI 中成功,虚拟机 (VM) 可能由于 LVM 问题而出现启动问题。

    启动问题示例 1:
    在下面的这个 Red Hat 示例中,操作系统引导至紧急 dracut shell:
    紧急 dracut shell 启动

    (在此示例中)在 dracut shell 中,以下 LVM 命令修复 LVM 状态。输出显示问题在于其中一个 lvm 磁盘 (sdb) 被错误地从 LVM 中删除。

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

    其中一个 lvm 磁盘 (sdb) 被错误地从 LVM 输出命令中删除
    现在,恢复的虚拟机可以启动了。

    启动问题示例 2:
    在 Debian 示例中,操作系统启动至紧急繁忙 box shell:
    Debain-boot-issue2

    (在此示例中)从繁忙的 box shell 执行以下操作: lvm 命令 restore LVM volume group state from previous configuration:

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

     

    提醒: vm1-vg 是本示例中的卷组名称

     

    debian-repair
    现在,恢复的虚拟机可以启动了。

 

其他症状:

生产虚拟机 (VM) 可以成功重新启动。该问题仅影响使用 LVM 并从同一模板部署的 Linux 虚拟机的备份拷贝。
不使用 LVM 配置的 Windows 和 Linux 虚拟机 不会 出现备份拷贝的 FLR 或引导问题。

 

Causa

LVM 元数据背景:

  1. 配置了 LVM 的 Linux 虚拟机从同一模板进行克隆或部署。生成的新虚拟机具有相同的 LVM 唯一标识符 (UUID)。
  2. 对 LVM 磁盘所做的任何更改(例如,将虚拟磁盘添加到 LVM)都需要更新 LVM 元数据信息。LVM 使用名为修订序列号 (vg_seqno) 的字段跟踪这些更新。每当进行更改时,此数字都会递增。

 

热添加备份问题:
在 Avamar 备份期间,如果满足以下条件:

  1. 使用热添加(默认传输方法)同时备份源虚拟机和克隆虚拟机。
  2. 两个虚拟机都使用相同的 Avamar 代理进行热添加。
  3. 在热添加的虚拟机之间,LVM 版本有所不同。

 

Avamar 代理的 Linux 内核错误地假定两个虚拟机的磁盘位于同一 LVM 卷组中,从而自动更新 LVM 元数据。如果发生此 LVM 更新,则备份拷贝中的 LVM 元数据不一致。

提醒:在备份操作结束时,从代理中热移除虚拟磁盘时,LVM 更新将被丢弃。这可确保生产虚拟机磁盘保持一致的 LVM 元数据。

 

还原问题:
在映像过程中,由于在热添加备份期间更新的 LVM 元数据不正确,虚拟机可能会显示“缺少 LVM 物理扩展区”或“事务 ID 不匹配”。这种差异源于上述更新。

恢复 LVM 工具,例如 vgcfgrestorevgextend –restoremissing以及 vgchange -ay –activationmodepartial 可能需要才能允许完整启动或修复备份拷贝以更正 LVM 状态。

 

Risoluzione

此问题已在 Avamar 代理修补程序
Avamar 19.4 333146中得到解决。
Avamar 19.3 333148。
Avamar 19.2 333149
较旧的 Avamar 版本:
请参阅下面的备注。

 

这些热修复程序会在 Avamar 代理上重新配置 LVM 设置,以防止在热添加操作期间更新 LVM 元数据。

热修复之前

194proxy:~ # lvm config | grep filter
        filter="a/.*/"

热修复之后

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

 

对于任何受影响的客户端,我们必须强制执行更改数据块跟踪 (CBT) L0 备份。这可确保在新备份中捕获正确的 LVM 元数据。

为了帮助进行客户端检测,Avamar 工程部门开发了一个新脚本。此脚本扫描 Linux 备份以查找 LVM 不一致之处,并在发现任何不一致之处时自动为下一个作业重置 cbt。

vmlvmcheck.pl

  1. 此脚本必须安装在 Avamar Server 上。
  2. 必须以 root 用户身份运行该脚本。
  3. 此脚本扫描所有 Linux 虚拟机客户端的最新备份,并检查 LVM 一致性。
  4. 如果扫描许多虚拟机,此脚本可能需要较长的持续时间(数小时)。默认情况下,如果扫描的虚拟机数量超过 50,则脚本将在后台/守护程序模式下运行。

 

脚本逻辑:
该脚本在 .vmdk 备份中查找 LVM 逻辑卷,并验证以下条件:

  1. 确保备份中存在所有物理卷
  2. 验证所有物理卷是否都与 LVM 卷组关联
  3. 同一卷组的所有物理卷都具有相同的序列号。

 

误报:

  1. 如果未包含查找到的卷组的某些虚拟磁盘,则备份此工具标记备份。根本原因与上述热添加问题无关。在这种情况下,请确保 Avamar 正在备份所有虚拟磁盘。
  2. 如果任何虚拟磁盘包含未完全初始化的 LVM 分区,则该工具会将备份标识为损坏。但是,在这种情况下,操作系统不会有任何启动问题。

 

下载说明:

  1. central.dell.com 网站下载 vmlvmcheck.pl。有关 central 的更多信息,请参阅知识库文章 Avamar:如何从 Dell Central Avamar 页面查找和下载 Avamar 脚本和工具。
    下载 vmlvmcheck.pl

  2. 使用 WinSCP 等工具将 vmlvmchck.pl 传输到 Avamar Server 上的“/root”目录。

    示例 1(只读功能) 扫描所有 Linux 虚拟机客户端的最新备份。

    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 %
    
    

    或者,当 扫描的虚拟机总数超过 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. 标识的备份不会删除,并且此操作不会阻止还原。

 

Informazioni aggiuntive

为较旧或未修补的 Avamar 代理手动设置

  1. 以代理 root 身份备份 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/.*/"]

 

Prodotti interessati

Avamar

Prodotti

Avamar Client for VMware
Proprietà dell'articolo
Numero articolo: 000191774
Tipo di articolo: Solution
Ultima modifica: 11 giu 2024
Versione:  13
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.