Ricerca nel sito web

Proteggi il tuo Home Assistant con questi backup


Assicurati di poter recuperare rapidamente da un guasto della domotica con un solido piano di backup e hardware nel settimo articolo di questa serie.

Negli ultimi due articoli di questa serie sull'automazione domestica con Home Assistant (HA), ho illustrato la configurazione di alcune integrazioni con un Bridge Zigbee e alcuni dispositivi ESP8266 personalizzati che utilizzo per l'automazione. I primi quattro articoli della serie hanno discusso di cos'è Home Assistant, del motivo per cui potresti volere il controllo locale, di alcuni protocolli di comunicazione per i componenti della casa intelligente e di come installare Home Assistant in una macchina virtuale (VM) utilizzando libvirt.

Ora che hai una configurazione di base della domotica, è il momento giusto per prendere una linea di base del tuo sistema. In questo settimo articolo parlerò di istantanee, backup e strategie di backup. Entriamo subito nel vivo.

Backup e copie

Inizierò chiarendo alcune ambiguità: una copia di qualcosa non è la stessa cosa di un backup. Ecco una breve panoramica della differenza tra una copia e un backup. Tieni presente che questo proviene dall'obiettivo di un professionista IT. Lavoro con i dati dei clienti giorno dopo giorno. Ho visto molti modi in cui i backup possono andare di traverso, quindi le seguenti descrizioni potrebbero essere eccessive per l'uso domestico. Dovrai decidere quanto siano realmente importanti i dati del tuo Home Assistant.

  • Copie: una copia è proprio quello che sembra. È quando evidenzi qualcosa sul tuo computer, premi Ctrl+C e lo incolli altrove con Ctrl+V . Molte persone potrebbero considerare questo come un backup della fonte e, in una certa misura, questo è vero. Tuttavia, una copia è semplicemente una rappresentazione di un punto nel tempo. Se viene preso in modo errato, il file appena creato può essere danneggiato, generando un falso senso di sicurezza. Inoltre, la fonte potrebbe avere un problema, il che significa che anche la copia avrà un problema. Se si dispone di una sola copia di un file, spesso equivale a non avere nulla. Quando si parla di backup, il detto "uno è nessuno" è assolutamente vero. Se non disponi di file che tornano indietro nel tempo, non avrai una buona idea se il sistema che crea i backup ha un problema.
  • Backup e istantanee: in Home Assistant, è un po' complicato distinguere tra una copia e un backup. Innanzitutto, Home Assistant utilizza il termine "istantanea" per riferirsi a ciò che tradizionalmente pensiamo dei backup. In questo contesto, un backup è molto simile a una copia perché non si utilizza alcun tipo di software di backup, almeno non nel senso tradizionale. Normalmente, il software di backup è progettato specificamente per recuperare tutti i file nascosti o altrimenti protetti. Ad esempio, il software di backup per un computer (come CloneZilla) crea una replica esatta (in alcuni casi) del disco rigido per garantire che nessun file venga perso. Home Assistant sa come creare istantanee e lo fa per te. Devi solo preoccuparti di archiviare i file da qualche parte.

Imposta una buona strategia di backup

Prima di scoprire come gestire le istantanee in Home Assistant, voglio condividere una breve storia di un cliente recente. Ricordi quando ho detto che avere semplicemente una singola copia dei tuoi file non ti dà alcuna indicazione che si sia verificato un problema? Il mio cliente stava facendo tutte le cose giuste per quanto riguarda i backup. Il team utilizzava la metodologia corretta per i backup, conservava più file risalenti a un certo periodo di tempo, si assicurava che ci fossero più di due copie di ciascun backup ed era particolarmente attento che i backup non venissero archiviati localmente sulla macchina di cui veniva eseguito il backup. Sembra fantastico, vero? Stavano facendo tutto bene. Be 'quasi. L'unica cosa che hanno trascurato è stata testare i backup. La maggior parte delle persone lo rimanda o lo ignora del tutto. Ammetto di essere colpevole di non testare frequentemente i miei backup. Lo faccio quando ricordo, che di solito avviene una volta ogni pochi mesi circa.

Nel caso del mio cliente, un aggiornamento del software ha creato un nuovo requisito dal programma di backup. Questo è mancato. I backup continuavano a funzionare e i controlli automatizzati venivano superati. Dopo ogni esecuzione di backup erano presenti file di dimensioni superiori a una certa quantità e i controlli magici dei file hanno segnalato il tipo di file corretto. Il problema era che le dimensioni dei file si erano ridotte notevolmente a causa della modifica del software. Ciò significava che il client non stava eseguendo il backup dei dati che pensava.

Questa storia ha un lieto fine, il che mi porta al punto: poiché il cliente stava facendo tutto il resto nel modo giusto, abbiamo potuto esaminare i backup e identificare il momento preciso in cui qualcosa è cambiato. Da ciò, lo abbiamo collegato alla data di un aggiornamento alcune settimane fa. Fortunatamente non c’è stata alcuna emergenza che abbia fatto precipitare le indagini. Stavo facendo un audit standard quando ho scoperto la discrepanza.

La morale della storia? Senza adeguate strategie di backup, avremmo avuto molte più difficoltà a rintracciare questo problema. Inoltre, in caso di guasto, non avremmo avuto alcun punto di ripristino.

Una buona strategia di backup prevede solitamente backup giornalieri, settimanali e mensili. Ad esempio, potresti decidere di conservare tutti i backup giornalieri per due settimane, quattro backup settimanali e forse quattro backup mensili. Questo, a mio parere, è eccessivo per Home Assistant dopo aver avuto una configurazione stabile. Dovrai scegliere il livello di precisione di cui hai bisogno. Eseguo un backup prima di apportare qualsiasi modifica al sistema. Questo mi dà una situazione nota e buona a cui tornare.

Crea istantanee

Ottimo, quindi come si crea un'istantanea in Home Assistant? Il menu Istantanee si trova nella scheda Supervisore nel riquadro delle dimensioni di sinistra.

(Steve Ovens, CC BY-SA 4.0)

Hai due opzioni per creare un'istantanea: Istantanea completa o Istantanea parziale. Uno snapshot completo è autoesplicativo. Hai alcune opzioni con un'istantanea parziale.

(Steve Ovens, CC BY-SA 4.0)

Qualsiasi componente installato in Home Assistant verrà popolato in questo menu. Scegli un nome per il backup e fai clic su Crea. Questa operazione richiederà del tempo, a seconda della velocità del disco e della dimensione del backup. Ti consiglio di mantenere almeno quattro backup sul tuo computer se puoi permetterti lo spazio.

(Steve Ovens, CC BY-SA 4.0)

Puoi recuperare questi file da Home Assistant con File Browser se configuri l'estensione Condivisione Samba.

(Steve Ovens, CC BY-SA 4.0)

Salva questi file in un posto sicuro. Il nome assegnato al backup è contenuto nei metadati all'interno di Home Assistant e i nomi dei file vengono generati in modo casuale. Dopo averli copiati in una posizione diversa, di solito li rinomino perché quando provo il processo di ripristino su un computer diverso, il nuovo nome del file non ha importanza.

La mia strategia homelab

Eseguo la mia istanza di Home Assistant su KVM su un host Linux. Ho ricevuto alcune richieste per entrare più nel dettaglio in merito, quindi sentitevi liberi di saltare questa sezione poiché non è direttamente correlata all'HA.

A causa della natura del mio lavoro, dispongo di una varietà abbastanza ampia di hardware, che utilizzo per un laboratorio casalingo. A volte ciò è dovuto al fatto che è più facile lavorare con gli host fisici rispetto alle macchine virtuali per determinati software di clustering. Altre volte, ciò accade perché mantengo i carichi di lavoro isolati su hardware specifico. In ogni caso, ciò significa che ho già acquisito una certa conoscenza sulla gestione e l'utilizzo di KVM. Per non parlare del fatto che utilizzo quasi esclusivamente software open source (con poche eccezioni). Ecco un layout di base del mio homelab:

(Steve Ovens, CC BY-SA 4.0)

Il NAS (Network-Attached Storage) dispone di due schede di rete da 10 GB che alimentano le porte di uplink. Due host KVM dispongono di schede di interfaccia di rete (NIC) da 10 GB, mentre gli host a destra dispongono di normali schede di rete da 1 GB.

Per Home Assistant, questo è un territorio eccessivo. Tuttavia, questa infrastruttura non è stata progettata per l'alta disponibilità. HA funziona perfettamente su un Raspberry Pi 4 (versione da 4 GB) a casa dei miei genitori.

La VM che ospita Home Assistant ha tre core vCPU di una CPU Broadwell Core I5 (circa 2015) con 8 GB di RAM. L'utilizzo della CPU tende a rimanere intorno al 25% e raramente utilizzo più di 2,2 GB di RAM. Questo con 11 componenti aggiuntivi, inclusi InfluxDB e Grafana, che sono applicazioni più pesanti.

Sebbene disponga di spazio di archiviazione condiviso, non lo utilizzo per la migrazione in tempo reale o qualcosa di simile. Lo utilizzo invece per l'archiviazione backend per punti di montaggio specifici in una VM. Ad esempio, memorizzo la directory data da Nextcloud sul NAS, separando i dati dal servizio.

In ogni caso, ho alcuni approcci ai backup con questa configurazione. Naturalmente utilizzo la funzione di snapshot di Home Assistant per fornire il primo livello di protezione. Tendo a memorizzare solo quattro settimane di dati sulla VM. Cosa faccio con i file stessi? Ecco un diagramma di come cerco di mantenere i miei backup al sicuro:

(Steve Ovens, CC BY-SA 4.0)

Utilizzando il componente aggiuntivo Samba, inserisco una copia dello snapshot sul mio desktop GNOME. Configuro Nextcloud utilizzando le impostazioni Account online di GNOME.

(Steve Ovens, CC BY-SA 4.0)

Nextcloud ne prende una copia e la inserisce nel mio NAS. Sia il mio desktop che il NAS utilizzano i client SpiderOak One Backup per garantire che i backup siano collegati a più di un host. Nell'improbabile caso in cui elimino un dispositivo dal mio account SpiderOak, il file è ancora collegato a un altro dispositivo. Ho scelto SpiderOak perché supporta un client Linux, è incentrato sulla privacy e non ha informazioni su quali file archivia. I file vengono crittografati prima di essere caricati e solo il proprietario ha la possibilità di decrittografarli. Lo svantaggio è che se perdi o dimentichi la password, perdi i tuoi backup.

Infine, conservo una copia fredda su un disco rigido esterno. Ho un'unità esterna da 14 TB che rimane spenta e disconnessa dal NAS tranne quando sono in esecuzione i backup. Non è sul diagramma, ma occasionalmente lo replico anche su un computer a casa dei miei suoceri.

Posso anche scattare istantanee della VM durante operazioni critiche (come il recente aggiornamento di Home Assistant dall'utilizzo di un rilascio puntuale numerato a un sistema di numerazione basato su mese).

Utilizzo una pipeline simile per la maggior parte delle cose di cui eseguo il backup, anche se riconosco che è un po' eccessivo. Inoltre, l'intero processo ha il difetto di dipendere da me. A parte SpiderOak e Nextcloud, non ho automatizzato questo processo. Ho degli script che eseguo, ma non li eseguo in un cron o qualcosa del genere. Col senno di poi forse dovrei lavorare su questo.

Questa configurazione può essere considerata estrema, ma il controllo delle versioni integrato in Nextcloud e SpiderOak, insieme alla creazione di copie in più posizioni, significa che è improbabile che subisca un errore dal quale non riesco a recuperare. Per lo meno, dovrei essere in grado di trovare un riferimento vicino.

Come precauzione finale, mi assicuro di conservare le informazioni importanti su come ho impostato le cose sulla mia wiki privata su Wiki.js. Tengo una sezione solo per la domotica.

(Steve Ovens, CC BY-SA 4.0)

Quando inizierai a creare automazioni Node-RED (nel prossimo articolo), ti suggerisco di tenere i tuoi appunti. Prendo uno screenshot del flusso, scrivo una breve descrizione, quindi so cosa stavo tentando di ottenere e scarico il flusso su JSON (per brevità, ho omesso JSON da questo screenshot):

(Steve Ovens, CC BY-SA 4.0)

Avvolgendo

I backup sono essenziali quando utilizzi Home Assistant, poiché è un componente fondamentale della tua infrastruttura che deve essere sempre funzionante. Sono accettabili tempi di inattività ridotti, ma la capacità di ripristinare rapidamente un guasto è fondamentale. Certo, ho trovato Home Assistant solido come una roccia. Non ha mai fallito da solo; tutti i problemi che ho avuto erano esterni all'HA. Tuttavia, se hai intenzione di rendere l'HA una parte centrale della tua casa, ti consiglio vivamente di mettere in atto una buona strategia di backup.

Nel prossimo articolo darò un'occhiata alla configurazione di alcune semplici automazioni con Node-RED. Come sempre, lascia un commento qui sotto se hai domande, idee o suggerimenti su argomenti che vorresti vedere trattati.

Articoli correlati: