Costruire un dispositivo Internet-of-Things, o forse registrare video continuativamente, richiede un sistema di archiviazione di alta capacità e basso consumo, preferibilmente utilizzando hardware economico. In casi specifici, il tuo dispositivo potrebbe essere remoto o potrebbe dover gestire intensità di vibrazione elevate, come essere montato su un pezzo di attrezzatura industriale, su un robot o in un veicolo. Tali circostanze rendono indispensabile l'uso di memorie allo stato solido.
Ho iniziato guardando la costruzione di un server di archiviazione collegato in rete utilizzando un Raspberry Pi; dopotutto, sono ottimi piccoli computer su scheda singola. Tuttavia, ci sono alcune cose che li rendono meno che ideali per questo tipo di applicazione. In primo luogo, la porta di rete è solo di 300Mbit/s nell'ultima versione 3B+, e di 100Mbit/s nelle generazioni più vecchie. In secondo luogo, le porte USB sono solo USB 2.0 (480Mbit/s), quindi sono significativamente più lente dell'USB 3.0 (5Gbit/s). I connettori USB non sono sempre i migliori per ambienti ad alta vibrazione e possono avere errori di connessione intermittenti a causa di ciò, o fallire per fatica se il cavo non è ben fissato. I cavi USB, specialmente quelli 2.0, non si comportano particolarmente bene nemmeno in ambienti ad alta EMI, come vicino a motori azionati da VFD.
Dopo aver confrontato numerose opzioni interessanti sul mercato, ho scelto un ODroid HC1 (Home Cloud 1) dal loro distributore nel Regno Unito (https://odroid.co.uk). È un computer a scheda singola molto compatto e a un prezzo ragionevole. I benchmark pubblicizzati sono piuttosto impressionanti per l'HC1, rispetto ad altri computer a scheda singola in una fascia di prezzo simile.
Quando acquistato direttamente da Hard Kernel, l'unità costerebbe 49 dollari USA, esclusi spedizione, alimentatore o disco rigido. Hard Kernel offre anche alcune schede molto impressionanti in un formato RasPi, con una grande potenza di elaborazione per coloro che sono disposti a pagarla. L'HC1 mi ha attratto per essere dedicato al controllo dello storage collegato alla rete, completamente privo di qualsiasi funzionalità superflua. È anche piuttosto compatto nonostante sia montato su un enorme dissipatore di calore che funge da involucro aperto, con l'opzione di includere un coperchio superiore per coloro che lo preferirebbero.
Avrei preferito che avesse la funzionalità WiFi integrata, così come la capacità di gestire più unità per il RAID e la sicurezza dei dati in caso di guasto del disco. Sebbene l'Odroid HC1 non disponga di tali funzionalità, mantiene una singola porta USB, che potrebbe opzionalmente essere utilizzata per collegare un dongle WiFi USB. Ero interessato al WiFi per comodità, per poter controllare il contenuto dell'unità da un dispositivo mobile, piuttosto che per scrivere o leggere grandi quantità di dati. Il RAID, d'altra parte, è un po' più complicato sui computer a scheda singola a meno che non si inizi a guardare a macchine basate su x86, aggiungendo processori grafici o considerando funzionalità aggiuntive che consumano molta energia. È stato difficile trovare un'opzione compatta e a basso consumo, quindi ho dovuto rinunciare al RAID.
Ho optato per un SSD Samsung 860 Evo SATA da un terabyte come dispositivo di archiviazione e per una scheda microSDHC Sandisk da 16 gigabyte come dispositivo di avvio. Ho provato ad arrangiarmi con una vecchia microSD da due gigabyte, ma era troppo lenta per il sistema operativo. La Sandisk microSDHC da 16gb era la scheda di marca più economica disponibile. Se stai cercando una configurazione estremamente robusta, i dischi Samsung 860 Evo PRO costano il doppio ma offrono quasi quattro volte la durabilità del flash rispetto all'Evo, il che potrebbe valerne la pena per un'installazione remota che raccoglie dati critici. La versione PRO consuma anche notevolmente meno energia. Un'opzione leggermente più orientata al risparmio da parte di Samsung è la linea Qvo, che ha circa la metà della durabilità del flash dell'Evo. Ho deciso di scegliere i Samsung rispetto ad altre marche perché il mio hardware non offre l'opzione per il RAID. Non ho avuto problemi con essi in passato e ne ho 9 in funzionamento continuo, quindi ho deciso di attenermi a ciò che ha funzionato bene per me in precedenza.
I dischi meccanici non sono una buona idea per ambienti a basso consumo, con intense vibrazioni o ambienti difficili. Sono molto economici per la capacità di memorizzazione che offrono rispetto a un SSD di qualità, ma le vibrazioni li danneggiano molto rapidamente, così come la polvere e l'umidità. Un SSD consuma molto meno energia rispetto a un disco meccanico e non soffre del tempo di avviamento al risveglio quando si vuole iniziare a scrivere dati.
Samsung 860 EVO SSD e ODroid HC1 dopo l'acquisto.
Ci sono diversi sistemi operativi per l'archiviazione collegata in rete disponibili per i computer a scheda singola. Ho deciso di usare OpenMediaVault perché funziona su un numero considerevole di computer a scheda singola basati su ARM, permettendoti di seguire anche se scegli un percorso diverso (come un Raspberry Pi). Ha anche un'interfaccia web molto facile da usare per la configurazione e la gestione di condivisioni/utenti, evitando quindi l'uso della riga di comando o SSH!
Configurare e avviare l'ODroid HC1 è semplicemente una questione di collegare il disco rigido, flashare e inserire la scheda SD, e infine, collegare ethernet e alimentazione. Andiamo attraverso questi passaggi uno per uno.
Innanzitutto, trasferiamo l'immagine del firmware sulla scheda SD.
Scarica l'immagine "OMV_4_Odroid_XU4_HC1_HC2.img.xz" da Sourceforge.
Scarica qualsiasi programma di flashing che preferisci. In questo articolo lavoreremo con Etcher (https://etcher.io/) perché è semplice da usare.
Inserisci la microSD nel tuo computer.
Apri Etcher e seleziona l'immagine scaricata, poi il tuo drive.
Clicca su Flash!
Mentre Etcher sta flashando e validando l'immagine sulla tua scheda SD, puoi assemblare l'ODroid HC1 e l'hard disk semplicemente collegando l'hard disk al connettore SATA dell'HC1.
L'ODroid HC1 collegato al disco Samsung costituisce un'unità di storage di rete molto compatta.
Poi giralo e usa le viti incluse per fissare il disco.
Puoi quindi collegare il cavo ethernet.
Una volta che hai collegato il cavo ethernet, avrai terminato di connettere tutta l'hardware.
Una volta che Etcher ha terminato di preparare la scheda SD, puoi procedere inserendola nell'HC1 e poi collegare l'alimentazione. OpenMediaVault richiede essenzialmente una connessione internet stabile al suo primo avvio. Ho provato ad avviare il mio HC1 la prima volta collegato a una rete che includeva un collegamento wireless, il quale non era particolarmente di alta qualità, e ho avuto notevoli difficoltà a far funzionare il dispositivo. Tuttavia, ho avuto successo immediato collegando l'HC1 direttamente alla parte cablata della rete.
Può volerci un po' per il primo avvio, quindi fatti un tè o un caffè, o dai un'occhiata ad alcuni degli altri articoli su questo blog. Lascia che l'HC1 si avvii e si installi per almeno 15 minuti; non c'è un'indicazione visiva che abbia terminato, quindi è meglio lasciare il dispositivo un po' più a lungo piuttosto che fare qualcosa troppo presto.
Vorrai controllare ciò che fornisce gli indirizzi DHCP sulla tua rete (tipicamente il tuo router internet in una casa o in un piccolo ufficio) per guardare i client connessi e trovare l'indirizzo IP dell'ODroid. In alternativa, puoi usare uno strumento di scansione IP per trovarlo: una scelta popolare è Angry IP Scanner (preferisco la versione legacy perché non richiede Java). Se questo è il tuo unico ODroid sulla rete, probabilmente puoi saltare la ricerca dell'indirizzo IP e navigare su http://odroidxu4/ nel tuo browser web. Altrimenti, vai all'indirizzo IP con il tuo browser.
Configurare OpenMediaVault inizia con l'accesso.
Il nome utente e la password di default sono admin / openmediavault.
La prima cosa che vorrai fare è andare su Sistema⇒Impostazioni Generali e poi su Password Amministratore Web per cambiare la tua password.
Poi puoi dirigerti su Sistema⇒Gestione Aggiornamenti per assicurarti di avere tutti i pacchetti più recenti. Premi il pulsante Verifica, poi clicca la casella accanto a Informazioni Pacchetto per selezionare tutto e premi il Pulsante Aggiorna
Attendi un momento mentre OpenMediaVault installa i suoi aggiornamenti.
Una volta completati gli aggiornamenti, vorrai riavviare. Puoi cliccare sull'icona del menu ⋮ in alto a destra del cruscotto e selezionare riavvia.
Se stai utilizzando un disco rigido esistente, o il tuo disco rigido è preformattato, dovrai eliminare le partizioni prima di procedere. Puoi andare al menu Archiviazione⇒File System, selezionare qualsiasi voce /dev/sda* ed eliminarle. Tuttavia, assicurati di non toccare la voce /dev/mmc
, poiché quella è la scheda SD da cui stai avviando!
Configurare un disco rigido richiede che tu crei un file system.
Una volta che hai un disco vuoto, puoi cliccare sul pulsante Crea. Dai un'etichetta di volume al tuo disco, assicurati che EXT4 sia selezionato come file system e clicca OK.
Questo probabilmente richiederà alcuni minuti per completarsi.
Una volta fatto, clicca Chiudi, poi seleziona /dev/SDA1 e poi clicca sul pulsante Monta. Dovrai poi cliccare su Applica affinché il disco venga montato.
Il pulsante applica può essere trovato nell'angolo in alto a destra della tabella dei dispositivi.
Il passo successivo è creare un utente per accedere alla condivisione di file. Vai a Gestione dei Diritti di Accesso⇒Utente nel menu, poi clicca su Aggiungi.
Ora che abbiamo finito con lo storage, dobbiamo configurare la gestione dei diritti di accesso.
Imposta il nome utente e la password, poi clicca su Aggiungi. Dopo, dovrai Applicare le modifiche come hai fatto quando hai montato il nuovo sistema di file. Ora hai un utente per accedere alla condivisione di file.
Dovremo configurare le opzioni di base quando creiamo un nuovo utente.
Vai a Gestione dei Diritti di Accesso⇒Cartelle Condivise e clicca su Aggiungi.
Semplicemente dai alla condivisione un nome come “logdata” e clicca su Aggiungi. Idealmente, dovresti anche impostare i permessi per negare l'accesso agli “altri”, così solo gli utenti possono accedere alla cartella.
Creare una cartella condivisa permette all'utente che abbiamo appena creato di trasferire dati da e verso lo storage collegato alla rete.
Una volta creata la condivisione, puoi selezionarla e poi cliccare sul pulsante Privilegi per aggiungere il tuo utente.
Vuoi selezionare la casella di controllo Leggi/Scrivi e poi cliccare su Salva. Ancora, devi applicare queste modifiche.
Infine, fai clic sul pulsante ACL, accanto al pulsante Privilegi che hai precedentemente cliccato, e fai la stessa cosa poi Applica e Chiudi.
Vai all'opzione del menu Servizi - SMB/CIFS. Questo è il file server sul dispositivo.
Clicca su Abilita poi Salva e Applica.
Non dimenticare di cliccare il pulsante applica per salvare le modifiche che fai.
Una volta che hai abilitato il server SMB, clicca sulla scheda Condivisioni e poi sul pulsante Aggiungi. Puoi selezionare la condivisione precedentemente creata e poi cliccare il pulsante Salva, quindi Applica le modifiche.
In Windows, puoi andare a \\odroidxu4\ (o \\indirizzoip\) in Esplora Risorse per vedere se la condivisione è impostata correttamente. Inserisci le credenziali che hai creato in precedenza quando richiesto.
Possiamo usare le nostre credenziali per vedere e accedere alla cartella condivisa sull'OCDroid da qualsiasi altro computer sulla rete.
Copiando da o verso l'unità, dovresti vedere velocità di trasferimento di circa 95-115Mbyte/secondo su una rete cablata, che è approssimativamente veloce quanto una rete gigabit può trasferire. Il throughput sull'HC1 è piuttosto impressionante.
OpenMediaVault supporta anche altri metodi di trasferimento file. Se il dispositivo che genera tutti i dati che devi memorizzare non supporta i file system SMB (condivisioni Windows), allora potresti voler abilitare anche FTP. FTP non è veloce come SMB, generalmente parlando, tuttavia, se stai utilizzando un microcontrollore, è più facile da implementare rispetto alle condivisioni SMB.
Il server FTP può anche essere piuttosto utile per navigare nel server da una posizione remota. Se vuoi accedere al server FTP da un microcontrollore di base, probabilmente non vorrai che SSL sia obbligatorio, ma solo opzionale. Se hai bisogno di eseguire il server FTP senza SSL, dovresti accedere al server su internet solo tramite un tunnel VPN nella rete a cui è connesso il NAS.
Vai su Servizi⇒FTP poi spunta la casella Abilita e clicca Salva.
Ora puoi andare alla scheda Condivisioni e Aggiungere la condivisione proprio come hai fatto per la condivisione SMB sopra. Non dimenticare di cliccare Salva e poi Applica le modifiche alla configurazione.
Se stai cercando di costruire un server di archiviazione dati remoto che utilizzi pochissima energia e occupi solo una piccola quantità di spazio, l'Odroid HC1 è un'ottima opzione. Se ti trovi in un ambiente molto umido o bagnato, potresti voler applicare una vernice conformale e dare alla scheda una generosa mano su entrambi i lati, e potenzialmente anche all'interno del tuo disco rigido (solo se stai utilizzando un disco a stato solido). La vernice conformale assicurerà che le schede non soffrano di corrosione.
Il grande dissipatore di calore sull'Odroid aggiunge una notevole rigidità alla configurazione, quindi c'è una preoccupazione minima che il connettore SATA possa subire fatica a causa di vibrazioni o impatti. Abbinato a un disco a stato solido, ciò ti offre un dispositivo di archiviazione collegato alla rete robusto.
Come accennato in precedenza, per ottenere la massima robustezza, sarebbe ideale avere i dati automaticamente duplicati su due dischi. Ancora meglio, potremmo avere più dischi in RAID 6, ma in questo caso supereremmo di gran lunga gli obiettivi di compattezza, basso consumo e convenienza economica. Gli involucri con dissipatore di calore Odroid HC1 sono impilabili, quindi sarebbe possibile utilizzare semplicemente due NAS insieme e usare la sincronizzazione software come RSync, che OpenMediaVault può configurare per te, sul secondo sistema per copiare i file dal primo. Sincronizzando i due sistemi, avresti una certa capacità di failover e di conservazione dei dati in caso di guasto di un disco.
Vuoi scoprire di più su come Altium Designer® può aiutarti con il tuo prossimo progetto di PCB? Parla con un esperto di Altium.