Avamar: Kopia zapasowa NDMP NetApp kończy się niepowodzeniem z sygnałem krytycznym o wysokim zużyciu pamięci 11
Summary: Podczas tworzenia kopii zapasowej woluminów NetApp tworzenie kopii zapasowej kończy się niepowodzeniem w fazie inicjowania. Gdy avtar próbuje odczytać plik i-węzł.dir.map z poprzedniej kopii zapasowej, kończy się sygnałem krytycznym 11 z powodu dużego użycia pamięci. ...
Symptoms
Objawy niepowodzenia tworzenia kopii zapasowej
Tworzenie kopii zapasowej woluminów NetApp kończy się niepowodzeniem w fazie inicjowania, gdy avtar próbuje odczytać plik inode.dir.map z poprzedniej kopii zapasowej. Tworzenie kopii zapasowej kończy się sygnałem krytycznym 11.
NetApp używa i-węzłów zamiast nazw plików do dokumentowania plików w strumieniu danych. Przy dużej liczbie plików, początkowe procesy zarządzania mogą zabraknąć pamięci, ponieważ jest to miejsce, w którym domyślnie przechowywane są mapy i-węzłów.
Awaria zwykle występuje podczas zaplanowanych kopii zapasowych. Ręczne tworzenie kopii zapasowej zwykle kończy się powodzeniem.
Przykład: Utworzono kopię zapasową dwóch woluminów. Większy wolumin (>200 TB) pomyślnie wykonuje zaplanowaną kopię zapasową. W przypadku mniejszego woluminu (~21 TB) zaplanowane kopie zapasowe kończą się niepowodzeniem. Powodzenie się po ręcznym uruchomieniu.
Dokumentacja Avamar wspomina o limicie 200 mln plików. Ten przykład zawierał 480 mln plików.
Odpowiednie komunikaty dziennika
2022-04-20 13:00:36 avndmp Info : [snapup-/plz/Images] NDMP: DUMP: Using inowalk incremental dump for Full Volume
2022-04-20 13:01:14 avndmp Info : [ctl_spawn] Process 5718 (/usr/local/avamar/bin/avtar) finished (code 176: fatal signal)
2022-04-20 13:01:14 avndmp Warning : [ctl_spawn] CTL workorder "9am-3pm-Images-165044985231#1" non-zero exit status 'code 176: fatal signal'
2022-04-20 13:01:16 avndmp Error : [snapup-/plz/Images] Premature end of child. Changing exitcode from 176 to 157
Nic nie wskazuje na przyczynę.
Komunikaty dziennika Avtar
log 2022-04-20 13:00:43 avtar Info : Using backup #49 timestamp 2022-04-19 18:08:46 UTC label "mages-165044985231#0" as base for incremental backup
2022-04-20 13:00:43 avtar Info : - Establishing a connection via token to the Data Domain system with encryption (Connection mode: A:3 E:2).
2022-04-20 13:00:43 avtar Info : CDSF backup does not use asynchronous reading of NetApp stream. Disabling that feature.
2022-04-20 13:00:43 avtar Info : Reading inode.dir.map from previous backup
2022-04-20 13:01:14 avtar FATAL : Fatal signal 11 in pid 5718
2022/04/20-13:01:14.76035 [avtar] FATAL ERROR: uapp::handlefatal: Fatal signal 11
2022/04/20-13:01:14.76064 [avtar] ERROR: uapp::handlefatal: aborting program pid=5718, sig=11
2022-04-20 13:01:14 avtar FATAL : handlefatal: Aborting program with code 176, pid=5718, sig=11
Cause
Główna przyczyna problemu
Problem jest spowodowany, ponieważ mapa i-węzła jest większa niż pamięć przydzielona dla mapy.
Po wczytaniu do pamięci zapisuje się poza granicami przydzielonej pamięci, powodując komunikat o błędzie krytycznym Signal 11.
Dzieje się tak z powodu dużej liczby i-węzłów dla kopii zapasowej, która przekracza segment pamięci zarezerwowany dla mapy i-węzła.
Komunikaty o błędach w dziennikach, takie jak "Fatal signal 11" i "uapp::handlefatal: Sygnał krytyczny 11", wskazuje, że program napotkał błąd krytyczny z powodu przepełnienia pamięci.
2022-04-20 13:01:14 avtar FATAL : Fatal signal 11 in pid 5718 2022/04/20-13:01:14.76035 [avtar] FATAL ERROR: uapp::handlefatal: Fatal signal 11 2022/04/20-13:01:14.76064 [avtar] ERROR: uapp::handlefatal: aborting program pid=5718, sig=11
Resolution
Konfigurowanie programu Avtar do używania dysku do przechowywania map i-węzłów.
Obejście problemu polega na przechowywaniu map i-węzłów w pliku dysku, a nie w pamięci. Mówi to avtarowi, że podczas odczytywania map i-węzłów należy je przechowywać na dysku, a nie w pamięci. Eliminuje to problem z pamięcią SIG-11.
Istnieją dwie metody ustawiania flagi stream-disk-buffer w celu skonfigurowania avtar do używania dysku jako magazynu map i-węzłów.
Metoda 1: Korzystanie z interfejsu administratora Avamar
Przejdź do zestawu danych klienta, otwórz okno dialogowe Opcje tworzenia kopii zapasowej na żądanie i kliknij przycisk Więcej opcji. Zostanie wyświetlone okno dialogowe Opcje wiersza poleceń dla kopii zapasowych. Kliknij przycisk Więcej. Wpisz [avtar]stream-disk-buffer w polu Wprowadź atrybut, a następnie wybierz wartość true w polach Wprowadź wartość atrybutu. Kliknij ikonę Dodaj, aby dodać atrybut.
Metoda 2: Korzystanie z avtar.cmd
Korzystając z edytora tekstu UNIX, w katalogu var klienta NAS w /usr/local/avamar/var/CLIENT_NAME, utwórz plik avtar.cmd. Jeśli plik istnieje, edytuj istniejący plik. W pliku w osobnym wierszu wprowadź następującą flagę:
--stream-disk-buffer
Weryfikacja rozwiązania
Po ustawieniu flagi stream-disk-buffer sprawdź, czy problem został pomyślnie rozwiązany, sprawdzając pliki dziennika avndmp.log i avtar pod kątem błędów związanych z magazynem map i-węzłów.