Saluti agli appassionati di ZimaBoard! Oggi siamo lieti di presentarvi un tutorial completo del nostro membro della community, Tyrehl. Tyrehl non solo ti guida con competenza nel processo di installazione di ZFS su ZimaBoard, ma offre anche una panoramica completa di ZimaBoard stesso.
Dalle intuizioni della community alle istruzioni dettagliate per l’installazione, l’articolo di Tyrehl è la tua risorsa unica per sbloccare il pieno potenziale sia di ZFS che di ZimaBoard. Un sentito ringraziamento a Tyrehl per questo contributo arricchente, che colma il divario tra coinvolgimento della community e know-how tecnico. Iniziamo insieme questo viaggio per elevare la tua esperienza con ZimaBoard. Buona esplorazione!
Introduzione
I computer a scheda singola (SBC) sono molto popolari negli scenari di home lab, e negli ultimi anni hanno guadagnato terreno anche in ambito professionale e industriale. Oggi esiste un vasto ecosistema incentrato sull’edge computing e sui sistemi di piccolo formato.
Una potenza di calcolo decente è facile da ottenere, con vari SBC che offrono 4 core e molta RAM per diverse applicazioni. Dove di solito mancano è sul fronte dello storage. Le schede SD e lo storage Flash in generale sono generalmente lenti e soggetti a guasti in scenari con scritture intensive. I dischi collegati via USB non offrono la stessa affidabilità, e scegliere un buon connettore USB-to-SATA non è banale.
ZimaBoard ha un asso nella manica. Due porte SATA, la doppia Ethernet 100/1000 e varie opzioni di espansione PCIe rendono il sistema molto flessibile.
Quali sono i limiti di ciò che un SBC può realisticamente raggiungere, e perché lo storage è sempre un problema? Dov’è il giusto equilibrio tra una macchina compatta, che non eccelle in nessun compito in particolare, e un mostro di cavi con 6 dischi SATA che richiede un alimentatore ATX esterno?
Questo articolo mira a esplorare i punti di forza di ZimaBoard e come possono essere sfruttati per metterlo a frutto. Senza finire con una configurazione ridicola e poco pratica.
Motivazione
Come accennato in precedenza, molta potenza di calcolo è facile da distribuire e utilizzare. Anche la memoria è economica, quindi lo storage diventa rapidamente il fattore limitante. Chiunque abbia dovuto gestire infrastrutture probabilmente ne è consapevole. Basta dare un’occhiata alle opzioni di storage di rete di k8s, alle varie piattaforme che promettono API compatibili con S3 per il tuo cluster, e a quanto siano fastidiose da distribuire e gestire correttamente.
La ZimaBoard, con le sue eccellenti capacità I/O, è un ottimo candidato per un NAS di piccole dimensioni o un server generico con storage locale resiliente. Ed ecco la sfida – come fornire uno storage tollerante ai guasti in un pacchetto di piccole dimensioni, su una piattaforma che "funziona semplicemente" ed è operativamente noiosa.
Dal lato hardware, ci limiteremo a utilizzare solo due dischi da 2,5 pollici alimentati e collegati tramite SATA ai connettori sul retro della ZimaBoard. Questo crea una soluzione molto compatta senza la necessità di un alimentatore esterno o schede di espansione.
Meno è meglio
Avere tanto spazio di archiviazione è positivo, ma avere uno storage tollerante ai guasti è ancora meglio. Per questo ci serve un file system più avanzato che offra ridondanza dello storage.
ZFS offre capacità di RAID software che superano quelle della maggior parte dei controller RAID hardware. È un file system davvero eccellente con molte altre caratteristiche notevoli come snapshot incrementali, sincronizzazione tra sistemi remoti e pool di archiviazione, e crittografia.
L'attenzione oggi è esclusivamente sull'esecuzione ridondante dei dischi. Normalmente ZFS viene usato per gestire un array RAIDZ. Ma dato che ci siamo limitati a due dischi, rimane solo un'opzione rilevante – il pool mirror ZFS. Questo dimezzerà effettivamente la capacità di archiviazione, ma allo stesso tempo ci fornirà una migliore ridondanza e la capacità di resistere al guasto di un singolo disco. Non è l'ideale, ma dovrà andare bene.
Hardware
Dischi
In generale, la community ZimaBoard consiglia agli utenti di utilizzare dischi da 2,5 pollici. Il loro principale vantaggio è che non necessitano di una linea da 12V per funzionare. Ci sono segnalazioni di test riusciti con dischi da 3,5 pollici, quindi i risultati possono variare. Nel mio caso, ho optato per due SSD da 1TB. Puoi scegliere anche HDD se ti serve più capacità.
Connettori e accessori stampati in 3D
Lo Y-Splitter ufficiale è fortemente raccomandato per collegare e alimentare i due dischi. Ci sono soluzioni alternative, come l'uso di adattatori di alimentazione USB-to-Sata. È una soluzione poco estetica, ma funziona. Per tenere tutto insieme, un supporto doppio per HDD stampato in 3D funziona alla grande. Il risultato finale è un pacchetto molto portatile e dal profilo basso.


I link sono inclusi alla fine dell'articolo. Ho trovato questa versione molto compatta e pratica grazie alle dimensioni ridotte. Esistono anche varie piastre stampate in 3D per il montaggio a rack, se hai lo spazio per farlo.
Installazione di ZFS
La ZimaBoard viene fornita di default con Debian. Questa è anche la mia raccomandazione personale per una distro solida che non ti darà problemi o sorprese. Per altre distribuzioni consulta la documentazione rispettiva e le istruzioni di installazione di ZFS.
Prima di iniziare, ricorda di aggiornare all'ultima versione LTS se puoi. Esegui il backup dei tuoi dati in modo che sia facile smontare tutto e ricominciare da capo. E documenta ogni passaggio, così sarà più facile risolvere eventuali problemi. Dai un'occhiata a script comando per un modo comodo di farlo.
Istruzioni dettagliate e casi d'uso avanzati sono documentati su https://wiki.debian.org/ZFS questa è la fonte primaria consigliata per configurare ZFS.
Prerequisiti
Assicurati che i repository HTTPS siano accessibili:
1 apt install -y lsb-release apt-transport-https
Aggiungi il repository Backports per la tua versione modificando /etc/apt/sources.list o aggiungendo un nuovo file sorgente sotto ‘/etc/apt/sources.list.d/’:
1 #determina il nome in codice o sostituiscilo manualmente qui sotto:
2 codename=$(lsb_release -cs)
3 #aggiungi il repository backports alla lista delle sorgenti:
4 echo “deb http://deb.debian.org/debian $codename-backports main contrib non-free”|sudo tee /etc/apt/sources.list.d/debian_backports.list && sudo apt update
Pacchetti ZFS
Infine, come da documentazione Debian, installa gli ultimi header Linux e i pacchetti ZFS pertinenti:
1 sudo apt install linux-headers-amd64;sudo apt install -t $codename-backports zfsutils-linux zfs-dkms
“Oh no – qualcosa è andato storto”
Il fallimento nell’installazione di ZFS è solitamente dovuto a un kernel vecchio o errato, o a header mancanti. È meglio rimuovere tutti i pacchetti relativi a ZFS, controllare gli header installati e rileggere la documentazione di installazione.
1 sudo dpkg -l | egrep ‘linux-image|linux-headers’
Creazione di un pool e di un filesystem
Elenca i dischi per ID:
1 ls -l /dev/disk/by-id/
2 ls -l /dev/disk/by-id/
3 lrwxrwxrwx 1 root root 9 22 Dic 15:29 ata-KINGSTON_SA400S37960G_50026B73818333D1 -> ../../sdb
lrwxrwxrwx 1 root root 9 22 Dic 15:29 ata-KINGSTON_SA400S37960G_50026B73818333DB -> ../../sda
4 lrwxrwxrwx 1
E crea un pool specificando gli ID dispositivo stabili, ad esempio:
1 zpool create $mirror_pool_name mirror ata-KINGSTON_SA400S37960G_50026B73818333D1 ata-KINGSTON_SA400S37960G_50026B73818333DB
Crea un file system crittografato:
1 zfs create \
2 -o encryption=on \ # rimuovere se non necessario
3 -o keyformat=passphrase -o casesensitivity=mixed \
4 -o acltype=posixacl -o xattr=sa -o dnodesize=auto $mirror_pool_name/$dataset_name
Scenari di utilizzo reale e prestazioni
ZimaBoard non ha problemi a eseguire ZFS e offre ampie prestazioni, con solo la crittografia che incide in modo evidente sull’uso della CPU. Anche la transcodifica e lo streaming (ad esempio con Jellyfin) non sono un problema. Vale la pena notare che leggere o scrivere file molto grandi su un file system crittografato grava pesantemente sulla CPU. Questo potrebbe influire su altri carichi di lavoro in esecuzione sul sistema.
SMB/NFS
Durante i test generali, scrivere un singolo file da 12GB nel pool mirror ZFS ha richiesto circa 5 minuti, con l’IO del disco come collo di bottiglia. La lettura dal pool ZFS è stata molto più veloce, impiegando meno della metà del tempo. In pratica, la connessione di rete da 1Gbps è stata completamente saturata. Entrambi i test sono stati effettuati su file system non crittografati:

Il test successivo mostra il forte impatto che la crittografia ha sulla CPU. Lo stesso file da 12GB è stato letto dal file system ZFS non crittografato e scritto su uno crittografato. Le prestazioni sono ancora eccellenti, ma l’utilizzo della CPU è aumentato notevolmente e si è mantenuto molto alto per tutta la durata del processo.

Risorse e riferimenti
- Installazione di ZFS su Debian: https://wiki.debian.org/ZFS#Installation
- https://www.printables.com/model/224057-zimaboard-dual-hdd-stand
- Cavo SATA a Y: https://shop.zimaboard.com/products/sata-y-cable-for-zimaboard-2-5-inch-hdd-3-5-inch-hdd-raid-free-nas-unraid
Conclusione
Hai domande o cerchi ulteriori chiarimenti su qualche aspetto del tutorial? Tyrehl è qui per aiutarti! Unisciti alla nostra community Discord per connetterti direttamente con Tyrehl e partecipare a discussioni approfondite. La tua curiosità non deve fermarsi al tutorial – Tyrehl è pronto ad assisterti nel tuo percorso con ZFS. Unisciti al nostro server Discord: [ zimaboard.com/discord]

