Avamar: Zálohy virtuálních počítačů s Linuxem můžou mít nekonzistenci metadat LVM, pokud jsou nasazené ze šablony
Summary: Problém: Avamar – zálohy virtuálních počítačů s Linuxem mohou mít nekonzistenci metadat LVM, pokud jsou nasazené ze šablony.
Symptoms
Během obnovení se zobrazí následující příznaky:
-
Selhání operace FLR s problémem LVM:

NEBO

2 VM -
Úlohy obnovené bitové kopie jsou úspěšné V uživatelském rozhraní Avamar může dojít k problému s virtuálním počítačem (VM) při spuštění.
Příklad problému se spouštěním 1:
V tomto příkladu Red Hat níže se operační systém spustí do nouzového prostředí dracut:

(V tomto příkladu) z dracut shellu následující LVM příkaz opraví LVM stav. Výstup ukazuje, že problém byl v tom, že jeden z disků lvm (sdb) byl nesprávně odebrán z LVM.
dracut:/# lvm pvscan --config 'global{locking_type=1}'
Nyní se obnovený virtuální počítač může spustit.Příklad problému se spouštěním 2:
V příkladu Debianu se operační systém spustí do nouzového zaneprázdněného boxu:

(V tomto příkladu) z pole busy shell následující
lvmpříkaz k obnovení stavu skupiny svazků LVM z předchozí konfigurace:(initramfs) lvm vgcfgrestore vm1-vg --config 'global{locking_type=1}'Poznámka:vm1-vgje název skupiny svazků v tomto příkladu.
Nyní se obnovený virtuální počítač může spustit.
Další příznaky:
Produkční virtuální počítače (VM) se můžou úspěšně restartovat. Problém se týká pouze záložních kopií virtuálních počítačů s Linuxem, které používají LVM a byly nasazeny ze stejné šablony.
U virtuálních počítačů se systémem Windows a Linux, které NEPOUŽÍVAJÍ konfigurace LVM, NEDOCHÁZÍ u záložních kopií k FLR ani problémům se spouštěním.
Cause
Pozadí metadat LVM:
- Virtuální počítače s Linuxem nakonfigurované pomocí LVM se klonují nebo nasazují ze stejné šablony. Výsledné nové virtuální počítače mají identické jedinečné identifikátory LVM (UUID).
- Jakékoli změny provedené na discích LVM (například přidání virtuálního disku do LVM) vyžadují aktualizaci informací metadat LVM. Nástroj LVM sleduje tyto aktualizace pomocí pole nazvaného pořadová čísla revizí (vg_seqno). Toto číslo se zvyšuje při každé změně.
Problém s přidáváním záloh za provozu:
Pokud jsou během zálohování Avamar splněny následující podmínky:
- Zdrojový i klonovaný virtuální počítač se zálohují současně pomocí přidání za provozu (výchozí metoda přenosu).
- Oba virtuální počítače se přidávají za provozu pomocí stejného proxy serveru Avamar.
- Revize LVM se liší mezi virtuálními počítači přidávanými za provozu.
Linuxové jádro serveru proxy Avamar nesprávně předpokládá, že disky obou virtuálních počítačů jsou ve stejné skupině svazků LVM, a metadata LVM automaticky aktualizuje. Pokud dojde k této aktualizaci LVM, metadata LVM budou v záložní kopii nekonzistentní.
Problém s obnovením:
Během bitového obrazu může virtuální počítač zobrazit "Missing LVM physical extents" nebo "Transaction ID mismatches" kvůli nesprávným metadatům LVM aktualizovaným během zálohy přidání za provozu. Tento rozpor vyplývá z výše uvedené aktualizace.
Nástroje LVM pro obnovení, jako jsou vgcfgrestore, vgextend –restoremissinga vgchange -ay –activationmodepartial může být vyžadováno k umožnění úplného spuštění nebo k opravě záložní kopie za účelem opravy stavu LVM.
Resolution
Tento problém je vyřešen ve fixech hotfix pro server proxy Avamar:
Avamar 19.4 333146.
Avamar 19.3 333148.
Avamar 19.2 333149.
Starší verze Avamar: Viz poznámky níže.
Tyto opravy hotfix překonfigurují nastavení LVM na serveru proxy Avamar, aby se zabránilo aktualizaci metadat LVM během operací přidání za provozu.
PŘED opravou hotfix
194proxy:~ # lvm config | grep filter
filter="a/.*/"
PO opravě hotfix
194proxy:~ # lvm config | grep filter
filter=["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]
U všech klientů, kterých se problém týká, je nutné vynutit zálohování L0 služby Change Block Tracking (CBT). Tím zajistíte, že se v nových zálohách zaznamenají správná metadata LVM.
Technický tým společnosti Avamar vyvinul nový skript, který pomáhá s detekcí klientů. Tento skript vyhledává nekonzistence LVM v zálohách systému Linux a v případě nalezení nějaké automaticky resetuje CBT pro další úlohu.
vmlvmcheck.pl
- Tento skript musí být nainstalován na serveru Avamar.
- Skript je nutné spustit jako uživatel root.
- Tento skript prohledává poslední zálohu všech klientů virtuálních počítačů s Linuxem a kontroluje konzistenci LVM.
- Tento skript může při kontrole mnoha virtuálních počítačů vyžadovat dlouhou dobu trvání (hodiny). Pokud ve výchozím nastavení počet kontrolovaných virtuálních počítačů překročí 50, skript se spustí v režimu pozadí nebo démona.
Logika skriptu:
Skript vyhledá logické svazky LVM v zálohách .vmdk a ověří následující podmínky:
- Zajišťuje, aby byly v záloze všechny fyzické svazky.
- Ověří, zda jsou všechny fyzické svazky přidružené ke skupině svazků LVM.
- Všechny fyzické svazky pro stejnou skupinu svazků mají stejná pořadová čísla.
Falešně pozitivní výsledky:
- Pokud některé virtuální disky pro zjištěnou skupinu svazků NEBYLY zahrnuty, proveďte zálohování příznaku tohoto nástroje. Hlavní příčina nesouvisí s výše popsaným problémem s přidáváním za provozu. V takovém případě se ujistěte, že Avamar zálohuje všechny virtuální disky.
- Pokud některý z virtuálních disků obsahuje oddíl LVM, který NENÍ plně inicializován, nástroj identifikuje zálohu jako vadnou. V tomto scénáři však operační systém NEBUDE mít žádné problémy se spouštěním.
Pokyny pro stažení:
-
Stáhněte si vmlvmcheck.pl z webu central.dell.com . Další informace o serveru Central naleznete v článku znalostní databáze Avamar: Jak najít a stáhnout skripty a nástroje Avamar ze stránky Dell Central Avamar.

-
Přeneste vmlvmchck.pl do adresáře "/root" na serveru Avamar pomocí nástroje, jako je WinSCP.
Příklad 1 (funkce jen pro čtení) Zkontroluje nejnovější zálohu všech klientů virtuálních počítačů s Linuxem.
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 %
NEBO Pokud celkový počet naskenovaných virtuálních počítačů překročí 50, skript se místo toho spustí automaticky na pozadí:
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.logPříklad 2 (funkce pouze pro čtení) Zkontrolujte poslední zálohu jednoho klienta pomocí
--vm <vm name>vlajkaroot@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 TotalPříklad 3 (zapisovatelná funkce) Stejné jako v příkladech 1 a 2, ale tentokrát
--DELETE_SNAPSHOTSmožnost je přidánaroot@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
- Tato možnost aktualizuje pouze tabulku snímků databáze Avamar. Tato aktualizace způsobí, že se příští záloha automaticky přepne na úroveň CBT 0.
- Identifikované zálohy NEJSOU odstraněny a tato operace NEZABRÁNÍ obnovení.
Additional Information
Ruční nastavení LVM pro starší nebo neopravené proxy servery Avamar
-
Jako proxy root zálohujte soubor lvm.conf
194proxyga:~ # cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf-`date +%s
-
Upravte soubor /etc/lvm/lvm.conf, vyhledejte existující řádek "filter" a změňte jej na následující.
PŘED
filter = [ "a/.*/" ]
PO
filter = ["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]
-
Spuštěním tohoto příkazu ověřte, zda je nastaveno nové nastavení filtru
194proxy:~ # lvm config | grep filter filter=["r|/dev/s.*|","r|/dev/disk.*|","a/.*/"]