TrueNAS su Raspberry Pi 5: il NAS open source sfida i server x86!

TrueNAS sbarca anche su Raspberry Pi 5 previa abilitazione del supporto UEFI sperimentale: le configurazioni possibili, i limiti hardware attuali e le potenzialità di questa soluzione di storage open source.

Per allestire una soluzione per lo storage dei dati non è indispensabile acquistare un dispositivo NAS commerciale. TrueNAS è una piattaforma open source per la gestione dello storage basata su FreeBSD (TrueNAS CORE) e Linux (TrueNAS SCALE), progettata per offrire affidabilità, flessibilità e prestazioni tipiche delle soluzioni enterprise. Il suo cuore è il file system ZFS, che garantisce integrità dei dati, snapshot istantanei, compressione e gestione avanzata dei volumi.

Se fino a poco tempo fa la comunità di TrueNAS era piuttosto scettica sulle reali potenzialità delle piattaforme ARM in ambito storage, un fork avviato da Joel0 ha dimostrato che è possibile eseguire TrueNAS anche su chip non-x86, aprendo nuove prospettive a chi desidera servirsi di hardware compatto ed economico.

Perché provare TrueNAS su Raspberry Pi?

Raspberry Pi 5 rappresenta un salto prestazionale rispetto ai modelli precedenti, grazie al nuovo SoC Broadcom BCM2712 (quad-core Cortex-A76), supporto PCIe 2.0 x1 e maggiore disponibilità di RAM. Pur restando lontano dalle piattaforme server ARM come Ampere Altra, questo dispositivo si presta bene come banco di prova per applicazioni complesse, TrueNAS incluso.

I vantaggi di un approccio di questo tipo sono, al momento, principalmente didattici e sperimentali. Tuttavia, grazie al lavoro svolto in seno alla community di TrueNAS, l’utilizzo del sistema NAS open source può presto confermarsi come una strada sempre più percorribile.

La sfida principale: il boot UEFI su Raspberry Pi

Uno dei limiti intrinseci delle schede Raspberry Pi consiste nell’assenza di un firmware UEFI ufficiale. A differenza di piattaforme ARM server o di sviluppo (Ampere, Rockchip RK3588, Qualcomm), Raspebrry Pi si basa su un boot proprietario con device tree, che complica l’esecuzione di sistemi operativi pensati per lo standard UEFI.

Il device tree è una struttura dati che descrive l’hardware del sistema al kernel: CPU, RAM, periferiche, GPIO, controller, interrupt, bus, e così via. In pratica, è una mappa che dice al sistema operativo: “ecco quali dispositivi ci sono e come ci si parla”.

Con UEFI, il sistema non ha bisogno di un device tree personalizzato: può interrogare il firmware per sapere quali dispositivi sono presenti. Questo rende possibile avviare quasi qualsiasi sistema operativo compatibile (Linux generico, Windows, BSD) senza modifiche.

Per aggirare il problema, la community ha sviluppato un firmware alternativo per i single-board computer basato sul progetto Windows on Raspberry Pi (WoR).

Come aggiungere il supporto UEFI su Raspberry Pi

Jeff Geerling, autore e sviluppatore software, spiega come aggiungere il supporto UEFI a Raspberry Pi:

  1. Aggiornare l’EEPROM di Raspberry Pi alla release del 09/06/2025 o successiva. È possibile verificare la versione attuale su Raspberry Pi OS con il comando rpi-eeprom-update.
    Di norma si può lanciare l’aggiornamento usando Raspberry Pi Imager, oppure eseguendo le seguenti istruzioni:
    sudo apt full-upgrade -y
    sudo rpi-eeprom-update -a

    Per adesso, tuttavia, questi metodi portano a ricevere soltanto l’ultima release stabile (08/05/2025). Fino a quando non sarà disponibile la nuova, si può ovviare così:
    Aggiornare manualmente il bootloader con usbboot compilato da sorgente. In alternativa, si può passare al canale beta del bootloader modificando il file indicato di seguito:
    sudo nano /etc/default/rpi-eeprom-update
    Successivamente, è necessario sostituire latest con beta, per poi eseguire il comando sudo rpi-eeprom-update -a.
    Dopo il riavvio della Raspberry Pi, è importante verificare la versione del bootloader con rpi-eeprom-update.
  2. Il passo successivo consiste nello scaricare l’ultima release in formato .zip dal repository rpi5-uefi Releases.
  3. Utilizzando una scheda microSD già formattata per Pi (si può riutilizzare quella con Raspberry Pi OS usata per l’aggiornamento EEPROM), bisognare svuotare la partizione FAT32 bootfs. Nella stessa cartella vanno quindi copiati tutti i file contenuti nell’archivio .zip, incluso RPI_EFI.fd.
  4. Dopo aver estratto la microSD, si deve inserirla nella Rapsberry Pi per poi accenderla e collegarla a un monitor HDMI. Si dovrebbe vedere apparire il logo Raspberry Pi e la schermata del bootloader EDK2.

Se non si fossero collegate unità NVMe o dispositivi USB di boot, apparirà il messaggio “Press any key to enter the Boot Manager Menu”. Premendo Invio, si accede al menu di gestione del boot, dove è possibile configurare parametri come la velocità della scheda SD o del bus PCIe. A questo punto è necessario salvare e riavviare.

Installazione di TrueNAS SCALE su Raspberry Pi 5

Una volta ottenuto il supporto UEFI, l’installazione di TrueNAS segue un flusso simile a quello che caratterizza i sistemi x86:

  • Scrittura della ISO TrueNAS (fork Arm) su USB tramite balenaEtcher.
  • Collegamento del supporto USB alla Raspberry Pi 5 e avvio del sistema.
  • Installazione di TrueNAS su un supporto secondario (ad esempio un’altra chiavetta USB).
  • Primo boot del sistema, con generazione e avvio dei servizi TrueNAS.

Geerling spiega che in fase di inizializzazione possono emergere errori come il mancato avvio del servizio ix-etc (responsabile della generazione dei file /etc di sistema), risolvibili da console con riavvio manuale (systemctl start ix-etc). Superata questa fase, la Web UI di TrueNAS risulta accessibile e funzionante.

Limitazioni attuali e prestazioni

Nonostante il successo dell’installazione, restano numerosi limiti dovuti alla mancanza di driver e al supporto parziale del SoC RP1 in modalità UEFI:

  • Assenza di Ethernet integrata: è necessario un dongle USB-Ethernet.
  • Nessun supporto a GPIO, CSI/DSI e fan control, funzionalità tipiche del Pi ma irrilevanti in contesti storage.
  • Limite a un solo dispositivo PCIe: impedisce l’uso di switch PCIe e, di conseguenza, di backplane SATA/NVMe multiporta.

Le restrizioni, conclude Geerling, impediscono di sfruttare appieno soluzioni più evolute, compresi HAT multi-NVMe. Attualmente TrueNAS riconosce solo configurazioni dirette (singolo controller SATA o HBA in IT mode).

Con Raspberry Pi OS, un array ZFS a quattro SSD su Pi 5, la configurazione basata su TrueNAS SCALE è in grado di raggiungere 200–250 MB/s in scrittura sequenziale tramite Samba su rete 2,5 GbE. L’esperimento evidenzia come il collo di bottiglia non sia ZFS, bensì la mancanza di un supporto nativo e completo a PCIe ed Ethernet in ambiente UEFI.

Il valore reale del progetto descritto da Geerling, tuttavia, per ora non sta nelle prestazioni. Dimostra invece che l’universo TrueNAS può uscire dai confini dell’x86, e che il futuro dell’archiviazione software-defined sarà sempre più eterogeneo.

Ti consigliamo anche

Link copiato negli appunti