Jak przywrócić Plex po nieudanej aktualizacji kontenera

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.

Zatrzymaj kontener Plex, który zakończył działanie niepowodzeniem, oraz jego automatyczny aktualizator, zanim pobierzesz kolejny obraz. Najpierw zachowaj bieżące dzienniki i rzeczywistą ścieżkę konfiguracji Plex; odzyskiwanie jest znacznie bezpieczniejsze, gdy uszkodzony kontener nie może stale zastępować samego siebie ani zapisywać do stanu aplikacji.

Na domowym serwerze NAS aktualizacja kontenera może zakończyć się niepowodzeniem na kilku różnych poziomach: nowy obraz może się nie uruchomić, odtworzona usługa może utracić ustawienie woluminu lub sieci, albo nowa wersja Plex może inaczej otwierać istniejące dane aplikacji. Kluczową granicą są trwałe dane konfiguracji Plex, zwłaszcza baza danych i metadane w `/config`. Ten proces oddziela obraz, definicję kontenera, podpięcia i bazę danych przed zmianą któregokolwiek z tych elementów, a następnie przywraca najmniejszą uszkodzoną warstwę i weryfikuje pierwotną tożsamość serwera, bibliotekę oraz odtwarzanie. Jeśli dzienniki wskazują na uszkodzenie bazy danych lub nieodwracalną migrację, zatrzymaj się przed wymuszeniem starszego obrazu na jedynej kopii tego stanu.

Zatrzymaj pętlę aktualizacji i zapisz stan zakończonego niepowodzeniem kontenera

Wyłącz automatyczny aktualizator Plex i zatrzymaj pętlę szybkich restartów. Pozostaw pozostałe działające usługi, chyba że Plex współdzieli bazę danych wymagającą skoordynowanego zatrzymania. Celem jest zatrzymanie awarii w niezmienionym stanie na tyle długo, aby ją zbadać, a nie ponowne uruchomienie całego stosu aplikacji i zatarcie przebiegu zdarzeń.

Zapisz dokładny tag obrazu zakończonego niepowodzeniem kontenera, identyfikator obrazu oraz skrót, jeśli jest dostępny. Zachowaj informacje o aktywnych podpięciach, zmiennych środowiskowych, opublikowanych portach, trybie sieci, aliasach sieciowych, mapowaniach urządzeń, dodatkowych grupach, zasadzie ponownego uruchamiania i stanie kontroli poprawności. Tag taki jak `latest` sam w sobie nie jest wiarygodnym zapisem umożliwiającym powrót do poprzedniej wersji, ponieważ z czasem może wskazywać inną zawartość obrazu.

Przed kolejną próbą uruchomienia wyeksportuj najnowsze dzienniki i zanotuj pierwszy komunikat krytyczny, a nie tylko końcowy kod wyjścia. Brak pliku, odmowa dostępu, błąd bazy danych, nieobsługiwana instrukcja lub konflikt adresów kierują proces odzyskiwania na inną ścieżkę. Zapisz także, kiedy wykonano aktualizację i czy kontener został utworzony ponownie, ponieważ samo pobranie obrazu nie zmienia istniejącego kontenera, podczas gdy jego ponowne utworzenie może zmienić jego faktyczną definicję.

Możesz kontynuować, gdy awarię można odtworzyć i potrafisz odpowiedzieć na cztery pytania: jaki obraz został uruchomiony, jakich trwałych ścieżek używał, jakie ustawienia środowiska wykonawczego otrzymał oraz jaki błąd pojawił się jako pierwszy. Jeśli te informacje nadal są nieznane, kolejne pobranie obrazu lub ponowne uruchomienie tylko zwiększy ilość szumu, nie zwiększając bezpieczeństwa odzyskiwania.

Zabezpiecz konfigurację Plex przed ponownym utworzeniem kontenera

Traktuj kontener jako wymienny, a konfigurację Plexa jako trwałą. Krytyczny stan zwykle znajduje się na ścieżce hosta lub w nazwanym woluminie zamontowanym jako `/config`; biblioteki multimediów powinny pozostać oddzielnymi montowaniami. Ponowne utworzenie usługi wiąże się z niewielkim ryzykiem tylko wtedy, gdy ponownie podłącza ten sam trwały stan, a nie pusty katalog.

Sprawdź montowanie z hosta oraz z tymczasowego kontekstu tylko do odczytu, jeśli platforma to obsługuje. Potwierdź, że istnieją oczekiwane pliki bazy danych, preferencji, metadanych, danych wtyczek i dzienników. Zapisz źródło montowania, system plików, właściciela, uprawnienia, dostępną przestrzeń oraz informację, czy system plików został przełączony w tryb tylko do odczytu. Pusty katalog pod oczekiwaną ścieżką to sygnał ostrzegawczy, aby się zatrzymać, a nie pozwolenie na utworzenie przez Plex nowego serwera w tym miejscu.

Przed testowaniem wycofania aktualizacji wykonaj kopię zapasową całej zamierzonej ścieżki konfiguracji, a następnie sprawdź, czy kopię można wyświetlić lub przywrócić do odizolowanej lokalizacji. Jeśli system plików obsługuje migawki, migawka może przyspieszyć odzyskiwanie, ale nie powinna być jedyną kopią, gdy ten sam nośnik może ulegać awarii. Zachowaj zarówno stan po awarii, jak i ostatnią sprawdzoną kopię zapasową, dopóki serwer nie zostanie zweryfikowany.

Nie usuwaj plików preferencji, bazy danych ani metadanych, aby uruchomić starszy obraz. Jeśli konfiguracji nie można odczytać w spójny sposób, jej właściciel jest nieznany albo nie można zweryfikować kopii, przejdź bezpośrednio do odzyskiwania danych z pamięci masowej lub bazy danych. Ponowne utworzenie kontenera nie naprawi niewiarygodnego źródła stanu.

Ustal, czy problem dotyczy obrazu, definicji, montowania czy bazy danych

Przed wyborem sposobu naprawy porównaj przechwycony kontener z ostatnim działającym wdrożeniem. Zacznij od pierwszego krytycznego wiersza dziennika i efektywnej definicji, a następnie przyporządkuj błąd do jednej z czterech kategorii: nowy obraz nie może się uruchomić, zmieniła się definicja kontenera, trwała ścieżka jest niedostępna albo Plex nie może użyć istniejącego stanu aplikacji.

Błąd obrazu lub środowiska uruchomieniowego zwykle pojawia się, zanim Plex zdąży otworzyć `/config`: błędy architektury, nieobsługiwane instrukcje procesora, brakujące biblioteki środowiska uruchomieniowego albo natychmiastowe zakończenie procesu przy niezmienionej definicji kontenera. Błąd odtwarzania zależny od wersji zniknął po przywróceniu wcześniejszego obrazu Plexa, dlatego wycofanie aktualizacji jest przydatnym sposobem rozróżnienia przyczyn, gdy ta sama definicja działała wcześniej i nie zmieniono żadnego montowania ani uprawnień.

Po odtworzeniu pojawia się błąd definicji lub montowania, gdy Plex uruchamia się bez multimediów, z pustym serwerem, odrzuconym dostępem do plików, bez punktu dostępu WWW lub bez dostępu do sprzętu. Porównaj zapisane i faktycznie używane źródła woluminów, UID/GID, grupy, porty, tryb sieci, urządzenia i zmienne środowiskowe. Popraw pierwszą potwierdzoną niezgodność zamiast zmieniać wszystkie pola naraz.

Komunikaty dotyczące bazy danych i migracji wymagają osobnego toku postępowania. Jeśli nowa kompilacja rozpoczęła zmianę schematu, starszy obraz może nie być w stanie odczytać wynikowego stanu. Ponownie utwórz kopię bieżącej konfiguracji, zachowaj dzienniki i nie wymuszaj wielokrotnych uruchomień na kilku wersjach. Ta ścieżka wymaga zgodnego obrazu, zweryfikowanej kopii zapasowej sprzed aktualizacji lub naprawy uwzględniającej bazę danych.

Zaobserwowany rezultat Główna gałąź Pierwsza naprawa
Proces kończy działanie, zanim odczyta `/config` Obraz lub środowisko uruchomieniowe Uruchom zachowany, znany jako poprawny obraz z niezmienioną definicją
Plex uruchamia się jako nowy lub pusty serwer Nieprawidłowe mapowanie `/config` Zatrzymaj usługę i przywróć oryginalne źródło montowania
Konfiguracja lub multimedia wskazują błędy uprawnień Właściciel zamontowanego zasobu lub stan tylko do odczytu Przywróć sprawdzone wartości UID/GID, grupy lub dostęp do pamięci masowej
Dzienniki wskazują na migrację lub błąd bazy danych Stan aplikacji Zachowaj stan i użyj zgodnego obrazu lub zweryfikowanej kopii zapasowej

-15% OFF

Przywróć ostatni znany poprawny obraz Plex

Wybierz dokładny obraz, który ostatnio działał poprawnie. Preferuj zachowany skrót obrazu, niezmienną referencję wersji lub lokalny identyfikator obrazu zamiast zmiennego tagu. Wyłącz automatyczne aktualizacje, aby aktualizator nie zastąpił obrazu przywróconego z kopii zapasowej zaraz po jego uruchomieniu.

Odtwórz wyłącznie usługę Plex z zapisanej definicji. Zachowaj tę samą tożsamość projektu lub kontenera, jeśli wpływa ona na sieci, a także te same ścieżki `/config` i źródła multimediów, porty, tryb sieci, zmienne środowiskowe, UID/GID, grupy i urządzenia. Nie usuwaj woluminów i nie przeprowadzaj czyszczenia całego systemu przed przetestowaniem starego obrazu.

Śledź pierwsze uruchomienie w czasie rzeczywistym. Pomyślne przywrócenie obrazu powinno otworzyć oryginalną konfigurację, zachować tę samą tożsamość serwera, udostępnić istniejące biblioteki i usunąć przyczynę poprzedniego błędu krytycznego. Pozostaw opcjonalne sprzętowe transkodowanie i skanowanie w tle na później — najpierw upewnij się, że logowanie i dostęp do multimediów działają.

Zatrzymaj się, jeśli stary obraz zgłasza, że baza danych jest nowsza, niezgodna lub w trakcie migracji. Wielokrotne przełączanie wersji może utrudnić zrozumienie punktu odzyskiwania. Przywróć zweryfikowaną kopię konfiguracji sprzed aktualizacji do odizolowanej ścieżki albo przejdź do zgodnego obrazu Plexa, zamiast wymuszać niebezpieczne obniżenie wersji.

Przywróć pierwotną definicję kontenera, gdy wycofanie zmian nie wystarcza

Jeśli znany działający obraz nadal nie działa, wróć do porównania definicji. Przywracaj po jednym brakującym ustawieniu i po każdej zmianie uruchamiaj ponownie wyłącznie Plexa. Dzięki temu dowody pozostaną czytelne: gdy serwer wróci, będziesz wiedzieć, która zależność wykonawcza była przyczyną.

Zacznij od montowań `/config` i multimediów. Potwierdź, że kontener widzi zamierzone ścieżki i może je odczytywać jako skonfigurowany użytkownik. Jeśli aktualizacja odtworzyła Plexa z użyciem innego UID lub GID, dodatkowej grupy albo kontekstu bezpieczeństwa, przywróć ostatnią działającą tożsamość lub celowo skoryguj właściciela danych. Nie ustawiaj całego drzewa appdata jako dostępnego dla wszystkich tylko na skróty.

Następnie sprawdź ścieżkę internetową i opcjonalne urządzenia. Przywróć poprzednią sieć hosta lub opublikowany port, aliasy sieciowe oraz członkostwo w odwrotnym proxy przed zmianą reguł zapory. Najpierw potwierdź działanie interfejsu internetowego przez bezpośrednią ścieżkę serwera. Dodaj urządzenie GPU i dostęp do grupy renderującej dopiero po tym, jak Plex będzie mógł się uruchomić, wczytać bibliotekę i obsłużyć podstawowy strumień zgodny programowo.

Pomyślna naprawa definicji ma jasno określony stan: kontener widzi zamierzoną konfigurację i multimedia, punkt końcowy Plex jest osiągalny, a w dziennikach nie pojawia się już wybrany błąd zależności. Jeśli po tych kontrolach nadal występuje ten sam błąd bazy danych, przestań odtwarzać kontener i wróć do chronionej gałęzi stanu aplikacji.

Zweryfikuj bazę danych Plex, bibliotekę i odtwarzanie przed ponownym włączeniem aktualizacji

Działający proces to dopiero pierwszy etap sprawdzania odzyskiwania. Zaloguj się przez bezpośredni punkt końcowy Plex i potwierdź, że jest to pierwotnie powiązany serwer, a nie nowy serwer utworzony z użyciem pustego katalogu konfiguracji. Przejrzyj dzienniki uruchamiania pod kątem uszkodzenia bazy danych, powtarzających się prób migracji i nieoczekiwanej inicjalizacji biblioteki.

Otwórz kilka istniejących pozycji biblioteki i potwierdź obecność plakatów, metadanych, stanu obejrzenia oraz ścieżek plików. Sprawdź dostęp do jednego małego, sprawdzonego pliku multimedialnego z tej samej pamięci masowej, której używano przed aktualizacją. Jeśli metadane są dostępne, ale multimedia nie, baza danych może działać prawidłowo, a naprawy może wymagać punkt montowania multimediów lub uprawnienia.

Odtwórz znany plik na jednym lokalnym kliencie, a następnie — jeśli ma to zastosowanie — na kliencie, który ujawnił problem. Zapisz tryb odtwarzania i potwierdź, że przewijanie działa. Brak akceleracji GPU, dostępu zdalnego lub prawidłowego działania napisów potraktuj jako osobne obszary do dalszej analizy, jeśli podstawowe odtwarzanie działa; nie powinny one blokować zachowania odzyskanego serwera.

Na koniec wykonaj jedno kontrolowane ponowne uruchomienie usługi Plex przy nadal wyłączonym aktualizatorze. Odzyskiwanie można uznać za udane tylko wtedy, gdy po tym ponownym uruchomieniu powrócą ta sama tożsamość serwera, baza danych, biblioteki, metadane, dostęp do multimediów i podstawowe odtwarzanie. Zachowaj zapisane logi awarii i kopię zapasową do czasu, aż ten pełny rezultat będzie można powtarzalnie uzyskać.

Dowiedz się, kiedy przerwać i sprawić, by następna aktualizacja Plexa umożliwiała odzyskanie

Przerwij lokalną naprawę kontenera, gdy w logach wielokrotnie pojawiają się informacje o uszkodzeniu bazy danych, system plików konfiguracji zwraca błędy wejścia/wyjścia, jedyna kopia stanu została częściowo zmigrowana albo żaden zgodny obraz nie może jej otworzyć. Zachowaj identyfikatory obrazów, bieżącą definicję, logi i kopię konfiguracji. Na tym etapie bezpieczniejsze będzie przywracanie z uwzględnieniem bazy danych lub naprawa pamięci masowej niż dalsze przebudowywanie kontenera.

Gdy Plex będzie już stabilny, udokumentuj odzyskany skrót obrazu, definicję kontenera, ścieżki trwałych danych, tożsamość procesu, tryb sieci, urządzenia oraz wyniki weryfikacji. Szerszy proces odzyskiwania pojedynczej usługi jest przydatny, gdy Plex zależy również od współdzielonych baz danych, sieci proxy lub innych usług stosu, ale tych działających zależności nie należy przywracać tylko dlatego, że wystąpiła awaria Plexa.

Przy następnej aktualizacji utwórz i zweryfikuj nową kopię zapasową `/config`, zachowaj bieżący obraz, wyłącz automatyczne usuwanie starych wersji, zaktualizuj Plex ręcznie i przed ponownym włączeniem automatyzacji powtórz kontrole tożsamości, bibliotek, odtwarzania i ponownego uruchomienia. Aktualizację można uznać za zakończoną dopiero wtedy, gdy zachowany zostanie zarówno sprawdzony cel przywracania, jak i działająca nowa wersja.

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.