Avamar: Zálohování NDMP selže s chybou segmentace závažného signálu 11 z použití paměti svazku
Summary: Zálohování pomocí protokolu Avamar NDMP (Network Data Management Protocol) se může přerušit s chybou "Fatal signal 11" (segmentační chyba), když na velmi velkém svazku (například 5 TB, 3 miliony souborů) běží více datových proudů, spotřebovává se přibližně 15 GB paměti RAM (Random Access Memory)/SWAP a překračují paměťové limity. Řešení vyřešíte rozdělením svazku, omezením souběžných záloh nebo počtu souborů, zálohováním nižší úrovně adresáře nebo zvýšením počtu paralelních datových proudů. ...
Symptoms
Indikace selhání zálohování
Pokud v záloze Avamar NDMP dojde k chybě segmentace (signál 11), dojde k následujícím příznakům:
- Úloha zálohování se přeruší se závažnou chybovou zprávou podobnou této:
2017-10-13 19:42:00 avtar FATAL <5889>: Fatal signal 11 in pid 31103
- Položky protokolu ukazují neobvykle velké zpracovávané datové sady, například:
avtar Info <8688>: Status 2017-10-13 19:32:37, 3,050,352 files, 2,419,299 directories, 5,119 GB (3,050,352 files, 1.913 GB, 41.42% new) 15049MB 60% CPU (1 open files)
- Hlásí se vysoká spotřeba paměti, která často překračuje 15 GB paměti RAM/SWAP pro jeden datový proud zálohování.
- Aktivních je několik datových proudů NDMP (až 8 na klienta), z nichž každý může využívat 2 GB nebo více paměti.
- Současně může běžet několik velkých záloh, což zvyšuje celkové zatížení systému.
- Dotčený svazek obsahuje miliony souborů a adresářů (např. 3 miliony souborů v adresářích o velikosti 2,4 milionu pokrývajících 5,1 TB dat).
- I když se změnilo jen malé množství dat (například 1,9 GB), proces zálohování se pokusí odeslat každý soubor z NAS ke zpracování.
Cause
Základní faktory, které spustily fatální signál 11.
Signál 11 (chyba segmentace) je generován, když proces přistupuje k paměti, která mu není přidělena. Tuto událost během zálohování Avamar NDMP přímo způsobily následující podmínky:
- Souběžně běželo několik velkých záloh NDMP.
- Jedna záloha zpracovala 3 050 352 souborů a 2 419 299 adresářů s celkovým objemem 5,1 TB dat, přičemž se změnilo pouze 1,9 GB těchto dat.
- Každý datový proud NDMP může spotřebovat ≥ 2 GB paměti. Klientovi bylo povoleno až 8 datových proudů a několik klientů bylo aktivních současně, což vedlo k vysokým agregovaným nárokům na paměť.
- Proces zálohování využíval před pádem přibližně 15 GB paměti RAM/SWAP.
- Software Avamar omezuje počet datových proudů na klienta, ale NEVYNUCUJE globální omezení celkového počtu datových proudů. To umožňuje, aby kombinované využití paměti překročilo dostupné zdroje.
Tyto podmínky náročné na paměť způsobily, že proces avtar narazil na chybu segmentace zaznamenanou v protokolu jako:
2017-10-13 19:42:00 avtar FATAL <5889>: Fatal signal 11 in pid 31103
Resolution
Oprava selhání zálohování Avamar NDMP způsobených signálem 11 (chyba segmentace)
Krok 1 – Vyhodnoťte aktuální zatížení zálohování.
Pomocí konzole Avamar Administrator nebo rozhraní příkazového řádku identifikujte svazky, které generují velké zálohy NDMP.
Vypíše seznam aktivních úloh NDMP a využití jejich prostředků:
$ avtar -listjobs -type ndmp
Krok 2 – Omezte souběžné zálohování svazků.
- Omezte počet svazků zálohovaných současně, abyste předešli nadměrné spotřebě paměti RAM / SWAP.
- V nástroji Avamar Administrator upravte plán zálohování a zrušte výběr překrývajících se oken.
Krok 3 – Rozdělení velkých svazků na menší dílčí svazky
- Identifikujte svazky s více než 3 miliony souborů nebo více než 5 TB dat (jako v příkladu).
- Vytvořte logické podsvazky o jednu úroveň níže ve stromu adresářů.
- Nakonfigurujte každý podsvazek jako samostatného klienta NDMP v systému Avamar.
- Příklad: Vytvoření nového klienta NDMP pro podadresář
$ avtar -addclient -name subvol1 -path /data/level2/subvol1
Krok 4: Upravte nastavení datového proudu NDMP.
- Zvyšte maximální počet datových proudů NDMP na klienta, pokud to NAS podporuje.
- Pokud je to možné, zvyšte v konfiguraci NAS NDMP limit datového proudu z výchozích 4 na 8.
Krok 5 – Omezení souborů na stream
- Při vytváření zásad zálohování nastavte nižší prahovou hodnotu "souborů na datový proud", aby byla paměťová stopa každého datového proudu menší než 2 GB.
- Tuto hodnotu upravte v části Avamar Administrator → Policies → Advanced Settings .
Krok 6: Sledování využití paměti během zálohování
- Sledujte spotřebu paměti RAM a swapu na serveru Avamar během zálohování.
- Zajistěte, aby využití zůstalo výrazně nižší než celková dostupná paměť (například méně než 12 GB pro 15GB úlohu).
- Monitorování paměti v reálném čase
$ top -b -n 1 | grep avtar
Krok 7: Ověření opravy
- Spusťte znovu zálohu, která se dříve nezdařila.
- Ověřte, že protokol již neobsahuje
Fatal signal 11. - Ověřte, že se zálohování úspěšně dokončí a že hlášená velikost dat odpovídá očekávání.
- Zkontrolujte, zda nejnovější protokol zálohování neobsahuje chyby
$ tail -n 50 /var/log/avtar/backup.log