
Guida
NAS fai da te – parte 5: l'installazione di Unraid su chiavetta USB mi manda in bestia
di Richie Müller
Il mio server Unraid è installato. Ma prima che i container Docker o le app vi si trasferiscano, il mio NAS ha bisogno di una struttura. In questa parte ti spiego come dividere i cache pool, avviare l'array e organizzare l'archiviazione dei dati in modo pulito – e perché occorre anche una strategia.
Nell'ultimo articolo ho installato il sistema operativo Unraid su una chiavetta USB, che rimane permanente nel mio NAS.
Ora è il momento della messa a punto. Perché «TomBombadil», come viene chiamato il mio server Unraid, servirà come futuro laboratorio di ricerca. In questo articolo scopri quali sono le considerazioni e le riflessioni che hanno contribuito a questo risultato. Non è una guida passo dopo passo. Ce ne sono già abbastanza su YouTube.
Accedo per la prima volta e mi ritrovo davanti all'interfaccia utente di Unraid. Per evitare problemi in seguito, ho preso l'abitudine di fare lo stesso anche qui: innanzitutto, aggiorno il sistema operativo all'ultima versione e imposto il fuso orario corretto.
Prima di iniziare con gli share, mi prendo un attimo di tempo. Infatti, la struttura dei dati non solo determina la chiarezza, ma anche le prestazioni e l'affidabilità del sistema. La mia decisione influenza anche la ridondanza e la manutenzione del server a lungo termine.
Ho integrato un totale di quattro SSD: due da 2 terabyte ciascuno (TB) e due da 500 gigabyte (GB). All'inizio, ho cercato di buttare tutti in un solo cache pool. Ma con SSD di dimensioni diverse, con il RAID 1 (rete di dischi rigidi con meccanismo di sicurezza) spreco rapidamente capacità inutilmente – nel peggiore dei casi più della metà dello spazio.
Infatti, il RAID 1 riflette sempre i dati tra due unità in coppia e utilizza solo la capacità disponibile su entrambi gli SSD coinvolti. Se una delle unità è più piccola, lo spazio di archiviazione in eccesso dell'SSD più grande viene ignorato.
Per questo motivo mi affido a due pool separati con SSD della stessa dimensione, ciascuno in BTRFS RAID 1. Uso il B-Tree File System (BTRFS) perché è l'opzione migliore per i pool di SSD ridondanti in Unraid, con rilevamento degli errori e gestione flessibile.
I file system come ZFS o BTRFS regolano come i dati vengono memorizzati, organizzati e protetti su un'unità. Svolgono un ruolo simile a quello di FAT32 o NTFS in Windows. Tuttavia, offrono funzioni aggiuntive come checksum, snapshot e supporto RAID nativo, particolarmente importanti per i server e i sistemi NAS.
Ho deciso deliberatamente di non utilizzare ZFS (originariamente Zettabyte File System), anche se tecnicamente fa molte cose bene, e nemmeno ext4 (fourth extended file system), in quanto non offre alcuna funzione estesa. Voglio rimanere flessibile con i cache pool. Un pool ZFS non è così facile da espandere. Ad esempio, se è stato creato come mirror (RAID 1), non posso semplicemente aggiungere una singola unità SSD in seguito.
Invece, dovrei installare di nuovo due unità SSD della stessa dimensione. Con RAID-Z, una variante RAID disponibile esclusivamente per ZFS, diventa ancora più rigida: la struttura originale è fissa. Ottengo più memoria solo se installo diversi nuovi dischi rigidi contemporaneamente.
ZFS è ingombrante anche con unità SSD di diverse dimensioni: utilizza solo la memoria che il disco rigido più piccolo offre. Il resto rimane inutilizzato. Soprattutto con i cache pool, si tratta di un potenziale sprecato.
BTRFS è molto più easy: posso sostituire o aggiungere SSD più facilmente, anche con diverse dimensioni di capacità. Il grande vantaggio: la ridondanza viene mantenuta e ho ancora una buona visione d'insieme. Unraid è dotato di BTRFS in modo nativo, senza plugin, senza sforzi aggiuntivi. La scelta giusta per la mia configurazione, che dovrebbe svilupparsi nel tempo.
La separazione netta porta struttura e ordine, ma anche sicurezza e impedisce colli di bottiglia con l'accesso simultaneo. Inoltre, se necessario, posso integrare senza problemi ulteriori assegnazioni nella struttura esistente.
Divido i miei sei dischi rigidi da 6 TB nel modo classico: due dischi rigidi come parità (unità dati ridondante), quattro come unità dati. In questo modo ho a disposizione una capacità di memoria di 24 TB. Sono inoltre protetto contro un eventuale guasto di massimo due dischi. Tutti e quattro i dischi dati funzionano con eXtents File System (XFS), lo standard Unraid. Questo file system è stabile, collaudato e particolarmente efficiente per i file di grandi dimensioni come quelli multimediali o di backup.
Unraid persegue il proprio concetto: a differenza del RAID o del classico «Just a Bunch of Disks» (JBOD), ogni disco dati rimane leggibile singolarmente. Il tutto è garantito da una procedura di parità, che può ammortizzare il guasto di un massimo di due unità. Inoltre, posso archiviare i backup su un disco rigido esterno.
Voglio sapere fin dall'inizio come stanno le cose e soprattutto perché. Di conseguenza, le mie directory più importanti ricevono regole chiare:
Le modalità cache possono essere impostate individualmente per ogni share. Unraid permette a ogni share di definire esattamente se e come viene utilizzata la cache. Puoi scegliere tra quattro opzioni:
Quindi i dati temporanei finiscono prima sulle unità SSD e poi vengono spostati automaticamente nell'array. I dati dei container o delle macchine virtuali, invece, rimangono permanentemente nei cache pool, dove ricevono le prestazioni di cui hanno bisogno.
La RAM offre un ulteriore aumento delle prestazioni: Unraid utilizza automaticamente la RAM libera come cache di lettura e scrittura («buffer cache») per fornire i dati utilizzati di frequente ancora più velocemente e per alleggerire gli SSD.
Nel mio NAS fai da te sono installati un totale di 128 GB di RAM. Nelle impostazioni di Unraid, ho specificato che un massimo del 75% della memoria disponibile può essere utilizzato per le cache, cioè un massimo di 96 GB di RAM. Questo avviene tramite l'impostazione vm.dirty_ratio, che ho regolato nella console come segue:
sysctl -w vm.dirty_ratio=75
Questo lascia un buffer sufficiente per Docker, le macchine virtuali e altri processi. Allo stesso tempo, i servizi ad alta intensità di dati, come Paperless NGX o Nextcloud, beneficiano notevolmente di tempi di accesso più brevi.
Se questa cache RAM non venisse utilizzata, tutti gli accessi in lettura e scrittura dovrebbero essere elaborati direttamente dalle unità SSD. Sebbene sia ancora abbastanza veloce, è meno efficiente a lungo termine e può portare a una maggiore usura delle unità SSD.
Unraid rilascia automaticamente la memoria non appena è attivamente necessaria per altri processi. Quindi la cache utilizza solo la RAM, che al momento non è necessaria altrove. Qui puoi trovare un video di YouTube che spiega la configurazione della «buffer cache»: Per i sottotitoli in italiano clicca sull’icona delle impostazioni e seleziona «Traduzione automatica» alla voce «Sottotitoli»
Una volta definita la struttura dei dati e impostati i cache pool, assegno le unità nell'interfaccia web di Unraid: due dischi di parità, quattro dischi di dati e gli SSD ai rispettivi cache pool. Unraid visualizza quindi un pallino verde per indicare che lo stato è OK.
Dopo aver cliccato su «Start», Unraid inizializza l'array, controlla le assegnazioni e prepara il file system. A prima vista non succede molto, se non che lo stato cambia e appare un'opzione di formattazione.
Ho scelto XFS come file system per tutte le unità dati e BTRFS per i cache pool. Confermo la formattazione dei supporti dati, dopodiché devo aspettare.
Il calcolo richiede tempo, soprattutto quando vengono impostati due dischi di parità. A seconda delle dimensioni degli hard disk, questa operazione può richiedere diverse ore o addirittura giorni. Il sistema è pienamente operativo durante questo periodo, ma le prestazioni sono limitate. Ho eseguito il processo per tutta la notte.
Suggerimento: se ti interessa, puoi monitorare i progressi in tempo reale nell'interfaccia web. Unraid mostra in modo molto trasparente ciò che sta accadendo, compresa la velocità e la stima del tempo rimanente.
La mattina dopo è arrivato il momento: l'array è pronto e il mio NAS è ufficialmente in uso.
Due pool di SSD, un array stabile e una struttura di dati deliberatamente scelta: il mio NAS autocostruito ora non solo ha prestazioni, ma anche un piano ben definito.
Dopo il primo avvio dell'array e dei cache pool, ho fatto qualcosa che spesso viene trascurato, ma che dovrebbe essere fatto con urgenza: ho creato un backup iniziale della chiavetta USB.
Come sai, Unraid salva tutte le configurazioni importanti sulla chiavetta USB, che contiene anche il sistema operativo. Se questo non funziona, il sistema non si perde, ma il processo di recupero è snervante. Ci vuole tanto? No. La configurazione può essere copiata rapidamente su una nuova chiavetta USB, grazie a un backup.
Ho eseguito il backup sul mio Synology. Posso anche scaricare il mio file chiave nel mio account Unraid, se necessario. Un backup completo è possibile anche con un plugin speciale, ma te lo spiegherò nel prossimo articolo.
Il mio server fai da te non solo è funzionale, ma è anche pronto per l'espansione. Docker, VMS, applicazioni della Community e plugin sono già in attesa. Ecco di cosa parlerò nel prossimo articolo della serie.
Giornalista con più di 20 anni di esperienza, soprattutto nel settore del giornalismo online. Il mio strumento di lavoro principale? Un portatile – preferibilmente con connessione a Internet. Questi apparecchi mi affascinano a tal punto che, di tanto in tanto, mi piace smontare PC e portatili, ripararli e riassemblarli. Perché? Perché mi diverte!