Avamar:Linux 虛擬機器備份是從範本部署時,可能會出現 LVM 中繼資料不一致的情況

Summary: 問題:Avamar - Linux 虛擬機器備份從範本部署時,可能會發生 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. FLR 作業失敗,並出現 LVM 問題:
    無法變更實體磁碟區錯誤


    無法剖析 LMV GUID 清單錯誤
    2 個 VM

  2. Avamar UI 中的映像還原工作成功,虛擬機器 (VM) 可能因為 LVM 問題而發生開機問題。

    範例開機問題 1:
    在以下 Red Hat 範例中,作業系統會開機進入緊急 dracut shell:
    緊急防簾殼體開機

    (在此範例中) 下列 LVM 命令會從 dracut shell 修復 LVM 狀態。輸出顯示問題是其中一個 lvm 磁碟 (sdb) 不正確地從 LVM 移除。

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

    其中一個 lvm 磁碟 (sdb) 已從 LVM 輸出命令不正確移除
    復原的虛擬機器現在可以開機了。

    範例開機問題 2:
    在 Debian 範例中,作業系統開機進入緊急忙碌方塊:
    debain-boot-issue2

    (在此範例中) 從忙碌的方塊殼層執行下列內容 lvm 命令從先前的組態還原 LVM 磁碟區群組狀態:

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

     

    注意: vm1-vg 是此範例中的卷組名稱

     

    Debian-Repair
    復原的虛擬機器現在可以開機了。

 

其他症狀:

生產虛擬機器 (VM) 可以成功重新開機。此問題只會影響使用 LVM 且從相同範本部署的 Linux 虛擬機器備份。
不使用 LVM 組態的 Windows 和 Linux 虛擬機器 不會顯示備份 複本的 FLR 或開機問題。

 

Cause

LVM 中繼資料背景:

  1. 使用 LVM 設定的 Linux VM 是從同一範本複製或部署。產生的新虛擬機器具有相同的 LVM 唯一識別碼 (UUID)。
  2. 對 LVM 磁碟所做的任何變更 (例如,將虛擬磁碟新增至 LVM) 都需要更新 LVM 中繼資料資訊。LVM 使用名為修訂順序編號 (vg_seqno 的欄位來跟蹤這些更新。每當進行更改時,此數位都會遞增。

 

熱新增備份問題:
在 Avamar 備份期間,如果符合下列條件:

  1. 使用熱添加(預設傳輸方法)同時備份源和克隆的 VM。
  2. 兩個虛擬機器都是使用相同的 Avamar 代理熱新增的。
  3. 要熱新增的虛擬機器之間的 LVM 修訂版本有所不同。

 

Avamar 代理的 Linux 核心錯誤地假定兩個虛擬機器的磁碟位於同一個 LVM 磁碟區群組中,因此會自動更新 LVM 中繼資料。如果發生此 LVM 更新,則備份副本中的 LVM 元數據不一致。

注意:備份操作結束時,當虛擬磁碟從代理中熱移除時,LVM 更新將被丟棄。這可確保生產虛擬機磁碟保持一致的 LVM 元數據。

 

還原問題:
在映像期間,虛擬機器可能會顯示「遺失 LVM 實體範圍」或「交易 ID 不相符」,因為在熱新增備份期間更新的 LVM 中繼資料不正確。這種差異源於上述更新。

復原 LVM 工具,例如 vgcfgrestore, vgextend –restoremissing,以及 vgchange -ay –activationmodepartial 可能需要允許完整啟動或修復備份副本以更正 LVM 狀態。

 

Resolution

此問題已在 Avamar 代理 hotfix:
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/.*/"]

 

針對任何受影響的用戶端,我們必須強制進行 Change Block Tracking (CBT) 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。如需中央的詳細資訊,請參閱 KB Avamar:如何從 Dell Central Avamar 頁面尋找和下載 Avamar 指令檔和工具。
    下載 vmlvmcheck.pl

  2. 使用 WinSCP 等工具,將 vmlvmchck.pl 轉移至 Avamar 伺服器上的「/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 %
    
    

    當掃描的虛擬機器總數超過 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 = [ "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.