Come separare i dati dell’app, la cache e i backup di Home Assistant

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Separa i dati dell’app Home Assistant, la cache e i backup decidendo innanzitutto cosa deve sopravvivere a un guasto, cosa può essere ricostruito automaticamente e cosa deve risiedere al di fuori dell’host di Home Assistant. La configurazione persistente e lo stato del database meritano uno storage stabile e un backup; la cache eliminabile e i file temporanei non dovrebbero seguire le stesse regole di conservazione; i backup non dovrebbero dipendere dal disco che dovrebbero consentire di ripristinare.

Il layout più sicuro si basa sui ruoli, non sui nomi delle cartelle. Non spostare una directory nello “storage della cache” solo perché cresce rapidamente. Prima di considerare quei dati eliminabili, verifica se Home Assistant o un servizio complementare ne ha bisogno per la cronologia, l’identità, l’associazione, le credenziali o il ripristino.

Classifica i dati come autorevoli, ricostruibili o copie di ripristino

I dati applicativi autorevoli includono la configurazione di Home Assistant, i segreti, lo stato delle integrazioni, le definizioni delle automazioni e il database o gli altri dati di stato che intendi conservare. I dati ricostruibili includono immagini scaricate, file temporanei, cache dei pacchetti, transcodifiche e indici che un servizio può ricreare senza perdere la configurazione domestica. Le copie di ripristino sono backup ed esportazioni destinate a ricostruire lo stato autorevole dopo un guasto.

Questa classificazione va effettuata per ogni servizio. Home Assistant, MQTT, un database, un proxy inverso e Zigbee2MQTT possono avere ciascuno uno stato persistente diverso. Un’interfaccia di gestione può ricordare la definizione dello stack senza contenere i dati del carico di lavoro; l’articolo perché i backup della gestione dei container possono omettere lo stato del carico di lavoro mostra perché “ho eseguito il backup di Docker” può significare molto meno del previsto.

Mantieni la configurazione di Home Assistant e il database attivo su uno storage stabile

In una distribuzione basata su container, il percorso della configurazione di Home Assistant deve rimanere persistente indipendentemente dall’immagine del container. Se il database del recorder resta in quell’albero di configurazione, è uno stato applicativo attivo, non una cache. Conserva questo stato su un SSD affidabile o su un altro storage a bassa latenza, con spazio libero sufficiente per le normali operazioni sul database e per quelle di ripristino.

L’attività del recorder può generare continue piccole scritture, soprattutto quando molte entità cambiano frequentemente. Una discussione approfondita della community di Home Assistant su come la conservazione del recorder influisce sulla crescita del database è utile perché si concentra sulla riduzione della cronologia non necessaria, invece di nascondere l’attività del database spostando l’intero albero di configurazione su uno storage temporaneo.

Sposta solo la cache e il lavoro temporaneo sicuramente eliminabili

La cache e lo storage temporaneo possono risiedere su un dispositivo scratch veloce separato, su un filesystem dedicato basato sulla memoria o in una directory dedicata con regole di pulizia, ma solo quando perderli è innocuo. Riavvia il servizio interessato dopo aver svuotato una copia di test e verifica che ricostruisca ciò che gli serve. Se il servizio perde associazioni, cronologia, utenti, credenziali o configurazione, quei dati non erano eliminabili.

Separare i dati soggetti a frequenti modifiche può ridurre le scritture e rendere più piccoli i backup, ma non dovrebbe mai nascondere file necessari sotto un mount né creare una dipendenza nascosta dalla RAM. La guida di ZimaSpace su separare la cache e lo storage temporaneo di Home Assistant offre un percorso mirato per identificare i dati ricostruibili prima di modificare i mount.

Conserva i backup in un dominio di guasto diverso

Un backup conservato accanto alla configurazione attiva protegge da una modifica errata, ma non dal guasto dell’SSD, dal furto dell’host, dalla corruzione del filesystem o dal guasto del controller di storage. Copia i backup di Home Assistant su un NAS, un altro server, uno storage rimovibile o una destinazione esterna, in base al tipo di guasto che vuoi poter superare. Conserva la chiave di ripristino o le credenziali in un luogo che resti accessibile quando Home Assistant è fuori servizio.

Anche i backup devono essere internamente coerenti. Gli archivi dei volumi sono utili, ma i servizi con stato potrebbero richiedere un dump coordinato, uno snapshot o una copia eseguita con il servizio arrestato. Un modello indipendente di backup e ripristino di un volume persistente spiega il problema della portabilità, mentre un test di ripristino che dimostra l’utilizzabilità del backup sottolinea che un processo di backup non è verificato finché non riesci a recuperare da esso uno stato utile.

Verifica il layout con prove di eliminazione, riavvio e ripristino

Dopo aver separato i percorsi, verifica ogni ruolo in base a ciò che promette. Svuota una cache eliminabile e conferma che venga ricostruita. Ricrea il container di Home Assistant e verifica che la configurazione persistente rimanga intatta. Riavvia l’host e controlla che i mount siano disponibili prima dell’avvio dei servizi dipendenti. Ripristina un backup recente in una destinazione temporanea e verifica utenti, automazioni, integrazioni e una parte rappresentativa della cronologia o dello stato dei servizi complementari.

Documenta quindi proprietario e permessi. Un percorso perfettamente separato sul disco può comunque non funzionare dopo una migrazione se il nuovo UID/GID del container non può leggerlo. Registra i punti di mount, la proprietà del filesystem, l’inclusione nei backup, la conservazione e il servizio autorizzato a eliminare ogni directory.

Ruolo dei dati Storage tipico Regola di ripristino
Configurazione/database di Home Assistant SSD stabile o pool dei dati applicativi Persistente e sottoposto a backup
Cache/file temporanei eliminabili SSD scratch o storage temporaneo con limiti Deve poter essere ricostruito in sicurezza
Backup Host, supporto o destinazione esterna separati Ripristino verificato
Archivi di grandi dimensioni Storage orientato alla capacità Protetti in base al loro valore

La separazione è riuscita quando l’eliminazione della cache non può distruggere Home Assistant, la ricreazione dei container non può cancellare lo stato dell’applicazione e la perdita del dispositivo principale dei dati applicativi non distrugge l’unica copia di ripristino. I ruoli dello storage dovrebbero rendere evidente il comportamento in caso di guasto prima che si verifichi.

Configurazione NAS e Server

Altro da leggere

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.