Czy Immich może niezawodnie działać z danymi na udziale sieciowym?

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.

Immich może niezawodnie korzystać z udziału sieciowego do przechowywania multimediów lub biblioteki zewnętrznej, jeśli sposób montowania, uprawnienia, opóźnienia i zachowanie podczas awarii zostały odpowiednio zaprojektowane i przetestowane. Katalog danych PostgreSQL powinien jednak pozostać na obsługiwanym nośniku o niskich opóźnieniach, a nie na ogólnym udziale SMB lub NFS.

Słowo „dane” obejmuje różne obciążenia: oryginały to duże, trwałe pliki, miniatury generują wiele mniejszych operacji, biblioteki zewnętrzne mogą być tylko do odczytu, a PostgreSQL wymaga semantyki systemu plików właściwej dla baz danych. Zdecyduj osobno dla każdej ścieżki, zamontuj udział przed uruchomieniem kontenerów, nie dopuść, aby pusty katalog lokalny udawał NAS, i sprawdź działanie zarówno po ponownym uruchomieniu hosta, jak i podczas kontrolowanej przerwy w dostępie do udziału.

Zaklasyfikuj każdą ścieżkę Immich przed jej przeniesieniem

Wymień osobno bibliotekę przesyłanych plików, miniatury lub zakodowane multimedia, biblioteki zewnętrzne, katalog bazy danych, pamięć podręczną modeli oraz kopie zapasowe. Określ, kto zapisuje dane w każdej ścieżce i jaki jest wpływ ich utraty. Udział na multimedia może być odpowiedni, ale traktowanie każdego woluminu jako wymiennego nie spełnia założeń projektu.

Praktyczny przewodnik po NFS pokazuje mapowanie zewnętrznej biblioteki Immich z pamięci współdzielonej. Jego wzorzec montowania biblioteki zewnętrznej jest przydatny do planowania ścieżek i uprawnień, ale nie stanowi dowodu, że baza danych powinna korzystać z NFS.

Trzymaj PostgreSQL na nośniku zalecanym dla baz danych i chroń go za pomocą natywnych zrzutów oraz kopii zapasowych. Jeśli lokalna pamięć na aktywne dane jest ograniczona, przenieś wyłącznie zmierzoną, zajmującą dużo miejsca ścieżkę multimediów i udokumentuj tę granicę, zamiast przenosić cały stan aplikacji.

Zapewnij deterministyczną kolejność montowania udziału zdalnego

Zamontuj udział na hoście, używając jawnych danych uwierzytelniających lub reguł eksportu, stabilnego adresu i zamierzonego trybu odczytu i zapisu. Przed uruchomieniem Immich zweryfikuj oczekiwaną tożsamość systemu plików oraz obecność znanego pliku znacznikowego. Do kontenerów podłącz już zamontowaną ścieżkę hosta.

Skonfiguruj menedżera usług tak, aby Immich czekał na zdalny udział i nie uruchamiał się z pustym katalogiem zastępczym. Rozruch można uznać za udany dopiero wtedy, gdy znacznik jest widoczny w kontenerze, a plik testowy otrzymuje oczekiwanego właściciela; pusty katalog lub plik należący do użytkownika root oznacza bezwzględne zatrzymanie.

Uruchom ponownie komputer raz, gdy udział jest dostępny, i raz, gdy podczas okna serwisowego celowo będzie niedostępny. Pierwszy test kończy się powodzeniem tylko wtedy, gdy znacznik pojawi się przed uruchomieniem Immich; drugi tylko wtedy, gdy Immich zatrzyma się lub wyraźnie zgłosi błąd, zamiast zapisywać dane w pustym lokalnym punkcie montowania.

Potwierdź tożsamość kontenera i uprawnienia udziału

Dopasuj numeryczne identyfikatory użytkownika i grupy na serwerze, kliencie i w kontenerze, a następnie przetestuj tworzenie, zmianę nazwy, odczyt i usuwanie w przeznaczonym do tego folderze tymczasowym. Nie rozwiązuj niezgodności za pomocą globalnych uprawnień do zapisu, które ujawniłyby rodzinną bibliotekę.

Powtórz test pliku tymczasowego z wnętrza kontenera serwera Immich, a nie tylko na hoście. Potwierdź, że NAS widzi zamierzonego właściciela numerycznego i że Immich może ponownie otworzyć plik po odtworzeniu kontenera. Pomyślny test na hoście nie potwierdza poprawności ścieżki w kontenerze.

Jeśli tożsamość lub działanie tworzenia i zmiany nazwy różni się, zatrzymaj się i popraw odpowiednio eksport, montowanie lub mapowanie kontenera. Ponownie wykonaj test przed skanowaniem rzeczywistej biblioteki; szerokie zmiany uprawnień mogą ukryć niezgodność, jednocześnie udostępniając wszystkie rodzinne zdjęcia niepowiązanym usługom.

-15% OFF

Zmierz opóźnienia i przetestuj przerwę w dostępie do udziału

Wykonaj reprezentatywne przesyłanie pliku, generowanie miniatur, przeglądanie osi czasu, pobieranie oryginału i skanowanie biblioteki zewnętrznej, mierząc jednocześnie opóźnienia serwera oraz postęp zadań. Warunkiem zaliczenia jest akceptowalna płynność działania i brak trwałego narastania kolejki; sama przepustowość łącza nie potwierdza wydajności operacji metadanych.

W jednym ze zgłoszeń Immich opisano niespójność bazy danych i plików w instalacji z niestabilnym NFS. Ten ograniczony przypadek awarii NFS uzasadnia traktowanie rozłączeń podczas zapisu jako ryzyka związanego z odzyskiwaniem danych, a nie zakładanie, że NFS zawsze powoduje uszkodzenie Immich.

Podczas okna serwisowego, po wykonaniu kopii zapasowych, przerwij dostęp do udziału multimediów, gdy aktywny jest niekrytyczny test. Immich powinien wyraźnie zgłosić błąd, zamiast zapisywać dane w pustym punkcie montowania. Przywróć udział i potwierdź, że zasób testowy oraz rekord w bazie danych są spójne, bez konieczności wchodzenia w pętlę ponownych uruchomień.

Podejmij decyzję „wdrażać czy nie” po testach ponownego uruchomienia

Uruchom ponownie osobno kontenery i hosta. Potwierdź, że właściwy udział jest montowany jako pierwszy, stare i nowe oryginały otwierają się poprawnie, skanowanie zewnętrznych bibliotek nie duplikuje zasobów, a jeden nowy plik przetrwa kolejne ponowne uruchomienie. Porównanie DAS i NAS firmy ZimaSpace przedstawia kompromis między opóźnieniami a domeną awarii.

Korzystaj z udziału, jeśli te testy zakończą się pomyślnie i monitoring może ostrzegać o jego niedostępności, opóźnieniach, wolnym miejscu oraz presji na liczbę i-węzłów. Wybierz pamięć lokalną lub bezpośrednio podłączoną, gdy sieć albo NAS nie może zapewnić wymaganej dostępności lub gdy nie da się zapobiec uruchamianiu usługi mimo nieudanego montowania.

Wróć do poprzedniej lokalnej ścieżki, jeśli Immich uruchomi się z pustą biblioteką, utworzy pliki należące do użytkownika root lub po przerwaniu dostępu zgłosi błędy brakujących plików. Zgłoś problem, podając protokół, opcje montowania, tożsamości, mapowania ścieżek, opóźnienia i kolejność uruchamiania; nigdy nie wykonuj destrukcyjnego ponownego skanowania, dopóki nie zostanie ustalone, gdzie znajdują się autorytatywne oryginały i jaki jest stan bazy danych.

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.