Kan Home Assistant betrouwbaar werken met zijn gegevens op een netwerkschijf?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Home Assistant kan netwerkopslag betrouwbaar gebruiken voor back-ups, media en bepaalde gedeelde bestanden, maar het plaatsen van de actieve configuratiemap of de standaard SQLite-database van Recorder op SMB of NFS is een veel veeleisender ontwerp. De veiligere standaard is lokale persistente opslag voor de actieve status van Home Assistant en een netwerkshare voor gegevens die baat hebben bij externe capaciteit of onafhankelijke back-ups.

Het verschil zit in transactioneel gedrag en de afhankelijkheid tijdens het opstarten. Een back-uparchief kan wachten op de NAS; de configuratie en database van Home Assistant zijn mogelijk nodig voordat de netwerkshare is aangekoppeld of beschikbaar is. Een korte NAS-storing zou een gezonde lokale controller niet moeten veranderen in een lege of beschadigde installatie.

Scheid back-up- en mediashares van de actieve applicatiestatus

Begin met vaststellen wat je wilt verplaatsen. Back-uparchieven en mediabestanden zijn van nature geschikt voor een NAS, omdat het grote, overdraagbare objecten zijn die niet voortdurend door Home Assistant Core geopend hoeven te worden voor transactionele schrijfbewerkingen.

De actieve applicatiestatus is anders. De configuratiestructuur bevat door de interface beheerde opslag en andere bestanden die Home Assistant tijdens normaal gebruik moet lezen en bijwerken, terwijl Recorder voortdurend status- en gebeurtenisgeschiedenis wegschrijft.

Het ZimaSpace-voorbeeld van een privécloud scheidt Herstel van Home Assistant van bulk-NAS-opslag. Dat is hier de nuttige architectuur: netwerkcapaciteit kan onafhankelijk meegroeien zonder dat elke besturingsactie afhankelijk wordt van de opslagshare.

SQLite voegt vereisten voor vergrendeling en consistentie toe

De standaarddatabase van Home Assistant Recorder is SQLite. Die database verwacht bestandssysteemgedrag dat eenvoudig op lokale opslag te bieden is, maar minder voorspelbaar wordt bij netwerkbestandssystemen, verbroken verbindingen en verschillende implementaties van aankoppelingen.

SQLite is niet ontworpen als databaseserver op een netwerk, en vergrendeling via netwerkbestandssystemen kan onbetrouwbaar of onvolledig zijn, afhankelijk van het platform. Daardoor vormt een extern SQLite-bestand een ander risico dan simpelweg media lezen via SMB.

Als je een database op een andere host nodig hebt, gebruik dan een ondersteunde client-serverdatabase en accepteer de operationele verantwoordelijkheid die bij die externe afhankelijkheid hoort. Ga er niet van uit dat het verplaatsen van alleen het SQLite-bestand dezelfde architectuur oplevert.

Het moment van aankoppelen kan het opstarten verstoren, ook als de share later wel werkt

Een netwerkshare kan schrijfbaar zijn zodra het systeem volledig is opgestart, maar toch niet beschikbaar zijn wanneer Home Assistant de database of configuratie voor het eerst nodig heeft. Dat veroorzaakt een probleem met de opstartvolgorde dat een latere handmatige schrijftest niet kan opsporen.

Een Home Assistant-gebruiker die Recorder SQLite op SMB had geplaatst, zag bestanden met een grootte van nul bytes en beschadigde databases tijdens het opstarten, ook al kon er vanaf de host naar de share worden geschreven. In de discussie werden specifiek het moment van aankoppelen en de geschiktheid van SQLite op een netwerkshare genoemd.

Test een koude start, een herstart van de host, een herstart van de NAS en een tijdelijke uitval van de share. Een ontwerp dat pas werkt nadat je de NAS handmatig opnieuw hebt aangekoppeld, is niet betrouwbaar genoeg voor bediening van het hele huis.

Netwerklatentie kan de geschiedenis vertragen zonder de bediening te verstoren

IO naar een externe database of configuratie voegt netwerklatentie toe aan kleine lees- en schrijfbewerkingen. Dat kan zich eerst uiten in trage geschieden grafieken, databaseonderhoud of het opstarten, in plaats van in mislukte automatiseringen.

In een Home Assistant-deployment op Kubernetes werd gemeld dat SQLite via NFS en een extern SQL-pad tot slechte databaseprestaties leidden, waarna de auteur het actieve databasepad dichter bij de Home Assistant-workload plaatste.

Meet het specifieke probleem. Als lokale bediening snel blijft terwijl de geschiedenis traag is, beïnvloedt het databasepad waarschijnlijk historische functies en niet de fysieke automatisering zelf. Als de share ook essentiële configuratie bevat, kan een storing de fout uitbreiden naar de volledige service.

Kies voor lokale status en netwerkback-ups op een kleine server

Houd op de meeste thuisservers /config en de standaard SQLite-database op een betrouwbare lokale SSD of een ander persistent apparaat. Stuur back-ups naar de NAS, bewaar media daar en gebruik netwerkshares voor grote gegevens die baat hebben bij centrale capaciteit.

Deze scheiding is eenvoudiger te diagnosticeren: lokale databaselatentie hoort bij de Home Assistant-host, terwijl een ontbrekende back-up of een ontbrekend mediabestand bij het NAS-pad hoort. Het netwerk blijft nuttig zonder een synchrone afhankelijkheid te worden voor elke statuswijziging.

Verplaats de actieve status alleen naar externe opslag wanneer de share, de volgorde van aankoppelen, de vergrendelingssemantiek, de latentie, het gedrag bij storingen en het herstelpad allemaal zijn getest bij een koude start en tijdelijk netwerkverlies.

Veelgestelde vragen

Is een NAS een goede plek voor back-ups van Home Assistant?

Ja. Een NAS is vaak een goede onafhankelijke bestemming voor back-uparchieven, vooral wanneer de kopie behouden blijft bij een defect aan de systeemschijf van Home Assistant. Bewaar nog een kopie elders als de NAS en de Home Assistant-host nog steeds hetzelfde fysieke storingsdomein delen.

Moet ik de standaard SQLite-database van Home Assistant rechtstreeks op SMB of NFS plaatsen?

Meestal niet. Houd SQLite op betrouwbare lokale opslag, tenzij je een specifieke, geteste reden hebt om hiervan af te wijken. Als de database extern moet staan, is een ondersteunde client-serverdatabase een betere architectuur dan het SQLite-bestand behandelen als een gewoon netwerkdocument.

Ondersteuning & Tips

Meer om te lezen

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.