Avamar:Linux VMバックアップがテンプレートから導入されている場合、バックアップでLVMメタデータの不整合が発生することがある
Summary: 問題: Avamar - Linux VMのバックアップがテンプレートから導入されている場合、バックアップでLVMメタデータの不整合が発生することがある。
Symptoms
リストア中に、次の現象が発生します。
-
LVMの問題によるFLR操作の失敗:

または

2台のVM -
Avamar UIでイメージ リストア ジョブが正常に完了すると、LVMの問題が原因で仮想マシン(VM)に起動の問題が発生する場合があります。
起動に関する問題の例1:
以下のRed Hatの例では、オペレーティング システムは緊急dracutシェルで起動します。

(この例では)dracutシェルから次のLVMコマンドを実行すると、LVMの状態が修復されます。この出力は、LVMディスク(sdb)の1つがLVMから誤って削除されたことが問題であることを示しています。
dracut:/# lvm pvscan --config 'global{locking_type=1}'
これで、リカバリーされた仮想マシンを起動できます。起動に関する問題の例2:
Debianの例では、オペレーティングシステムは緊急ビジーボックスシェルで起動します。

(この例では)ビジー ボックス シェルから、次の操作を実行します。
lvmコマンド restore LVM volume group state from previous configuration:(initramfs) lvm vgcfgrestore vm1-vg --config 'global{locking_type=1}'注:vm1-vgは、この例のボリューム グループ名です。
これで、リカバリーされた仮想マシンを起動できます。
その他の現象:
本番仮想マシン(VM)は正常に再起動できます。この問題は、LVMを使用し、同じテンプレートから導入されたLinux VMのバックアップ コピーにのみ影響します。
LVM構成を使用しないWindowsおよびLinux仮想マシンでは、バックアップ コピーでFLRまたは起動の問題は発生し ません 。
Cause
LVMメタデータの背景:
- LVM で構成された Linux VM は、同じテンプレートから複製またはデプロイされます。結果として得られる新しい仮想マシンは、同一のLVM一意識別子(UUID)を持ちます。
- LVMディスクに変更を加えた場合(たとえば、LVMに仮想ディスクを追加するなど)、LVMメタデータ情報を更新する必要があります。LVM は、リビジョンシーケンス番号 (vg_seqno) と呼ばれるフィールドを使用して、これらの更新を追跡します。この番号は、変更が加えられるたびに増加します。
ホット アド バックアップの問題:
Avamarのバックアップ中に、次の条件が満たされている場合:
- ソースVMとクローン作成されたVMの両方が、ホット アド(デフォルトの転送方法)を使用して同時にバックアップされます。
- 両方のVMが同じAvamarプロキシを使用してホット アドされます。
- LVMリビジョンは、ホット アドされるVM間で異なります。
AvamarプロキシのLinuxカーネルは、2つのVMのディスクが同じLVMボリューム グループ内にあると誤って想定し、LVMメタデータを自動的にアップデートします。このLVMアップデートが行われると、バックアップ コピーでLVMメタデータの整合性が失われます。
リストアの問題:
イメージ作成中に、ホット アド バックアップ中に更新されたLVMメタデータが正しくないため、VMに「Missing LVM physical extents」または「Transaction ID mismatch」と表示されることがあります。この不一致は、前述の更新に起因します。
リカバリーLVMツール( vgcfgrestore、 vgextend –restoremissingと vgchange -ay –activationmodepartial は、完全な起動を許可したり、バックアップ コピーを修復してLVMの状態を修正したりするために必要になる場合があります。
Resolution
この問題は、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
- このスクリプトは、Avamar Serverにインストールする必要があります。
- スクリプトはrootユーザーとして実行する必要があります。
- このスクリプトは、すべてのLinux仮想マシン クライアントの最新バックアップをスキャンし、LVMの整合性をチェックします。
- 多くの仮想マシンをスキャンする場合、このスクリプトには長い時間が必要になる場合があります。デフォルトでは、スキャンされたVMの数が50を超えると、スクリプトはバックグラウンド/デーモン モードで実行されます。
スクリプト ロジック:
スクリプトは、.vmdkバックアップ内のLVM論理ボリュームを検索し、次の条件を確認します。
- すべての物理ボリュームがバックアップに存在することを保証
- すべての物理ボリュームがLVMボリューム グループに関連付けられていることを確認する
- 同じボリューム グループに属するすべての物理ボリュームのシーケンス番号は同じです。
誤検知:
- 検出されたボリューム グループの仮想ディスクの一部が含まれていない場合は、このツール フラグ バックアップをバックアップします。この根本原因は、前述のホット アドの問題とは関係ありません。この場合は、Avamarがすべての仮想ディスクをバックアップしていることを確認します。
- 仮想ディスクのいずれかに完全に初期化されていないLVMパーティションが含まれている場合、ツールはバックアップを不良と識別します。ただし、このシナリオでは、オペレーティング システムで起動の問題が発生することはありません。
ダウンロード手順:
-
central.dell.com のWebサイトから vmlvmcheck.pl をダウンロードします。セントラルの詳細については、KB Avamar: Dell Central AvamarページからAvamarスクリプトとツールを検索してダウンロードする方法。

-
WinSCPなどのツールを使用して、Avamar Serverの「/root」ディレクトリーに vmlvmchck.pl 転送します。
例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に切り替わります。
- 識別されたバックアップは削除されず、この操作によってリストアが妨げられることはありません。
Additional Information
古い、またはパッチが適用されていない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/.*/"]