Dane trwałe Home Assistant łatwiej obsługiwać, gdy są podzielone według ról, zamiast traktować je jako jeden niepodzielny „config”. Część stanu definiuje tożsamość i sposób działania inteligentnego domu, część przechowuje dane historyczne, część zawiera dane uwierzytelniające, a część służy wyłącznie do odtworzenia środowiska uruchomieniowego Home Assistant.
Te role mają znaczenie, ponieważ różnią się wartością w procesie odzyskiwania. Utrata miesiąca historii to nie to samo co utrata rejestru encji, a odtworzenie obrazu Dockera to nie to samo co ponowne utworzenie mapowań urządzeń, sekretów lub konfiguracji, która nadaje gospodarstwu domowemu jego automatyzacje.
Konfiguracja i stan rejestrów definiują instalację
Trwałe drzewo konfiguracji zawiera pliki YAML, dane zarządzane z poziomu interfejsu, konfigurację integracji, pulpity, pomocniki, rejestry urządzeń i encji, komponenty niestandardowe oraz inne pliki, które odróżniają daną instancję Home Assistant od czystej instalacji.
Trwałość kontenera zależy od przechowywania stanu poza zapisywalną warstwą kontenera. Aktualne wytyczne Dockera dotyczące przechowywania danych wyjaśniają, że wolumeny i montowania wiązań zachowują dane aplikacji niezależnie od cyklu życia kontenera. Obraz można odtworzyć, ale nie można zakładać, że stan charakterystyczny dla danego gospodarstwa domowego pojawi się ponownie.
Ta rola wymaga ostrożnego tworzenia kopii zapasowych, kontrolowanej migracji i znanej ścieżki przywracania. Nie powinna podlegać tej samej polityce czyszczenia co pamięć podręczna ani jednorazowe warstwy kontenerów.
Historia rejestratora to cenne dane, ale nie to samo co konfiguracja
Rejestrator przechowuje historyczne stany, zdarzenia i statystyki używane przez Historię, Dziennik, pulpity oraz analizy. Dane te mogą być ważne, szczególnie w przypadku energii, trendów środowiskowych lub rozwiązywania problemów, ale Home Assistant nadal może przedstawiać bieżący stan bez przechowywania nieograniczonej ilości surowej historii.
Oddzielenie historii od tożsamości zmienia decyzje dotyczące odzyskiwania. Uszkodzona lub nadmiernie rozrośnięta baza danych rejestratora może uzasadniać jej naprawę, przywrócenie, a nawet ponowne utworzenie historii bez odrzucania sprawnych automatyzacji i konfiguracji integracji.
Dane historyczne wymagają własnego cyklu życia: częstotliwość próbkowania, przechowywanie, agregacje, indeksy i generacje kopii zapasowych niezależnie określają wzrost zajętości miejsca, niezależnie od liczby reguł automatyzacji. Decyzje dotyczące przechowywania traktuj oddzielnie od konfiguracji i stanu rejestrów definiujących instalację.
Sekrety i klucze odzyskiwania podlegają innym zasadom awarii
Dane uwierzytelniające, tokeny, certyfikaty, klucze szyfrujące i awaryjne materiały odzyskiwania mogą zajmować niewiele miejsca, ale mieć ogromną wartość w procesie odzyskiwania. Kopia zapasowa, której nie można odszyfrować, lub przywrócona integracja bez prawidłowych danych uwierzytelniających może pozostawić system częściowo niedziałający.
Strategia tworzenia kopii zapasowych Home Assistant wyraźnie zaleca przechowywanie zaszyfrowanych kopii odzyskiwania na różnych nośnikach oraz w lokalizacji zewnętrznej. Ochrona ta jest przydatna tylko wtedy, gdy klucz wymagany do przywrócenia kopii jest również dostępny po utracie hosta.
Nie umieszczaj wszystkich sekretów w publicznym repozytorium Git tylko dlatego, że konfiguracja jest wersjonowana. Przechowuj materiały sekretne za pomocą chronionego mechanizmu i udokumentuj, skąd można je odzyskać.
Definicja środowiska uruchomieniowego odtwarza środowisko wokół stanu
Przywrócone drzewo konfiguracji może nadal nie działać, jeśli host zastępczy nie odtworzy mapowania radia USB, trybu sieciowego, portów, ścieżek hosta, usługi bazy danych, brokera MQTT, zmiennych środowiskowych, strefy czasowej lub uprawnień oczekiwanych przez pierwotne wdrożenie.
Wytyczne Home Assistant Container oddzielają aktualizacje od trwałego stanu i zakładają, że środowisko uruchomieniowe jest odtwarzane na podstawie znanych parametrów Dockera. Aktualny proces pracy z kontenerem utrzymuje kopię zapasową i wymianę obrazu jako odrębne operacje, co jest tym samym rozdzieleniem, które powinien zachować plan odzyskiwania.
Przechowuj pliki Compose lub równoważne definicje wdrożenia razem z dokumentacją usług zewnętrznych. Konfiguracja środowiska uruchomieniowego nie jest bazą danych Home Assistant, ale stanowi część odtwarzania działającej usługi.
Kopie zapasowe służą do odzyskiwania, a nie są kolejną rolą aktywnych danych
Kopia zapasowa powinna przetrwać awarię, z której ma umożliwić odzyskanie danych. Jeśli każda kopia zapasowa znajduje się na tym samym dysku SSD systemu co aktywna konfiguracja i baza danych rejestratora, jedna awaria nośnika może jednocześnie usunąć wszystkie trzy role.
Kopie odzyskiwania powinny również przetrwać utratę hosta Home Assistant. Model kopii zapasowych 3-2-1 przechowuje wiele kopii na różnych nośnikach, z czego co najmniej jedna znajduje się poza lokalizacją. W przypadku zaszyfrowanych kopii zapasowych Home Assistant zestaw awaryjny lub odpowiedni klucz również musi pozostać dostępny poza uszkodzonym systemem.
- Konfiguracja i rejestry: przywracaj je lub ostrożnie naprawiaj, ponieważ definiują tożsamość i sposób działania automatyzacji.
- Rejestrator i statystyki: naprawiaj, przywracaj lub odbudowuj niezależnie, gdy uszkodzona jest wyłącznie historia.
- Sekrety i klucze: odzyskuj z chronionego magazynu znajdującego się poza uszkodzonym hostem.
- Definicja środowiska uruchomieniowego: odtwarzaj montowania, urządzenia, sieć i zależności usług.
- Kopie zapasowe: przechowuj kopie odzyskiwania poza domeną aktywnej awarii.
Przykład wdrożenia Home Assistant w ZimaSpace stanowi przydatny kontekst dla tego rozdzielenia: platforma serwerowa może się zmienić, podczas gdy stan aplikacji i obowiązki związane z odzyskiwaniem pozostają logicznie odrębne.
Role danych trwałych mają znaczenie, ponieważ pozwalają naprawiać najmniejszą uszkodzoną warstwę. Problem z bazą danych nie musi oznaczać czystej instalacji, a aktualizacja kontenera nie musi prowadzić do utraty konfiguracji.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego Home Assistant działa inaczej w sieci lokalnej i przy połączeniach zdalnych?
Sesje Home Assistant w sieci LAN i zdalne korzystają z różnych ścieżek sieciowych; opóźnienie zdalne obejmuje DNS, szyfrowanie, sieć WAN, serwer proxy lub VPN...

Czy Home Assistant działa niezawodnie za CGNAT-em lub podwójnym NAT-em?
CGNAT i podwójny NAT zazwyczaj nie wpływają na lokalne sterowanie Home Assistantem; zmieniają głównie sposób, w jaki zdalni klienci mogą utworzyć ścieżkę przychodzącą do...

Jak opóźnienie sieci wpływa na działanie Home Assistant podczas awarii Internetu?
Utrata dostępu do Internetu i opóźnienia sieciowe to różne awarie: lokalne ścieżki urządzeń mogą nadal działać szybko, podczas gdy DNS, integracje z chmurą, bramy...

