Nieaktualną blokadę Restic należy usunąć dopiero po potwierdzeniu, że każdy wymieniony host i proces jest nieaktywny. Naprawa polega na standardowym usunięciu nieaktualnej blokady, a nie na wymuszonym usunięciu wszystkich blokad.
Gdy kilka serwerów domowych współdzieli jedno repozytorium, stara blokada może należeć do wolnego zdalnego zadania, ponownie uruchomionego kontenera lub procesu działającego z zegarem różniącym się od zegara komputera operatora. Najpierw wstrzymaj nowe harmonogramy, zapisz metadane blokady, sprawdź wskazany host i każdy kontroler zadań konserwacyjnych, a następnie użyj standardowej ścieżki czyszczenia. Jeśli nie można zweryfikować któregokolwiek właściciela, przerwij i zachowaj blokadę.
Wstrzymaj nowe zadania i zidentyfikuj każdego właściciela blokady
Wyłącz timery, wpisy cron, harmonogramy kontenerów i zadania orkiestracji, które mogą uruchomić Restic w repozytorium. Zapisz bieżącą listę blokad i najnowsze logi usług. Dla każdej blokady odnotuj host, identyfikator procesu, użytkownika, znacznik czasu oraz informację, czy jest wyłączna, a następnie sprawdź wskazany proces dokładnie na tym hoście.
Wyłączna kontrola repozytorium może blokować inne działania, a blokada przerwanej kontroli może wyglądać jak porzucona blokada kopii zapasowej, dopóki nie zostanie dopasowana do operacji i właściciela.
Jeśli jakikolwiek proces działa lub jego logi się zmieniają, poczekaj albo zatrzymaj go prawidłowo za pośrednictwem menedżera usług. Jeśli host jest nieosiągalny, nie można potwierdzić, że blokada jest nieaktualna. Kontynuuj dopiero wtedy, gdy nie ma żadnego istotnego procesu, żaden harmonogram nie może go ponownie uruchomić, a repozytorium nie otrzymuje zapisów.
Potwierdź nieaktualność blokady na podstawie czegoś więcej niż jej wieku
Odczekaj krótki czas obserwacji i ponownie wyświetl listę blokad. Kandydat na nieaktualną blokadę nie ma aktywnego właściciela, rozwijającego się logu, odświeżeń ani aktywności zapisu w repozytorium. Porównaj zegary i odpytać ten sam backend z innego zaufanego klienta, jeśli repozytorium jest zdalne.
Kompletny proces pracy z repozytorium Restic traktuje odblokowanie jako jedną z operacji administracyjnych obok tworzenia kopii zapasowych, kontroli, retencji i przywracania; nie zastępuje ono ustalenia, kto nadal jest właścicielem repozytorium.
Jeśli blokada się odświeża, log się zmienia lub klienci mają różne widoki backendu, przerwij. Jeśli blokada pozostaje niezmieniona, a jej właściciel z całą pewnością nie działa, kontynuuj. Wiek potwierdza wynik, ale go nie przesądza; wolno działająca aktywna operacja może być starsza, niż oczekuje operator.
Najpierw użyj standardowego czyszczenia nieaktualnych blokad
Użyj zwykłego mechanizmu odblokowywania Restic, aby usunąć nieaktualne blokady, zachowując te, które nadal są uznawane za aktywne. Nie dodawaj opcji usuwania wszystkich blokad i nie uruchamiaj kolejnego polecenia bez blokowania. Zapisz wynik polecenia i natychmiast potem wykonaj świeże wyświetlenie listy blokad.
Standardowe polecenie odblokowania jest przeznaczone konkretnie do obsługi nieaktualnych blokad, natomiast wymuszone usuwanie to osobne działanie o wyższym ryzyku, które nie powinno być częścią normalnej procedury naprawczej.
Jeśli nieaktualny wpis zniknie i żadna aktywna blokada nie zostanie usunięta, przejdź do weryfikacji. Jeśli pozostanie aktywna blokada, respektuj ją i wróć do sprawdzania właściciela. Jeśli blokada pojawi się ponownie natychmiast, timer, kontener lub zdalny host rozpoczął pracę; wyłącz to źródło i nie powtarzaj odblokowania, dopóki nowy właściciel nie zostanie ustalony.
Zweryfikuj pierwotną kopię zapasową i następne zaplanowane uruchomienie
Uruchom dokładnie tę kopię zapasową, która była zablokowana, i zarejestruj czas rozpoczęcia, postęp, kod wyjścia oraz cykl życia blokady. Potwierdź, że blokada pojawia się podczas pracy Restic i znika po prawidłowym zakończeniu. Wyświetl nowy snapshot i przywróć niewielką próbkę do osobnej lokalizacji, zanim ponownie włączysz automatyzację.
Jeśli repozytorium zachowuje się jak tylko do odczytu lub konserwacja pozostaje nieukończona, traktuj stan po przerwanym przycinaniu jako osobną kwestię, niezależną od czyszczenia nieaktualnej blokady.
Ponownie włącz normalny harmonogram na jeden cykl. Naprawa kończy się powodzeniem, gdy oba uruchomienia zostaną ukończone, ich blokady zostaną prawidłowo usunięte, a przywrócona próbka będzie zgodna. Eskaluj problem, jeśli nieaktualna blokada powróci po prawidłowym zakończeniu procesu, widoki backendu nadal będą niespójne lub wyniki kontroli repozytorium i przywracania będą się różnić. Nie automatyzuj wymuszonego odblokowywania jako sposobu na rozwiązanie powtarzającego się problemu.
Wsparcie i wskazówki
Więcej do przeczytania

Jak zaplanować zadania tworzenia kopii zapasowych Restic oraz operacji Forget i Prune bez konfliktów blokad
Kompletny harmonogram Restic dla wielu hostów, który rozdziela częste kopie zapasowe, zakres przechowywania, fizyczne usuwanie niepotrzebnych danych, kontrole, ponowne próby i walidację przywracania.

Jak zapobiec blokowaniu zaplanowanych kopii zapasowych przez zadania czyszczenia Restic
Plan zapobiegania problemom we współdzielonych repozytoriach Restic, który oddziela okna tworzenia kopii zapasowych od przycinania oraz zachowuje blokady, ponawianie prób i alerty.

Dlaczego kopia zapasowa Restic zatrzymuje się, gdy inny host rozpoczyna usuwanie niepotrzebnych danych?
Szczegółowa diagnoza konfliktu blokad podczas czyszczenia Restic, obejmująca sprawdzanie właściciela blokady, bezpieczne odzyskiwanie, ponowne testowanie stanu wyzwalającego oraz warunki zakończenia.

