Home Assistant kann Netzwerkspeicher zuverlässig für Backups, Medien und einige gemeinsam genutzte Dateien verwenden. Das Live-Konfigurationsverzeichnis oder die standardmäßige SQLite-Recorder-Datenbank auf SMB oder NFS zu legen, ist jedoch eine deutlich anspruchsvollere Konstruktion. Die sicherere Standardeinstellung ist lokaler dauerhafter Speicher für den aktiven Home-Assistant-Zustand und eine Netzwerkfreigabe für Daten, die von remote bereitgestellter Kapazität oder unabhängigen Backups profitieren.
Der Unterschied liegt im Transaktionsverhalten und in der Startabhängigkeit. Ein Backup-Archiv kann auf das NAS warten; die Home-Assistant-Konfiguration und die Datenbank werden möglicherweise benötigt, bevor die Netzwerkfreigabe eingebunden oder verfügbar ist. Ein kurzer NAS-Ausfall sollte einen funktionierenden lokalen Controller nicht in eine leere oder beschädigte Installation verwandeln.
Backup- und Medienfreigaben vom aktiven Anwendungszustand trennen
Beginnen Sie damit, festzulegen, was Sie verschieben möchten. Backup-Archive und Mediendateien eignen sich von Natur aus für ein NAS, da sie große, übertragbare Objekte sind und von Home Assistant Core nicht kontinuierlich für Transaktionsschreibvorgänge geöffnet werden müssen.
Der aktive Anwendungszustand ist etwas anderes. Der Konfigurationsbaum umfasst UI-verwalteten Speicher und weitere Dateien, die Home Assistant während des normalen Betriebs lesen und aktualisieren muss, während Recorder kontinuierlich Zustands- und Ereignisverläufe schreibt.
Das ZimaSpace-Beispiel für eine private Cloud trennt die Wiederherstellung von Home Assistant vom zentralen NAS-Speicher. Genau das ist hier die sinnvolle Architektur: Die Netzwerkkapazität kann unabhängig wachsen, ohne jede Steueraktion von der Speicherfreigabe abhängig zu machen.
SQLite bringt Anforderungen an Sperrung und Konsistenz mit sich
Die standardmäßige Home-Assistant-Recorder-Datenbank ist SQLite. Diese Datenbank erwartet ein Dateisystemverhalten, das sich auf lokalem Speicher leicht bereitstellen lässt, über Netzwerkdateisysteme, bei Verbindungen und je nach Einbindungsimplementierung jedoch weniger vorhersehbar ist.
SQLite ist nicht als Netzwerk-Datenbankserver konzipiert, und die Sperrung über Netzwerkdateisysteme kann je nach Plattform unzuverlässig oder unvollständig sein. Dadurch unterscheidet sich eine entfernte SQLite-Datei grundlegend vom bloßen Lesen von Medien über SMB.
Wenn Sie eine Datenbank auf einem anderen Host benötigen, verwenden Sie eine unterstützte Client-Server-Datenbank und übernehmen Sie die damit verbundene betriebliche Verantwortung. Gehen Sie nicht davon aus, dass das Verschieben der SQLite-Datei selbst dieselbe Architektur ergibt.
Der Zeitpunkt der Einbindung kann den Start verhindern, selbst wenn die Freigabe später funktioniert
Eine Netzwerkfreigabe kann beschreibbar sein, sobald das System vollständig gestartet ist, aber dennoch nicht verfügbar sein, wenn Home Assistant erstmals die Datenbank oder Konfiguration benötigt. Dadurch entsteht ein Startreihenfolgeproblem, das ein späterer manueller Schreibtest nicht erkennen kann.
Ein Home-Assistant-Nutzer, der die Recorder-SQLite-Datenbank auf SMB abgelegt hatte, sah beim Start Dateien mit null Byte sowie beschädigte Datenbanken, obwohl die Freigabe vom Host aus beschrieben werden konnte. In der Diskussion wurden ausdrücklich der Zeitpunkt der Einbindung und die Eignung von SQLite auf einer Netzwerkfreigabe thematisiert.
Testen Sie einen Kaltstart, den Neustart des Hosts, den Neustart des NAS und einen vorübergehenden Ausfall der Freigabe. Eine Konstruktion, die erst nach dem manuellen erneuten Einbinden des NAS funktioniert, ist für die Steuerung des gesamten Hauses nicht zuverlässig genug.
Netzwerklatenz kann den Verlauf verlangsamen, ohne die Steuerung zu beeinträchtigen
Eine entfernte Datenbank oder Konfigurations-E/A fügt kleinen Lese- und Schreibvorgängen Netzwerklatenz hinzu. Das kann sich zunächst durch langsame Verlaufsdiagramme, Datenbankwartung oder einen verzögerten Start bemerkbar machen, statt durch fehlgeschlagene Automatisierungen.
Bei einer Home-Assistant-Kubernetes-Bereitstellung wurde berichtet, dass SQLite über NFS und ein entfernter SQL-Pfad eine schlechte Datenbankreaktionsfähigkeit verursachten. Daraufhin verlegte der Autor den aktiven Datenbankpfad näher an die Home-Assistant-Workload.
Messen Sie das konkrete Problem. Wenn die lokale Steuerung weiterhin schnell ist, der Verlauf jedoch langsam lädt, beeinträchtigt der Datenbankpfad wahrscheinlich die historischen Funktionen und nicht die eigentliche Automatisierung. Wenn die Freigabe außerdem kritische Konfigurationsdateien enthält, kann ein Ausfall den Fehler auf den gesamten Dienst ausweiten.
Für einen kleinen Server lokalen Zustand und Netzwerk-Backups bevorzugen
Halten Sie bei den meisten Heimservern /config und die standardmäßige SQLite-Datenbank auf einer zuverlässigen lokalen SSD oder einem anderen dauerhaften Speichergerät. Senden Sie Backups an das NAS, speichern Sie Medien dort und verwenden Sie Netzwerkfreigaben für große Datenmengen, die von zentraler Kapazität profitieren.
Diese Aufteilung ist leichter zu diagnostizieren: Die Latenz der lokalen Datenbank gehört zum Home-Assistant-Host, während ein fehlendes Backup oder eine fehlende Mediendatei zum NAS-Pfad gehört. Das Netzwerk bleibt nützlich, ohne für jeden Zustandsschreibvorgang zu einer synchronen Abhängigkeit zu werden.
Verschieben Sie den aktiven Zustand nur dann auf einen entfernten Speicher, wenn Freigabe, Einbindungsreihenfolge, Sperrsemantik, Latenz, Fehlerverhalten und Wiederherstellungspfad bei einem Kaltstart und einem vorübergehenden Netzwerkausfall vollständig getestet wurden.
FAQ
Ist ein NAS ein geeigneter Ort für Home-Assistant-Backups?
Ja. Ein NAS ist häufig ein gutes unabhängiges Ziel für Backup-Archive, insbesondere wenn die Kopie den Ausfall des Systemlaufwerks von Home Assistant übersteht. Bewahren Sie eine weitere Kopie an einem anderen Ort auf, wenn NAS und Home-Assistant-Host weiterhin dieselbe physische Fehlerdomäne teilen.
Sollte ich die standardmäßige Home-Assistant-SQLite-Datenbank direkt auf SMB oder NFS ablegen?
In der Regel nicht. Lassen Sie SQLite auf einem zuverlässigen lokalen Speicher, sofern es keinen konkreten, getesteten Grund für eine andere Lösung gibt. Wenn die Datenbank entfernt liegen muss, ist eine unterstützte Client-Server-Datenbank eine sauberere Architektur, als die SQLite-Datei wie ein gewöhnliches Netzwerkdokument zu behandeln.
Support & Tipps
Mehr zum Lesen

Solltest du Home Assistant im laufenden Betrieb sichern oder zuerst den Dienst stoppen?
Integrierte Home-Assistant-Backups können im laufenden Betrieb ausgeführt werden; einfache Dateisystemkopien sollten Home Assistant anhalten oder in einen Ruhezustand versetzen, sofern die Datenbank nicht konsistent...

Warum läuft ein Home-Assistant-Server während der Leerlaufzeiten heiß oder laut?
Gleiche Lüfter- oder Temperaturspitzen in Home Assistant zunächst mit Recorder, Backups, Integrationen und parallel ausgeführten Aufgaben ab, bevor du die Kühlung oder CPU-Limits änderst.

Wann sollten Sie Home Assistant neu aufsetzen, statt es zu reparieren?
Reparieren Sie zuerst die kleinste ausgefallene Home-Assistant-Ebene, stellen Sie als Nächstes einen bekannten funktionierenden Zustand wieder her und bauen Sie nur dann neu auf,...

