Avamar: Tworzenie kopii zapasowej NDMP kończy się niepowodzeniem z błędem segmentacji sygnału krytycznego 11 spowodowanym użyciem pamięci woluminu
Summary: Tworzenie kopii zapasowej Avamar Network Data Management Protocol (NDMP) może zostać przerwane z komunikatem "Fatal signal 11" (błąd segmentacji), gdy bardzo duży wolumin (np. 5 TB, 3 mln plików) obsługuje wiele strumieni, zużywając około 15 GB pamięci Random Access Memory (RAM)/SWAP i przekraczając limity pamięci. Ten problem można rozwiązać, dzieląc wolumin, zmniejszając liczbę współbieżnych kopii zapasowych lub liczbę plików, tworząc kopie zapasowe na niższym poziomie katalogu lub zwiększając liczbę strumieni równoległych. ...
Symptoms
Wskazania awarii kopii zapasowej
Następujące objawy są obserwowane, gdy kopia zapasowa NDMP Avamar napotyka błąd segmentacji (sygnał 11):
- Zadanie tworzenia kopii zapasowej zostaje przerwane z komunikatem o błędzie krytycznym podobnym do następującego:
2017-10-13 19:42:00 avtar FATAL <5889>: Fatal signal 11 in pid 31103
- Wpisy dziennika pokazują przetwarzane niezwykle duże zestawy danych, na przykład:
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)
- Zgłaszane jest wysokie zużycie pamięci, często przekraczające 15 GB pamięci RAM/SWAP dla pojedynczego strumienia kopii zapasowej.
- Aktywnych jest wiele strumieni NDMP (do 8 na klienta), z których każdy potencjalnie zużywa 2 GB lub więcej pamięci.
- Wiele dużych kopii zapasowych może być tworzonych jednocześnie, co zwiększa ogólne obciążenie systemu.
- Wolumin, którego dotyczy problem, zawiera miliony plików i katalogów (na przykład 3 mln plików w 2,4 MB katalogach obejmujących 5,1 TB danych).
- Nawet jeśli zmieniła się tylko niewielka ilość danych (np. 1,9 GB), proces tworzenia kopii zapasowej próbuje wysłać każdy plik z serwera NAS do przetworzenia.
Cause
Podstawowe czynniki, które wywołały sygnał krytyczny 11.
Sygnał 11 (błąd segmentacji) jest generowany, gdy proces uzyskuje dostęp do pamięci, która nie jest mu przydzielona. Następujące warunki bezpośrednio spowodowały to zdarzenie podczas tworzenia kopii zapasowej NDMP Avamar:
- Wiele dużych kopii zapasowych NDMP było uruchomionych jednocześnie.
- Jedna kopia zapasowa przetworzyła 3 050 352 pliki i 2 419 299 katalogów, co dało łącznie 5,1 TB danych, podczas gdy zmieniło się tylko 1,9 GB tych danych.
- Każdy strumień NDMP może zużywać ≥ 2 GB pamięci. Klient mógł korzystać z maksymalnie 8 strumieni, a kilku klientów było aktywnych jednocześnie, co prowadziło do dużego zagregowanego zapotrzebowania na pamięć.
- Proces tworzenia kopii zapasowej zużywał około 15 GB pamięci RAM/SWAP przed awarią.
- Avamar ogranicza liczbę strumieni na klienta, ale NIE wymusza globalnego limitu łącznej liczby strumieni. Pozwala to na przekroczenie dostępnych zasobów przez łączne użycie pamięci.
Te warunki wymagające dużej ilości pamięci spowodowały, że proces avtar napotkał błąd segmentacji, zapisany w dzienniku jako:
2017-10-13 19:42:00 avtar FATAL <5889>: Fatal signal 11 in pid 31103
Resolution
Naprawianie awarii kopii zapasowej NDMP Avamar spowodowanych przez sygnał 11 (błąd segmentacji)
Krok 1 - Oceń bieżące obciążenie kopii zapasowej.
Użyj konsoli administratora Avamar lub interfejsu wiersza poleceń, aby zidentyfikować woluminy, które generują duże kopie zapasowe NDMP.
Wyświetlanie listy aktywnych zadań NDMP i wykorzystania ich zasobów:
$ avtar -listjobs -type ndmp
Krok 2 - Zmniejsz liczbę jednoczesnych kopii zapasowych woluminów.
- Ogranicz liczbę woluminów, których kopia zapasowa jest tworzona jednocześnie, aby uniknąć nadmiernego zużycia pamięci RAM/SWAP.
- W narzędziu Avamar Administrator edytuj harmonogram tworzenia kopii zapasowych i usuń zaznaczenie nakładających się okien.
Krok 3 - Podziel duże woluminy na mniejsze podwoluminy
- Zidentyfikuj woluminy zawierające ponad 3 miliony plików lub więcej niż 5 TB danych (jak w przykładzie).
- Utwórz podwoluminy logiczne o jeden poziom niżej w drzewie katalogów.
- Skonfiguruj każdy podwolumin jako oddzielnego klienta NDMP w Avamarze.
- Przykład: Tworzenie nowego klienta NDMP dla podkatalogu
$ avtar -addclient -name subvol1 -path /data/level2/subvol1
Krok 4 - Dostosuj ustawienia strumienia NDMP.
- Zwiększ maksymalną liczbę strumieni NDMP na klienta, jeśli serwer NAS go obsługuje.
- W konfiguracji NAS NDMP zwiększ limit strumienia z domyślnego 4 do 8, jeśli to możliwe.
Krok 5 - Ogranicz pliki na strumień
- Podczas tworzenia zasad tworzenia kopii zapasowych należy ustawić niższy próg "plików na strumień", aby zużycie pamięci każdego strumienia było mniejsze niż 2 GB.
- Aby dostosować tę wartość, użyj zasad → administratora Avamar → ustawień zaawansowanych .
Krok 6 - Monitoruj wykorzystanie pamięci podczas tworzenia kopii zapasowych
- Obserwuj zużycie pamięci RAM i swap na serwerze Avamar podczas wykonywania kopii zapasowej.
- Upewnij się, że użycie pozostaje znacznie poniżej całkowitej dostępnej ilości pamięci (np. mniej niż 12 GB w przypadku zadania 15 GB).
- Monitorowanie pamięci w czasie rzeczywistym
$ top -b -n 1 | grep avtar
Krok 7 — zweryfikuj poprawkę
- Uruchom ponownie kopię zapasową, która zakończyła się niepowodzeniem.
- Upewnij się, że dziennik nie zawiera już atrybutu
Fatal signal 11komunikatu. - Sprawdź, czy tworzenie kopii zapasowej zostało wykonane pomyślnie i czy zgłoszony rozmiar danych jest zgodny z oczekiwaniami.
- Sprawdź najnowszy dziennik kopii zapasowej pod kątem błędów
$ tail -n 50 /var/log/avtar/backup.log