Powinieneś utworzyć punkt przywracania przed aktualizacjami kontenera, które mogą zmienić trwałe dane aplikacji, schematy bazy danych, właściciela wolumenu lub układ magazynu. Nie potrzebujesz nowego snapshotu systemu plików przed każdym nieszkodliwym pobraniem obrazu lub restartem, gdy usługa jest bezstanowa, trwałe ścieżki pozostają niezmienione, a przetestowana kopia zapasowa już obejmuje dane.
Przydatna zasada dla domowego NAS to nie „snapshotuj każdą aktualizację”, lecz „chroń każdą aktualizację zmieniającą stan”. Wymaga to wiedzy, co kontroluje obraz kontenera, co znajduje się w wolumenach lub bind mountach oraz czy aplikacja może odzyskać się ze snapshotu spójnego po awarii.
Jedna zasada snapshotu zawodzi, ponieważ aktualizacje kontenera zmieniają różne rzeczy
Zamiana obrazu może być niskiego ryzyka, gdy kontener służy tylko do kodu jednorazowego i odczytuje konfigurację z kontroli wersji. Ta sama aktualizacja może być wysokiego ryzyka, gdy nowa wersja migruje bazę danych, przepisuje indeks, zmienia właściciela plików lub konwertuje układ trwałego wolumenu.
Trwałość kontenera zależy od poprawnie zmapowanego magazynu. Przewodnik aktualizacji serwera domowego wyjaśnia, że mapowania wolumenów zachowują dane aplikacji podczas odtwarzania, ale sama trwałość nie tworzy punktu przywracania po zmianie tych plików przez aplikację.
Wybierz jednostkę przywracania przed wyborem snapshotu
| Stan do ochrony | Obiekt przywracania | Tylko snapshot? |
|---|---|---|
| Obraz kontenera i tag | Stary digest obrazu lub przypisana wersja | Nie jest potrzebny snapshot danych, jeśli nic trwałego się nie zmienia |
| Plik Compose, środowisko, porty i montowania | Eksport konfiguracji kontrolowany wersjami | Nie; snapshot pamięci masowej nie przywraca definicji wdrożenia |
| Bind mounty i nazwane wolumeny z zwykłymi plikami | Snapshot systemu plików lub zweryfikowana kopia zapasowa plików | Zazwyczaj, gdy pliki są w stanie spoczynku i wszystkie ścieżki są uwzględnione |
| PostgreSQL, MariaDB, SQLite lub inna aktywna baza danych | Zrzut świadomy aplikacji, skoordynowany snapshot lub krótka kopia czystego zamknięcia | Nie automatycznie |
| Sekrety, certyfikaty i zewnętrzne poświadczenia | Niezależny tajny rekord kopii zapasowej i odzyskiwania | Nie; mogą znajdować się poza zrzutem danych |
Jednostka wycofania musi zawierać każdy komponent potrzebny aplikacji do uruchomienia. Wycofanie tylko obrazu może pozostawić nowy schemat bazy danych, podczas gdy wycofanie tylko woluminu może pozostawić niekompatybilny obraz lub konfigurację aktywną.
Migawka przed aktualizacjami, które mogą przepisać trwały stan
Migracje baz danych i schematów
Wykonaj kopię zapasową świadomą aplikacji lub skoordynowaną migawkę przed aktualizacją, której notatki wydania wspominają o migracji schematu, konwersji bazy danych, reindeksacji lub jednokierunkowych krokach aktualizacji. Praktyczny proces aktualizacji kontenera wyraźnie łączy kopiowanie danych aplikacji z zapisywaniem bieżącej wersji przed pobraniem zamiennika.
Zmiany układu woluminów i uprawnień
Utwórz punkt wycofania, gdy aktualizacja zmienia ścieżki montowania, własność UID/GID, katalogi baz danych, metadane mediów, generowane miniatury lub format przechowywania aplikacji. Te zmiany mogą uniemożliwić staremu kontenerowi odczyt zaktualizowanych danych, nawet jeśli pliki nadal istnieją.
Duże lub trudne do odtworzenia dane domowe
Wykonaj migawkę przed aktualizacją bibliotek zdjęć, systemów dokumentów, historii automatyki domowej, menedżerów haseł lub metadanych mediów, gdy odbudowa stanu zajęłaby więcej czasu niż utworzenie i przetestowanie punktu wycofania.
Pomiń migawkę, gdy aktualizacja jest naprawdę bezstanowa
Oddzielna migawka pamięci może mieć niewielką wartość, gdy kontener nie ma zapisywalnej trwałej ścieżki, cała konfiguracja jest odtwarzalna, dane zewnętrzne są już chronione, a wycofanie oznacza uruchomienie wcześniej przypiętego obrazu. Potwierdź, że aplikacja nie zapisuje cicho na anonimowej woluminie lub ścieżce hosta poza oczekiwanym zestawem danych.
Zapisz dokładny stary skrót obrazu nawet w tej niskiego ryzyka ścieżce. Operatorzy serwerów domowych często chcą stary skrót obrazu, aby problem odkryty po kilku restartach nadal można było powiązać z wersją, która została zmieniona.
Migawka działającego systemu plików może nie być zgodna z aplikacją
Migawka systemu plików rejestruje punkt w czasie, ale aktywna baza danych może mieć niezsynchronizowane strony w pamięci, częściowo zapisane transakcje lub zależne pliki, które muszą być ze sobą zgodne. Wskazówki dotyczące tworzenia kopii zapasowych baz danych rozróżniają kopię zgodną z awarią od migawki zgodnej z aplikacją tworzonej podczas trybu kopii zapasowej bazy danych lub innego jej uspokojenia.
Dla małej aplikacji domowego NAS najprostszym bezpiecznym wyborem może być logiczny zrzut lub krótka czysta przerwa przed wykonaniem migawki. Zwykłe archiwum działającego wolumenu MySQL nie jest równoważne; praktyczne porady dotyczące tworzenia kopii zapasowych kontenerów zalecają zatrzymanie bazy danych przed kopiowaniem, gdy nie jest używana metoda świadoma aplikacji.
Użyj macierzy ryzyka zamiast reguły dla każdej aktualizacji
| Warunek aktualizacji | Zalecana ochrona | Dlaczego |
|---|---|---|
| Wydanie poprawki, brak migracji, usługa bezstanowa | Przypnij stary obraz i zachowaj historię konfiguracji | Nie oczekuje się zmiany trwałego stanu |
| Aplikacja zapisuje zwykłe pliki w jednym zestawie danych objętym migawką | Szybka migawka przed aktualizacją plus normalna kopia zapasowa | Wycofanie jest proste, gdy wszystkie ścieżki są pokryte |
| Migracja bazy danych lub nowy format przechowywania | Backup natywny bazy danych plus skoordynowana migawka | Stary obraz może nie rozumieć migrowanych danych |
| Wiele zestawów danych, zewnętrzna baza danych, sekrety lub certyfikaty | Lista kontrolna zależności i oddzielne kopie zapasowe dla każdego właściciela stanu | Jedna migawka systemu plików nie może pokryć całej aplikacji |
| Aktualizacja jest nieodwracalna lub wycofanie nigdy nie było testowane | Okno konserwacji, izolowany test przywracania i dłuższy czas przechowywania migawki | Głównym ryzykiem jest nieznana ścieżka wycofania |
Użyj odwracalnego procesu aktualizacji domowego NAS
- Przeczytaj notatki wydania dotyczące migracji, zmian uprawnień, usuniętych ustawień i minimalnych wersji bazy danych.
- Zapisz aktualny digest obrazu, plik compose, zmienne środowiskowe, montowania i wersję aplikacji.
- Stwórz ochronę wymaganą przez macierz ryzyka: brak snapshotu, szybki snapshot systemu plików, kopia zapasowa bazy danych świadoma aplikacji lub oba.
- Aktualizuj jeden stos aplikacji na raz i zachowaj starą wersję obrazu.
- Przetestuj logowanie, dane podstawowe, zadania w tle, przesyłanie plików, zapisy do bazy danych oraz jedno reprezentatywne przywracanie lub eksport.
- Przechowuj punkt przywracania przed aktualizacją, dopóki aplikacja nie przetrwa normalnego użytkowania domowego i regularnego cyklu kopii zapasowych.
- Usuń tymczasowy snapshot dopiero po wykonaniu oddzielnej kopii zapasowej, która może odbudować aktualny stan.
Przywracanie powinno być testowane na klonie lub osobnym celu, gdy platforma przechowywania na to pozwala. Bezpośrednie przywracanie może odrzucić nowszy stan; użytkownicy ZFS powinni na przykład rozumieć, że przywracanie odrzuca późniejsze snapshoty i zmiany utworzone po wybranym punkcie.
FAQ
Czy snapshot działającego kontenera bazy danych jest wystarczający?
Tylko wtedy, gdy baza danych i metoda przechowywania mogą wygenerować odzyskiwalny, spójny stan po awarii lub snapshot jest skoordynowany z bazą danych. Dla cenniejszych aplikacji na serwerach domowych użyj spójnej kopii zapasowej kontenera bazy danych, zamiast zakładać, że snapshot wolumenu na żywo jest wystarczający.
Jak długo należy przechowywać snapshot przed aktualizacją?
Przechowuj go, dopóki zaktualizowana aplikacja nie przejdzie testów funkcjonalnych, nie przetrwa normalnego użytkowania i nie zostanie wykonana co najmniej jedna oddzielna, zweryfikowana kopia zapasowa. Przechowuj dłużej, gdy migracje są nieodwracalne, problemy mogą pojawić się powoli lub odbudowa starego stosu aplikacji byłaby trudna.
Snapshot to krótkie narzędzie do przywracania stanu, a nie substytut wersjonowanych kopii zapasowych, historii konfiguracji, odzyskiwania sekretów czy ochrony bazy danych świadomej aplikacji. Używaj go, gdy aktualizacja może zmienić stan, a pomiń, gdy aktualizacja jest naprawdę tymczasowa, a ścieżka przywracania jest już sprawdzona.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Plex może współdzielić kartę graficzną z innym kontenerem Dockera?
Plex i inny kontener często mogą korzystać z tego samego układu GPU, ale należy przetestować obsługę sterowników, mapowanie urządzeń, obciążenie silnika wideo, pamięć oraz...

Jak ustalić, czy błąd Plex pochodzi od klienta, czy od serwera
Odtwórz ten sam przypadek na innym kliencie, porównaj ścieżkę sesji, a następnie zbierz dowody z serwera dopiero wtedy, gdy zakres analizy wskaże, gdzie faktycznie...

Jak skonfigurować pamięć podręczną Plex i tymczasową pamięć na transkodowane pliki
Chroń trwały stan Plex, umieszczając tymczasowe pliki transkodowania na odpowiedniej pamięci lokalnej, a następnie zweryfikuj czyszczenie, ilość wolnego miejsca i zachowanie podczas ponownego uruchamiania.

