Home Assistant powinien korzystać z osobnej bazy danych lub hosta pamięci masowej tylko wtedy, gdy takie rozdzielenie rozwiązuje zmierzony problem z pojemnością, okresem przechowywania danych, kopiami zapasowymi lub domeną awarii. Przeniesienie danych poza host sterujący nie jest automatycznie ulepszeniem.
W wielu domach lokalna baza danych Recorder SQLite na niezawodnym dysku SSD to najprostsze rozwiązanie, ponieważ eliminuje zależności od sieci, uwierzytelniania, DNS i uruchamiania serwera bazy danych. Zanim utworzysz kolejny host, ustal, czy rzeczywistym problemem są nadmierne zapisy Recorder, długi okres przechowywania danych, powolne zapytania o historię, ograniczona pojemność lokalna czy potrzeba niezależnego odzyskiwania jednej usługi.
Dostrój Recorder, zanim dodasz serwer bazodanowy
Przyrost danych Recorder zależy od przechowywanych encji i zdarzeń, częstotliwości ich zmian oraz czasu przechowywania historii. Jeśli większość zapisów generują zaszumione czujniki lub niepotrzebne domeny, przeniesienie tego samego obciążenia na większy serwer bazodanowy zmieni tylko miejsce występowania problemu, zamiast go rozwiązać.
Aktualny proces dostrajania Recorder pokazuje, jak okres przechowywania danych, reguły uwzględniania i wykluczania oraz sposób zatwierdzania transakcji wpływają na obciążenie zapisem, zanim rozważy się migrację bazy danych. Po dostrojeniu zmierz rozmiar bazy danych, czas zapytań o historię, opóźnienia pamięci masowej i aktywność zapisu.
Pozostaw bazę lokalnie, gdy dostrojone obciążenie działa płynnie, tworzenie kopii zapasowych kończy się w oknie serwisowym, a dostępna pojemność dysku SSD jest wystarczająca. Rozdzielenie usług powinno wynikać z niespełnionego wymagania, a nie z ogólnego przekonania, że bazy danych działające w architekturze klient-serwer są zawsze szybsze.
Używaj zewnętrznej bazy danych, gdy jej zalety operacyjne są rzeczywiste
Osobny host MariaDB, MySQL lub PostgreSQL może mieć sens, gdy Home Assistant korzysta ze wspólnej, dobrze zarządzanej platformy bazodanowej, długi okres przechowywania danych powoduje stałe obciążenie zapytań, host sterujący musi pozostać lekki lub łatwy do wymiany albo kopie zapasowe i monitorowanie bazy wymagają niezależnego cyklu życia.
Przykład migracji z SQLite na MariaDB pokazuje nowe elementy, które wiążą się z tym wyborem: usługę bazy danych, dane logowania, adres sieciowy, inicjalizację schematu, procedurę migracji, weryfikację i przywracanie poprzedniego stanu. Obszerniejszy przypadek migracji bazy danych Home Assistant z rzeczywistego wdrożenia pokazuje, dlaczego długa historia i duże zbiory danych mogą uzasadniać dodatkowe czynności administracyjne.
Artykuł ZimaSpace o niezawodności aktualizacji zewnętrznej bazy danych wyznacza odpowiednie granice obowiązków związanych z utrzymaniem: bazę danych należy tworzyć jako kopię zapasową, aktualizować i przywracać jako oddzielną usługę, zamiast traktować ją jak niewidoczną część infrastruktury.
Nie umieszczaj domyślnie aktywnej bazy SQLite na udziale sieciowym
Zdalny serwer bazy danych i plik bazy danych przechowywany w SMB lub NFS to różne architektury. Baza danych w architekturze klient-serwer obsługuje blokowanie i transakcje wewnątrz usługi bazy danych, a żądania przesyła przez sieć. SQLite blokuje pliki bazy danych za pośrednictwem systemu plików, więc semantyka systemu plików w sieci, dostępność montowania, opóźnienia i sposób blokowania mają wpływ na każdą transakcję.
Szersza analiza blokowania w SQLite wyjaśnia, dlaczego systemy plików w sieci mogą powodować blokowanie inne niż na dysku lokalnym. Przypadek awarii na udziale sieciowym w Home Assistant pokazuje praktyczne ryzyko związane z uzależnieniem aktywnej bazy Recorder od zdalnego montowania.
Swobodnie korzystaj z NAS-a do przechowywania kopii zapasowych, eksportów, multimediów i innych danych przeznaczonych do magazynowania w sieci. Jeśli aktywna baza Recorder musi znajdować się na innym urządzeniu, wybierz obsługiwaną bazę danych w architekturze klient-serwer zamiast przenosić plik SQLite do udziału sieciowego.
Oddziel magazyn danych zbiorczych od aktywnego stanu Home Assistant
Nie każdy rozrastający się katalog Home Assistant należy do tej samej warstwy pamięci masowej. Konfiguracja, stan integracji, aktywna baza danych Recorder, multimedia, nagrania z kamer, eksporty i kopie zapasowe mają różne wymagania dotyczące opóźnień i odzyskiwania danych. Przechowuj niewielki, często aktualizowany stan na lokalnej pamięci masowej o niskim opóźnieniu, chyba że zarządza nim celowo osobna usługa.
Przenieś duże zbiory multimediów lub generacje kopii zapasowych na pojemność NAS-a, korzystając ze stabilnych punktów montowania. Udokumentuj, czy Home Assistant może się uruchomić bez tego punktu montowania. Brak archiwum zdjęć nie powinien uniemożliwiać uruchamiania automatyzacji oświetlenia, a brak aktywnej bazy danych powinien powodować jawny stan ograniczonej funkcjonalności, a nie niezauważalny awaryjny powrót do innego trybu.
| Rola danych | Domyślne umiejscowienie | Powód rozdzielenia |
|---|---|---|
| Konfiguracja i aktywny stan | Lokalny SSD | Niskie opóźnienie i proste odzyskiwanie |
| SQLite w Recorder | Lokalny SSD | Unikaj zależności od blokad w sieciowym systemie plików |
| Zewnętrzna baza danych SQL | Lokalna lub na osobnym hoście bazy danych | Niezależne skalowanie, przechowywanie, tworzenie kopii zapasowych i administracja |
| Multimedia i eksporty | Lokalnie lub na NAS-ie | Pojemność często ma większe znaczenie niż opóźnienie |
| Kopie zapasowe | Co najmniej jedna kopia poza hostem | Przetrwaj utratę aktywnego hosta |
Sprawdź uruchamianie, awarie i odtwarzanie, zanim wprowadzisz podział na stałe
Uruchom nową rolę bazy danych lub pamięci masowej w środowisku testowym, nie usuwając dotychczasowej ścieżki odzyskiwania. Uruchom ponownie hosta bazy danych przed Home Assistant, uruchom ponownie Home Assistant, zanim baza danych będzie gotowa, przerwij połączenie sieciowe, zmień dane uwierzytelniające, zapełnij docelowy system plików niemal do progu rezerwy i odtwórz bazę danych w czystej instancji.
Mierz czas zapytań do historii dla p95, opóźnienie automatyzacji podczas intensywnej pracy Recorder, czas ponownego uruchamiania, czas tworzenia kopii zapasowej oraz czas odzyskiwania po awarii hosta bazy danych. Jeśli podział poprawia jeden wskaźnik, ale zmienia trzydziestosekundowe ponowne uruchomienie kontrolera w procedurę odzyskiwania obejmującą wiele usług, uwzględnij ten koszt operacyjny przy podejmowaniu decyzji.
Pozostaw lokalną pamięć masową, jeśli już spełnia wymagania. Użyj osobnego hosta bazy danych, gdy obsługa bazy danych w modelu klient-serwer i niezależne odzyskiwanie danych przynoszą rzeczywiste korzyści. Użyj osobnego hosta pamięci masowej do danych zbiorczych i kopii zapasowych, ale nie uzależniaj krytycznego sterowania lokalnego od zdalnego systemu plików bez sprawdzonego powodu.
Konfiguracja NAS-a i serwera
Więcej do przeczytania

Czy serwer w akademiku może działać na tyle cicho, by nie przeszkadzać podczas snu, nauki i rozmów wideo?
Tak — serwer w akademiku może działać dyskretnie, jeśli sprzęt zużywa mało energii, drgania dysków są kontrolowane, wymagające zadania zaplanowane, a hałas sprawdzony w...

Studenckie domowe laboratorium, które można przenieść z akademika do pierwszego mieszkania
Zapewnij mobilność studenckiego homelabu, oddzielając usługi od sieci przypisanej do konkretnego pokoju, ograniczając liczbę urządzeń, tworząc kopie zapasowe stanu i ćwicząc sprawne przenoszenie.

Jak udostępnić jeden domowy serwer współlokatorom bez współdzielenia kont ani prywatnych plików
Przydziel każdemu współlokatorowi indywidualną tożsamość i prywatną przestrzeń dyskową oraz tylko te role współdzielone, których potrzebuje; oddziel administrację, kopie zapasowe i proces odejścia użytkownika.



