Dlaczego Restic lub Borg zgłasza brakujące albo przeniesione repozytorium po zmianie punktu montowania?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Restic lub Borg mogą sprawiać wrażenie, że zapomniały repozytorium, gdy skonfigurowana ścieżka wskazuje teraz pusty katalog, inny system plików lub przeniesioną lokalizację repozytorium.

Dane repozytorium mogą nadal znajdować się na dysku kopii zapasowych, ale zadanie może otworzyć pusty katalog punktu montowania, zanim dysk zostanie podłączony, użyć zmienionej ścieżki kontenera, odczytać nieaktualną zmienną środowiskową lub odmówić dostępu do repozytorium Borg, którego identyfikator pojawia się w nowej lokalizacji. Przed rozpoczęciem inicjalizacji sprawdź zamontowane źródło i tożsamość repozytorium. Uruchomienie polecenia inicjalizacji dla niewłaściwej pustej ścieżki może utworzyć drugie repozytorium i utrudnić znalezienie pierwotnej przyczyny problemu.

Sprawdź, co jest zamontowane w skonfigurowanej ścieżce repozytorium

Zapisz ścieżkę repozytorium używaną przez zaplanowane zadanie, a następnie porównaj ją przed zamontowaniem dysku kopii zapasowych i po nim. Zarejestruj źródło systemu plików, UUID, punkt montowania oraz dostępną pojemność.

Linuksowe narzędzie findmnt określa aktywne montowanie dla ścieżki docelowej, dlatego jest właściwym pierwszym narzędziem kontrolnym, gdy znajomy katalog może w rzeczywistości być niezamontowanym folderem systemu hosta.

Jeśli ścieżka należy do głównego systemu plików zamiast do dysku kopii zapasowych, zatrzymaj usługę tworzenia kopii zapasowych, zanim zapisze nowe repozytorium lub zestaw kopii w tym pustym katalogu.

Zweryfikuj dokładną lokalizację repozytorium Restic

Porównaj ścieżkę przekazywaną za pomocą -r, --repository-file lub RESTIC_REPOSITORY z bieżącym punktem montowania. Sprawdź skrypty opakowujące, pola NAS, pliki z danymi uwierzytelniającymi oraz środowiska zadań zaplanowanych.

Restic definiuje lokalne repozytorium jako konkretny katalog zawierający konfigurację, dane, indeks, klucze, blokady i migawki, więc zmiana punktu montowania zmienia lokalizację, którą polecenie próbuje otworzyć.

Nie uruchamiaj restic init tylko dlatego, że nowa ścieżka zgłasza brak repozytorium. Najpierw znajdź katalogi konfiguracji i danych pierwotnego repozytorium na zamontowanym dysku.

Świadomie obsłuż ostrzeżenie Borg o przeniesieniu repozytorium

Zapisz adres URL repozytorium Borg, jego identyfikator, poprzednią i bieżącą lokalizację, ścieżkę pamięci podręcznej oraz katalog zabezpieczeń. Potwierdź, że to samo repozytorium zostało celowo przeniesione.

FAQ Borg wyjaśnia, że program prosi o zatwierdzenie po przeniesieniu repozytorium, ponieważ ten sam identyfikator repozytorium w nowej ścieżce może również wskazywać na niebezpieczne podstawienie.

Zatwierdź przeniesienie dopiero po porównaniu identyfikatora repozytorium i zawartości pamięci. Nie wyciszaj ostrzeżenia globalnie, gdy kilka wymiennych repozytoriów może być podłączanych pod zmieniającymi się ścieżkami.

-15% OFF

Zastąp ścieżki zależne od kolejności urządzeń trwałą identyfikacją pamięci

Sprawdź, czy konfiguracja montowania odwołuje się do /dev/sdX, zduplikowanej etykiety, UUID systemu plików, UUID partycji lub identyfikatora urządzenia. Porównaj wszystkie rotowane dyski pod kątem zduplikowanych identyfikatorów.

ArchWiki zauważa, że identyfikatory UUID ograniczają kolizje nazw w porównaniu z etykietami i nazwami urządzeń przypisywanymi przez jądro, które mogą zmieniać się wraz z kolejnością wykrywania.

Stabilny identyfikator nadal musi wskazywać zamierzony stały katalog montowania. UUID zapobiega zmianom wynikającym z kolejności dysków, ale nie aktualizuje zadania kopii zapasowej, które nadal zawiera poprzednią ścieżkę.

Sprawdź tłumaczenie ścieżek kontenera i montowania wiązanego

W przypadku konteneryzowanego Restic, Borg lub interfejsu kopii zapasowych porównaj punkt montowania na hoście ze źródłem montowania wiązanego i ścieżką repozytorium wewnątrz kontenera. Sprawdź uruchomiony kontener, a nie tylko zapisany plik compose.

Docker informuje, że montowania wiązane zależą od dokładnej ścieżki hosta, więc przeniesienie dysku z /mnt/backup-a do /media/backup-a może pozostawić kontener z mapowaniem na pusty katalog.

Zachowaj stabilną ścieżkę sprzętową na hoście i udostępnij jedną stabilną ścieżkę kontenera. Nie zapisuj ścieżek wymiennych nośników zależnych od hosta bezpośrednio w konfiguracji repozytorium, jeśli dostępne jest stałe mapowanie.

Ustaw oczekiwanie usługi kopii zapasowych na zamontowanie dysku

Porównaj znaczniki czasu uruchomienia systemu i usług. Potwierdź, że montowanie zostało ukończone, zanim harmonogram kopii zapasowych, kontener, interfejs repozytorium lub zadanie konserwacyjne spróbowały uzyskać dostęp.

Wytyczne Red Hat dotyczące trwałego montowania zalecają zdefiniowanie stałego montowania w fstab, które można następnie połączyć z zależnościami usług i walidacją przed uruchomieniem.

Opcja rozruchowa nofail może być odpowiednia dla wymiennego dysku kopii zapasowych, ale usługa tworzenia kopii zapasowych nadal musi odmawiać uruchomienia, gdy wymaganego systemu plików brakuje.

Podłącz ponownie istniejące repozytorium przed uruchomieniem kopii zapasowej

Zatrzymaj harmonogramy, zamontuj właściwy system plików w stałej ścieżce, zweryfikuj strukturę repozytorium, otwórz je w trybie tylko do odczytu lub wyświetl migawki, a następnie wykonaj niewielką kontrolę repozytorium przed włączeniem zapisu.

Artykuł ZimaSpace dotyczący stabilnych ścieżek aplikacji opartych na UUID omawia ogólny łańcuch montowania; ten artykuł koncentruje się na tożsamości repozytorium i bezpieczeństwie narzędzi kopii zapasowych po zmianie ścieżki.

Problem zostaje rozwiązany, gdy to samo repozytorium, z tym samym identyfikatorem i historią migawek, otwiera się w zamierzonej ścieżce po wielokrotnych testach ponownego uruchamiania i rotacji dysków, a w pustym katalogu punktu montowania nie powstaje nowe repozytorium.

Często zadawane pytania

Czy repozytorium Restic można przenieść do innego punktu montowania?

Tak, pod warunkiem że całe repozytorium zostanie przeniesione w niezmienionej postaci, a każde zadanie będzie odtąd wskazywać nową lokalizację. Restic identyfikuje repozytorium na podstawie ścieżki lub backendu przekazanego poleceniu.

Dlaczego Borg ostrzega, gdy dane repozytorium się nie zmieniły?

Borg rejestruje tożsamość repozytorium i jego poprzednią lokalizację jako środek bezpieczeństwa. Pojawienie się tego samego identyfikatora w innej ścieżce wymaga świadomego zatwierdzenia.

Czy należy zainicjalizować repozytorium w nowej ścieżce?

Nie, dopóki nie udowodnisz, że stare repozytorium jest niedostępne. Inicjalizacja pustego punktu montowania tworzy osobne repozytorium zamiast ponownie podłączać oryginalne.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.