Domotica - Usare un SSD con Home Assistant

Posted by RedBlue on June 14, 2021 · 6 mins read

Nuovo capitolo della serie dedicata alla domotica, oggi vedremo come usare un SSD con Home Assistant.

A questo punto, dovremmo avere un Raspberry Pi dedicato esclusivamente ad Home Assistant, in grado di effettuare snapshots (backup) automatici del sistema su Google Drive.

Il sistema funziona già, ma credo sia necessario un passaggio in più, ovvero aggiungere un disco SSD per evitare di mandare in crisi la micro SD collegata al Raspberry.

In linea di massima, una micro SD è un tipo di memoria affidabile, basti pensare a cellulari, fotocamere etc., che di certo non soffrono particolarmente l'usura del tempo.

Ma nel caso di Home Assistant, vengono effettuate anche migliaia di scritture al minuto, e questo può compromettere la micro SD, non pensata per uno stress simile.

In rete ci sono innumerevoli guide per usare un SSD con Home Assistant al posto della micro SD, ma leggiamo questa FAQ sul sito ufficiale:

Due to the complexity of USB and the USB mass storage device class booting from a USB device is brittle. 

...

Due to this, it is recommended to boot Home Assistant OS from an SD card and use a USB attached flash drive as data partition only

In sostanza, gli sviluppatori consigliano di avviare il sistema da micro SD (quindi sostanzialmente effettuando letture) e spostare su SSD la partizione dati, nella quale Home Assistant scrive continuamente.



Ho deciso quindi di procedere come consigliato, e per prima cosa mi sono procurato un disco SSD (non serve nulla di eccezionale tranquilli), e un controller SATA-USB3.0.

Vi lascio i link di quelli che ho acquistato io (si tratta di link pubblicitari, quindi se non li vedete probabilmente avete attivo un ad blocker. Libera scelta, posso però garantirvi che sono quelli che ho realmente acquistato, tutti i link che pubblico riguardano oggetti inerenti quello di cui scrivo), ma ovviamente il web è pieno di offerte:




Per poter usare un SSD con Home Assistant, è necessario poter accedere alla shell di sistema, usando una connessione SSH sulla porta 22222, vi rimando a questa guida per effettuare questa operazione.

Una volta effettuato l'accesso, al prompt dovrete inserire:

login

Collegate il controller al disco, inserite il tutto in una porta USB 3 (quelle azzurre) e date:

lsblk

Otterrete qualcosa di simile:

Vediamo come il disco (indicato con sda) sia effettivamente riconosciuto (attenzione perchè spesso gli SSD arrivano non inizializzati, quindi potrebbe essere necessario prima inizializzarlo creando un MBR, non è molto importante la creazione di una partizione in quanto poi verrebbe sovrascritta), e ciò che ci interessa è la partizione indicata con /mnt/data, che sposteremo.

ATTENZIONE! L'immagine è puramente indicativa, nel mio caso la partizione è già stata spostata, voi molto probabilmente vedrete sda1 senza alcun mountpoint, e /mnt/data sarà montata su mmcblk0pX, ovvero sarà sulla SD.

Avete fatto un backup vero? Perchè adesso si fa sul serio!

Digitate:

datactl move /dev/sda

E avrete qualcosa del genere:

A questo punto, occorre riavviare per spostare effettivamente tutto (Supervisor -> Host -> Riavvia Host), se siete connessi con Home Assistant, sappiate che prima di tornare online ci vorrà parecchio tempo, ma alla fine vedrete l'indicazione dello spazio libero su disco cambiare (a meno che non abbiate usato una micro SD gigantesca).

Mi raccomando, NON INTERROMPETE IL PROCESSO DI SPOSTAMENTO, pena il dover ricominciare tutto daccapo (intendo a partire dall'installazione di Home Assistant), in quanto i dati potrebbero irrimediabilmente corrompersi.

A conferma di tutto, date:

df -h | grep sda1

E avrete qualcosa del genere:

In cui è evidente la partizione /mnt/data è stata spostata. Ora potete usare un SSD su Home Assistant come disco dati, andando ad aumentare le prestazioni e la stabilità del sistema.

Dal prossimo articolo, inizieremo a smanettare con la domotica vera e propria! Stay tuned..

Alla prossima..