Costruire un NAS fai da te: la scelta del software

Costruire un NAS fai da te: la scelta del software

Quando si ha necessità di un NAS è possibile affidarsi a soluzioni già pronte all'uso, oppure si può costruire il proprio sistema. Dopo aver affrontato la scelta dell'hardware, diamo uno sguardo al software: il mercato offre diverse opzioni, da quelle limitate alla condivisione di file a quelle per creare un vero e proprio microserver che svolga anche altri compiti

di pubblicato il nel canale Device
Produttività PersonaleSmart Working
 

Un computer è tanto utile quanto lo è il software che esegue e ciò vale anche per un NAS. Scegliere il software giusto per il proprio NAS autocostruito è fondamentale per poter sfruttare al meglio il dispositivo e avere accesso alle funzioni di cui si ha bisogno. In questo articolo, che funge da complemento a Costruire un NAS fai da te: come scegliere l'hardware, ci concentreremo proprio sul software da abbinare a un NAS autocostruito, vagliando le varie possibilità e i pro e i contro di ciascuna di esse. L'intento è quello di fornire una panoramica generale delle varie soluzioni disponibili in tema di sistemi operativi e di software.

Costruire un NAS: scegliere il sistema operativo

Le possibilità di scelta per il sistema operativo sono molteplici. Si può optare per diverse opzioni a seconda del ruolo che si vuole far ricoprire al NAS: da un lato si può scegliere di creare un NAS "puro" che svolga solo funzionalità di archiviazione, ma dall'altro è possibile decidere di sfruttare la potenza di calcolo del dispositivo per ospitare anche macchine virtuali che mettano a disposizione funzionalità oltre quella della sola archiviazione, trasformando di fatto il NAS in un microserver.

Per creare un NAS "puro" è possibile scegliere all'interno di un ampio ventaglio di possibilità, tra le quali segnaliamo:

  • TrueNAS Core (ex-FreeNAS): basato su FreeBSD, è forse il sistema operativo per NAS più noto e diffuso; il progetto è stato acquisito da iXsystems diversi anni fa ed è andato incontro a una riscrittura pressoché completa;
  • OpenMediaVault: si tratta di una re-implementazione di FreeNAS su base Debian Linux;
  • XigmaNAS: continuazione della vecchia versione di FreeNAS, come era prima dell'acquisizione di quest'ultimo da parte di iXsystems;
  • Unraid: una distribuzione Linux il cui punto di forza è un'implementazione proprietaria di un file system, chiamato anch'esso Unraid;
  • una distribuzione Linux o BSD impostata a mano con il software necessario.

Le prime quattro opzioni, che approfondiremo in seguito, mettono a disposizione interfacce in grado di semplificare sia il processo di installazione che quelli di configurazione e di manutenzione. L'ultima, invece, è quella destinata a chi abbia competenze tecniche più avanzate e voglia creare un ambiente proprio su cui avere il controllo completo di ogni componente. Dal momento che la variabilità in tale caso è estrema, non approfondiremo questo caso. Non abbiamo incluso Windows Server in questa lista per via del costo elevato e del fatto che non nasce per questo scopo, ma è un'alternativa possibile nel caso in cui si vogliano utilizzare esclusivamente strumenti prodotti da Microsoft. Non includiamo altresì sistemi proprietari per NAS commercial resi disponibili per altre piattaforme, spesso in maniera illegale.

Chi volesse scegliere, invece, di utilizzare il proprio NAS come microserver per gestire macchine virtuali potrà scegliere tra molteplici opzioni, tra cui:

  • VMware ESXi: hypervisor prodotto da VMware, è uno tra i più diffusi in ambito aziendale;
  • Proxmox Virtual Environment: concorrente di ESXi, questa piattaforma basata su Linux è open source e disponibile gratuitamente;
  • Microsoft Hyper-V Server: hypervisor prodotto da Microsoft, che lo cede gratuitamente in licenza.

Non ci concentreremo su Hyper-V Server poiché, oltre a essere accessibile solo a persone con discrete competenze nella riga di comando di Windows, non verrà più supportato dopo la versione 2019 attualmente disponibile. In tutti i casi si tratta comunque di cosiddetti "hypervisor di tipo 1": gli hypervisor sono i software che si occupano di creare e gestire le macchine virtuali e prendono il nome dal fatto che si tratta di supervisori di sistemi operativi, i quali svolgono a loro volta il ruolo di supervisori dei programmi. Si parla di hypervisor di tipo 1 perché eseguiti direttamente sull'hardware, senza passare per l'intermediazione di un sistema operativo sottostante come è il caso, ad esempio, per programmi come VirtualBox o VMware Workstation.

Ulteriori opzioni includono altri hypervisor di tipo 1:

  • SmartOS è basato su Illumos: si tratta della versione open source e guidata dalla comunità di OpenSolaris, progetto terminato da Oracle quando acquisì Sun Microsystems nel 2010. SmartOS offre compatibilità sia con le macchine virtuali che con i container. Dopo l'acquisizione di Joyent da parte di Samsung nel 2016 il suo futuro è incerto, così come lo è quello di tutti i sistemi operativi derivati da OpenSolaris, e per questo motivo gli dedichiamo solo questa breve menzione.
  • Nutanix AHV è disponibile gratuitamente a chiunque, ma è pensato per aziende di grandi dimensioni e non possiede strumenti grafici di gestione accessibili liberamente: Prism, lo strumento di Nutanix per assolvere a tale compito, è accessibile solo dietro pagamento di una licenza annuale il cui prezzo non viene dichiarato pubblicamente dall'azienda.
  • XenServer di Citrix, ora noto come Citrix Hypervisor, è uno dei più noti hypervisor sul mercato ed è disponibile in una versione gratuita ma limitata: mancano, ad esempio, l'integrazione con Active Directory, la compatibilità con SMB per i repository, le funzionalità per rendere possibile la high availability e la possibilità di effettuare il pass through delle GPU. Xen, l'hypervisor usato da XenServer, è però tutt'oggi uno dei più completi e con le migliori prestazioni, ed è usato ad esempio da Amazon per EC2.
  • XCP-ng è pressoché identico a XenServer, salvo per il fatto che rende disponibili tutte le funzionalità di quest'ultimo gratuitamente e senza richiedere licenze. È l'opzione consigliata per utenti privati e piccole imprese.

Sistemi operativi per NAS

Tutti i sistemi qui proposti sono pensati per gestire primariamente l'aspetto di archiviazione, accesso dalla rete locale e condivisione dei file. Per via della crescente potenza di calcolo dei NAS, tutte le opzioni che segnaliamo sono in grado di offrire funzionalità ulteriori come la virtualizzazione, con alcune che offrono anche la compatibilità con i container.

L'aspetto di cui è necessario tenere conto nella fase di valutazione del sistema operativo è che avendo TrueNAS e XigmaNAS una base FreeBSD, e non Linux, c'è un impatto significativo sull'hardware supportato: se con Linux la compatibilità con l'hardware è molto estesa e comprende anche le periferiche di ultima generazione, con FreeBSD si possono avere problemi ed è necessario assicurarsi che le proprie componenti siano compatibili.

TrueNAS

Logo di TrueNAS

TrueNAS è, come già menzionato, il frutto del lavoro della comunità a cui è stato aggiunto successivamente il contributo di iXsystems, che ha sviluppato l'attuale interfaccia grafica. TrueNAS CORE, la versione gratuita e liberamente scaricabile del sistema operativo, è la base su cui viene poi costruito TrueNAS Enterprise, versione destinata ad applicazioni critiche e ad alte prestazioni, con cui viene condivisa gran parte delle funzionalità e delle caratteristiche. Viene spesso citato per la sua estrema solidità.

Dal momento che TrueNAS usa FreeBSD come base, il file system ZFS è quello usato in via predefinita per l'archiviazione dal momento che è integrato nel kernel e che offre funzionalità specificamente pensate per l'archiviazione di dati nei data center, con una solidità e un'affidabilità ineguagliate da altri file system nel mondo open source. Approfondiremo il tema in seguito.

TrueNAS dispone di un'interfaccia grafica accessibile tramite qualunque browser: tale interfaccia è piuttosto semplice da usare e mette a disposizione opzioni chiare e ben documentate, con spiegazioni accessibili direttamente dall'interfaccia grazie a pulsanti di aiuto. L'interfaccia semplifica notevolmente l'impostazione e l'amministrazione del sistema e rende queste operazioni accessibili anche a chi non ha molta esperienza nella gestione di sistemi UNIX-like. Il fatto che sia moderna e accattivante, con strumenti grafici che permettono di cogliere le informazioni più importanti a colpo d'occhio, semplifica il monitoraggio della situazione.

Le opzioni a disposizione vanno da quelle più basilari a quelle più avanzate ed è possibile impostare il sistema seguendo delle procedure guidate con valori suggeriti oppure con impostazioni manuali. Tra le impostazioni presenti segnaliamo la possibilità di impostare avvisi tramite email, di gestire in via centralizzata le credenziali per l'accesso a servizi di archiviazione in cloud, di impostare script con cron, di pianificare snapshot periodici del file system (o di una sua parte, in base ai dataset di ZFS impostati), di gestire l'autenticazione con servizi come Active Directory, LDAP, NIS e Kerberos. I protocolli di condivisione supportati includono AFP, iSCSI, NFS, SMB e WebDAV, così da poter accedere ai file con qualunque dispositivo indipendentemente dal sistema operativo.

L'interfaccia mette altresì a disposizione gli strumenti per gestire macchine virtuali e container. Le macchine virtuali vengono gestite con bhyve, tecnologia sviluppata per FreeBSD e simile a KVM nel mondo Linux. I container, di contro, vengono gestiti con jails, che mette a disposizione un sistema di separazione delle risorse simile a quello consentito da cgroup nel mondo Linux, ma più sicuro. Tra i container preconfigurati a disposizione troviamo Asigra Backup, Plex, Nextcloud, emby (fork di Plex), Syncthing, Duplicati (software di backup), GitLab, JDownloader, Jenkins, OpenVPN e UrBackup. Sono presenti molteplici altri contianer preconfigurati, accessibili come "plugin", ed è possibile crearne di propri.

TrueNAS è la piattaforma più completa e potente tra quelle qui considerate, nonché quella di più facile uso. La documentazione è di facile consultazione e comprensione, in più è presente una comunità piuttosto attiva con una mole consistente di discussioni in Rete, che permette di trovare soluzioni ai problemi più svariati. L'unico problema di TrueNAS è la richiesta di risorse: per via dell'uso di ZFS, iXsystems consiglia di usare un minimo di 8 GB di RAM per il sistema e ciò può rappresentare uno scoglio per i dispositivi di fascia più bassa. Sul fronte della CPU non si riscontrano, invece, particolari problematiche.

OpenMediaVault

Logo di OpenMediaVault

OpenMediaVault (OMV, in breve) nasce con l'intento di portare l'esperienza di FreeNAS nel mondo Linux e, nello specifico, su base Debian. Il vantaggio di questo approccio sta nella maggiore familiarità di molti utenti con Linux rispetto a FreeBSD, sistema operativo su cui è basato TrueNAS/FreeNAS, nonché nella sua maggiore disponibilità di software.

Come TrueNAS, anche OpenMediaVault mette a disposizione un'interfaccia Web con la quale è possibile configurare il sistema senza dover necessariamente impiegare (o conoscere) i comandi da terminale corrispondenti. L'interfaccia permette di effettuare tutte le principali operazioni per la gestione e la manutenzione del NAS, inclusa l'installazione di pacchetti, la gestione dei dischi (partizionamento, RAID, ecc) e quella dei servizi.

Rispetto a TrueNAS, però, OMV presenta un'interfaccia molto più scarna e con passaggi più lunghi e meno chiari, nonché con continue richieste di applicazione delle modifiche (bisogna spesso cliccare su "applica", quindi su "applica modifiche", quindi su un ulteriore "ok"!) che rendono l'esperienza d'uso dell'interfaccia di amministrazione più frustrante e decisamente più simile a quella dei sistemi di quindici anni fa che non di quelli moderni. D'altro canto, questa semplicità porta anche a una leggerezza estrema sia sul fronte del server che su quello del client.

Nonostante queste limitazioni, comunque, OMV mette a disposizione moltissimi strumenti utilizzabili con molta facilità, da quelli più basilari come la configurazione dei protocolli di condivisione (SMB, NFS, FTP, rsync) fino a quelli più complessi come la gestione degli utenti e delle quote sul disco. È possibile costruire RAID via software, ferma restando la possibilità di utilizzare controller hardware. I file system supportati sono ext2/3/4, Btrfs, XFS, JFS, NTFS e FAT32; manca il supporto a ZFS, disponibile installando pacchetti aggiuntivi.

Il sistema include anche la possibilità di gestire gli accessi tramite liste (ACL, Access Control List) così da poter avere un controllo granulare nel caso in cui si debbano gestire molti utenti.

Sono disponibili anche diversi plug-in che permettono, ad esempio, di gestire i backup del NAS su dischi USB o eSATA, oppure di fare uso di protocolli come DAAP o AirPlay. Plug-in di terze parti includono il media server Plex, il server di stampa CUPS, BitTorrent Sync, Transmission (un client BitTorrent), JDownolader, Clonezilla e VirtualBox, nonché ZFS.

OpenMediaVault appare come l'opzione più limitata in termini di espandibilità e configurabilità senza fare uso del terminale, ma è per questo anche estremamente semplice e può essere adatto per chi non abbia altre esigenze che la condivisione di file sulla propria rete e non voglia (o possa) gestire i dettagli più tecnici. È altresì decisamente più leggero di TrueNAS se non si fa uso di ZFS, il che lo rende più flessibile e adatto anche a hardware più datato o meno prestante.

XigmaNAS

Logo di XigmaNAS

XigmaNAS è la continuazione del vecchio FreeNAS: il progetto fu rivoluzionato quando fu ceduto a iXsystems, che l'ha ora incorporato nel suo progetto TrueNAS, ma una parte della comunità decise di tenere viva la vecchia impostazione. Molti elementi sono rimasti identici al vecchio progetto, in primis l'interfaccia grafica che risulta per questo "classica", per non dire antiquata. L'esperienza utente nel suo complesso sembra essersi fermata ad almeno un decennio fa, se non di più, con bizantinismi vari che rendono XigmaNAS il meno user friendly fra tutti i sistemi qui proposti. Come TrueNAS, anche XigmaNAS è basato su FreeBSD e offre il supporto pieno a ZFS oltre che a UFS, il file system predefinito di FreeBSD.

XigmaNAS appare quasi come una versione di OMV per utenti esperti, con numerose opzioni avanzate che permettono di accedere a funzionalità aggiuntive al costo di una maggiore complessità. Ciò parte dalla gestione dei dischi: per un'operazione semplice come la formattazione di un disco è necessario "attivare" il disco nell'interfaccia di gestione dei dischi avendo cura di selezionare tutte le opzioni necessarie, dopodiché formattare il disco (in 4 passaggi) nell'interfaccia apposita. La creazione di un RAID, sia di tipo "tradizionale" via software che usando ZFS, deve essere fatta manualmente e richiede quindi di conoscere come effettuare correttamente le operazioni.

XigmaNAS non è pertanto un sistema pronto all'uso pensato per l'utente comune, ma per quell'utente che ha già dimestichezza con i sistemi operativi UNIX-like, che conosce il funzionamento di RAID e/o ZFS e che è disposto a spendere del tempo per configurare manualmente il proprio NAS. Il fatto che si tratti di un sistema per utenti esperti è evidente anche da piccoli dettagli come il fatto che il pannello "utenti" mostra tutti gli utenti del sistema, includendo anche account utente di sistema come "mysql" o "sshd" che normalmente non riguardano in alcun modo l'utente (fisico) del NAS. Dall'altro lato, però, questa complessità aggiuntiva permette anche di avere molta più flessibilità a disposizione: è infatti possibile configurare il proprio NAS in ogni minimo dettaglio.

È possibile effettuare aggiornamenti del sistema "in place", ovvero senza dover effettuare una re-installazione, ma per farlo è necessario scaricare manualmente il file di aggiornamento sul proprio computer, abilitare la modalità di aggiornamento dall'interfaccia grafica, caricare il file e attendere il completamento del processo.

XigmaNAS supporta un numero significativo di protocolli (SMB, FTP, NFS, AFP, iSCSI, rsync, DLNA/UPnP, DAAP) e applicazioni (Syncthing, Unison, BitTorrent, Dynamic DNS, un server web, LCDproc), nonché la virtualizzazione tramite VirtualBox. L'interfaccia Web mette inoltre a disposizione un file manager, un editor e una console. XigmaNAS è dunque estremamente potente e consente di cucirsi un sistema quasi su misura e dà un controllo notevole all'utente, con tutti i pro e i contro del caso.

Al di là dell'interfaccia, l'aspetto che abbiamo trovato più ostico di XigmaNAS è quello della documentazione: la wiki ufficiale è di difficile consultazione e poco chiara, con una divisione degli argomenti di difficile comprensione e una struttura che rende la navigazione più difficoltosa del dovuto. Ciò si traduce di conseguenza in una difficoltà maggiore del dovuto nel capire come eseguire operazioni anche banali o nell'individuare dove stiano i problemi. Per fare un esempio pratico, il sistema si rifiutava di lasciarci formattare il disco e trovare informazioni al riguardo è stato piuttosto complesso; alla fine ci siamo dovuti affidare alle discussioni sui forum per capire il problema.

Per tutte queste ragioni, non possiamo che consigliare XigmaNAS esclusivamente a chi ha già ampia esperienza nella gestione di sistemi UNIX-like e, più nello specifico, di sistemi server e di archiviazione di rete. Sul fronte dell'uso di risorse, XigmaNAS si posiziona sullo stesso livello di OMV quando non si usa ZFS; quando lo si utilizza, invece, non è dissimile da TrueNAS.

Unraid

Logo di Unraid

Unraid è per molti versi un sistema anomalo: contrariamente a tutti gli altri menzionati è disponibile esclusivamente in una versione a pagamento e usa una tecnologia proprietaria, chiamata Unraid, per la gestione dei dischi. Lo sviluppatore, Lime Technology, afferma che Unraid è la scelta preferita di chi ha molti file multimediali da gestire, di giocatori e di professionisti che gestiscono grandi quantità di dati. Il prezzo del sistema è di 59$ per la versione Basic (con un massimo di sei dischi collegati), 89$ per la versione Plus (con un massimo di 12 dischi) e 129$ per la versione Pro, senza alcun limite rispetto al numero di dischi collegati. È disponibile una versione di prova di 30 giorni, che è quella che abbiamo usato.

Il sistema risiede su una chiavetta USB e si lega ad essa per il proprio funzionamento: la chiave di licenza è collegata alla chiavetta, dunque cambiare quest'ultima significa dover riattivare la licenza. Ciò significa che è teoricamente possibile cambiare anche interamente le componenti del proprio NAS senza dover acquistare una nuova licenza. Il sistema risiede interamente in RAM una volta avviato, pertanto la chiavetta non viene usurata dall'uso continuo ma deve comunque rimanere inserita per salvare eventuali modifiche alla configurazione.

Come negli altri casi, Unraid mette a disposizione un'interfaccia grafica accessibile da browser che risulta molto intuitiva e semplice da usare. Insieme a TrueNAS, Unraid ha l'interfaccia più moderna e di facile comprensione. Nonostante ciò, però, sono presenti impostazioni che non sempre vengono chiarite e per le quali è necessario fare ricerche sui forum: ad esempio, la gestione delle cartelle condivise usando NFS avviene tramite regole da impostare manualmente; sebbene ciò sia normale nell'impostazione manuale di NFS, Unraid è l'unico sistema tra quelli oggetto di questa comparativa a non mettere a disposizione un sistema di selezione dei parametri da interfaccia grafica e risulta pertanto più ostico per chi non abbia già dimestichezza con lo strumento specifico.

In generale Unraid mette a disposizione una documentazione piuttosto corposa e talvolta molto approfondita, con spiegazioni tecniche del funzionamento delle varie parti del sistema. Sono però presenti delle lacune, come quella citata poc'anzi, che rendono l'approccio al sistema da parte di un neofita del mondo di Linux e delle reti meno semplice.

Unraid si fonda sul fatto che mantenere degli array di dischi identici non è sempre facile, in particolare in un ambiente casalingo o in un piccolo ufficio dove avere a disposizione diverse unità con caratteristiche simili può essere complesso. Questo è il punto di partenza della tecnologia Unraid, che sfrutta lo stesso approccio del normale RAID permettendo, però, di impiegare dischi di dimensioni diverse. Una spiegazione tecnica del funzionamento è presente nella documentazione ufficiale, ma si può riassumere dicendo che Unraid usa il disco più grande dell'array per memorizzare i bit di parità, che vengono calcolati allo stesso modo di una configurazione RAID tradizionale come RAID 5. Di fatto si tratta di un JBOD con un disco di parità aggiunto; è possibile aggiungerne un secondo così da offrire protezione efficace contro il guasto di due dischi nell'array. Nel caso in cui più di due unità si guastino, i dati sui dischi guasti sono da considerarsi persi: per questo motivo è comunque necessario prevedere dei backup del sistema.

Impostare un array è piuttosto facile, grazie a una procedura guidata, e richiede pochi minuti: perché il sistema sia utilizzabile serve un tempo piuttosto ridotto e nella nostra prova con una macchina virtuale dotata di tre dischi (da 34, 42 e 50 GB) sono bastati meno di 10 minuti perché fosse possibile iniziare a usare il NAS. Con dischi di dimensioni maggiori il tempo necessario è destinato a salire.

Unraid supporta i protocolli di condivisione SMB, NFS e FTP, ma non lo standard AFP usato in passato da macOS. Dal momento che i protocolli sono ampiamente supportati da tutti i sistemi operativi, inclusi quelli mobili, Unraid permette di avere i propri file a disposizione su qualunque dispositivo. La configurazione è relativamente semplice sebbene, come abbiamo già detto, NFS richieda che si conosca il suo funzionamento per impostazioni diverse da "condivisione pubblica".

È possibile utilizzare Unraid non solo come sistema operativo per gestire i file sul NAS, ma anche come base su cui eseguire macchine virtuali e container. La virtualizzazione avviene tramite KVM/QEMU, appoggiandosi dunque al kernel Linux, mentre i container sono eseguiti e gestiti tramite Docker; in entrambi i casi è disponibile una sezione dedicata nell'interfaccia via Web che permette di impostarli in via grafica e senza dover conoscere i comandi corrispondenti.

Le funzionalità di Unraid sono espandibili utilizzando delle applicazioni, fornite o come container per Docker o come software tradizionale che viene installato sul sistema. Per poter installare tali software è necessario seguire le istruzioni fornite sul forum ufficiale, con l'unico caveat che si tratta di applicazioni fornite dalla comunità e, dunque, senza supporto ufficiale da parte di Lime Technology.

Il minimo richiesto per gestire la sola archiviazione dei dati è di 2 GB di RAM, fatto che rende Unraid pari a OMV in termini di leggerezza e flessibilità.

Unraid è, nel complesso, uno dei sistemi più semplici da usare tra quelli che abbiamo provato e per questo è adatto anche a quegli utenti che hanno meno dimestichezza con la gestione di sistemi Linux. La tecnologia Unraid risulta poi estremamente efficace e comoda e permette di avere a disposizione un NAS robusto e affidabile anche senza dover seguire le normali regole di assemblaggio di un RAID, cosa che risulta particolarmente utile in ambito domestico o in un piccolo ufficio. In virtù di tutto ciò, il prezzo della licenza di base di Unraid appare giustificato, anche considerando il fatto che la licenza è perpetua e consente di aggiornare il sistema a versioni successive.

Sistemi operativi per un microserver per la virtualizzazione

Oggigiorno un NAS è sempre più usato non solo per l'archiviazione, ma anche per svolgere altri compiti: dopotutto l'hardware è ormai in grado di svolgere molteplici compiti e dedicarlo esclusivamente all'archiviazione, a meno che non si abbia esigenza di prestazioni estremamente elevate o di una separazione totale dei compiti, ha meno senso di un tempo. È per questo che vi proponiamo anche software per creare un vero e proprio microserver, sul quale è poi possibile gestire l'archiviazione usando la virtualizzazione o i container e ottenere così le funzionalità da NAS desiderate.

Le due alternative de facto sono VMware ESXi e Proxmox: sono per molti versi sistemi simili, a partire dalla focalizzazione sulla virtualizzazione, ma si differenziano molto per tipo di licenza (proprietaria nel caso di ESXi, GPL nel caso di Proxmox) e per flessibilità della versione gratuita, oltre che per architettura. ESXi è infatti un sistema interamente proprietario, mentre Proxmox è basato su Linux.

Tramite questi hypervisor di tipo 1 è possibile creare un microserver in grado di gestire macchine virtuali e/o container e che può dunque ospitare non solo l'archiviazione, ma anche funzionalità aggiuntive come firewall, software per la gestione di apparecchi IoT, server Web, repository per il codice e altro ancora.

VMware ESXi

Logo di VMware vSphere/ESXi

VMware è riuscita nel tempo a imporsi come lo standard de facto nel mondo della virtualizzazione e i suoi prodotti sono estremamente diffusi nel mondo aziendale. L'azienda mette a disposizione una versione gratuita di ESXi, il suo hypervisor, con alcune limitazioni alle funzionalità rispetto alla versione a pagamento. Per via della grande diffusione nelle aziende e dell'abbondanza di materiale di riferimento in Rete, può valer la pena considerare ESXi per il proprio microserver.

La principale limitazione della licenza gratuita è costituita dall'impossibilità di utilizzare le API vStorage per effettuare i backup a livello di macchina virtuale. Un'ulteriore limitazione è costituita dall'impossibilità di gestire le macchine tramite vCenter, dunque non è possibile creare cluster o avere funzionalità come la replica o l'alta disponibilità (o high availability in inglese). C'è inoltre un limite di 32 core fisici supportati dal sistema e di 8 core virtuali per ciascuna VM; si tratta di una limitazione che interesserà ben pochi utenti, ma che è bene segnalare in ogni caso.

Un elemento di cui tenere conto quando si parla di ESXi, così come avveniva per le distribuzioni basate su BSD menzionate prima, è il supporto all'hardware. ESXi è infatti pensato per essere eseguito sui server e ha requisiti hardware specifici che escludono una larga parte dell'hardware consumer; ciò è particolarmente vero a partire dalla versione 7.0, la più recente al momento della pubblicazione di questo articolo, che riduce notevolmente l'hardware supportato.

A patto che sia presente hardware compatibile, ESXi si installa facilmente e richiede solo pochi minuti. La modalità preferita di installazione prima della versione 7.0 era su una chiavetta USB, dato che il sistema risiedeva poi in RAM e non richiedeva di effettuare scritture su disco, ma dalla versione 7.0 tale requisito è cambiato e ora non è più possibile, pertanto bisogna avere a disposizione un disco per il sistema o bisogna rinunciare a dello spazio per poter effettuare l'installazione.

Uno dei vantaggi di ESXi è la sua interfaccia accessibile da browser: è semplice e lineare, con funzionalità ben chiare che rendono l'approccio piuttosto semplice. Per molti versi on è troppo dissimile da programmi come VirtualBox o VMware Workstation, dunque chiunque abbia mai usato software per la virtualizzazione può configurare in breve tempo le proprie macchine virtuali e il proprio ambiente. Dall'altro lato, però, molte delle opzioni avanzate non sono accessibili e richiedono l'uso del terminale, cosa che rende ESXi paradossalmente meno accessibile rispetto a concorrenti come Proxmox.

Le macchine virtuali possono essere gestite tramite il browser, usando la console integrata che permette di accedere all'output video e di interagire direttamente con la VM, oppure tramite VMware Remote Console, un programma disponibile per tutte le principali piattaforme desktop (incluso Linux) che mette a disposizione ulteriori strumenti.

ESXi non supporta i container nativamente: per ottenere tale supporto è necessario acquistare a parte una licenza per Tanzu, la piattaforma per i container di VMware. Non si tratta di un prodotto per piccole imprese e utenti privati, dal momento che il prezzo di 990,50€ annui può essere uno scoglio difficile da superare per tali utenti. Il prezzo per ottenere sia i container che le piene funzionalità di ESXi, invece, supera i 5.500€, a ulteriore conferma che si tratta di uno strumento non accessibile a tutti.

Proxmox Virtual Environment

Logo di Proxmox

Proxmox (il nome completo è "Proxmox Virtual Environment", ma lo abbreviamo in "Proxmox" per semplicità) è il sistema che abbiamo scelto per il nostro microserver: è un ambiente leggero e flessibile basato su Debian Linux, che fa uso del kernel di Ubuntu con patch specifiche per migliorare le prestazioni nella virtualizzazione. Dal momento che Proxmox supporta sia la virtualizzazione che i container, i limiti del suo utilizzo sono dettati principalmente dalla fantasia e dall'hardware utilizzato.

Proprio questa flessibilità estrema, controbilanciata da un impatto minimo sulle risorse disponibili, è ciò che ci ha spinto a considerare (e poi scegliere) Proxmox come ambiente per il nostro microserver. In particolare, l'uso dei container si rivela interessante per ospitare applicazioni terze mantenendo un alto livello di sicurezza e, al contempo, di facilità di aggiornamento.

Proxmox si installa e gestisce come una qualsiasi distribuzione Linux, dunque la facilità d'uso è piuttosto elevata nel momento in cui si abbia già familiarità con l'ambiente del Pinguino. L'aspetto cui fare attenzione è quello del supporto all'hardware di ultimissima generazione: abbiamo effettuato l'installazione con la versione 6.1 e la scheda di rete integrata nella scheda madre MSI B550I Gaming Edge WiFi che abbiamo usato era troppo nuova per il kernel fornito con il sistema operativo, dunque è stato necessario aggiungere manualmente il modulo dei driver post-installazione (avvenuta con un adattatore esterno). Tale problema non è presente con l'ultima versione che abbiamo provato sul sistema, la 6.4, che usa il kernel 5.4.

Contrariamente a ESXi, è sconsigliabile installare il sistema su una chiavetta USB: Proxmox scrive infatti su disco, ad esempio per salvare i log, e nel giro di qualche mese finisce per esaurire le scritture delle chiavette USB. È dunque consigliabile installarlo su un disco rigido, o tradizionale o SSD, per assicurarsi maggiore longevità. Nel nostro caso l'abbiamo installato su un SSD NVMe da 128 GB.

Una volta installato il sistema, con un processo che dura pochi minuti e che permette di specificare tutte le principali opzioni dal filesystem (compreso ZFS, che è il file system predefinito per l'archiviazione) alla configurazione di rete, è possibile gestire il sistema interamente da un'interfaccia grafica via browser. Non è necessario installare alcun software per collegarsi al sistema o alle macchine virtuali ospitate su di esso: è tutto gestibile interamente dal proprio browser, il che rende la gestione del sistema e delle VM estremamente semplice e libera dalla necessità di appoggiarsi a piattaforme client specifiche. Ciò è in contrasto con ESXi, che richiede l'installazione del software di gestione vSphere Client (disponibile esclusivamente per Windows) per poter accedere a tutte le funzionalità.

L'interfaccia è semplice e chiara e mette a disposizione tutto ciò che è utile per gestire il server, da cruscotti che mostrano l'utilizzo delle risorse a strumenti per gestire l'archiviazione, le macchine virtuali, i container, la connessione di rete e così via. L'ambiente è simile, per certi aspetti, a VMware ESXi, ma ha alcuni elementi di differenza che lo rendono ben distinto, a partire dalla gestione dei dischi e delle locazioni dove salvare file, configurazioni di macchine virtuali e container e dischi virtuali; la documentazione disponibile è ampia e molto chiarae così anche la quantità di discussioni in Rete per trovare informazioni su procedure e risoluzione dei problemi.

Un aspetto non intuitivo è la creazione di percorsi dove archiviare dati specifici. Proxmox restringe infatti a specifici tipi di dati l'uso dei vari percorsi: ad esempio, è possibile definire una cartella dove inserire immagini ISO e una seconda cartella dove inserire immagini dei container. Per poter fare ciò, però, bisogna usare la voce "storage" all'interno di "datacenter", fatto poco intuitivo nel momento in cui si gestisce una sola macchina.

Per quanto sia riservato a casi specifici, infatti, un aspetto interessante di Proxmox è la possibilità di gestire più macchine dalla stessa interfacciacosì da poter avere una visualizzazione complessiva di un cluster e da poter avere a disposizione funzionalità avanzate come la replica, lo spostamento delle VM e degli snapshot da una macchina all'altra e così via.

L'interfaccia propone molte opzioni che risultano utili nel contesto di un data center (high availability, replica, server di archiviazione delle metriche, supporto a Ceph, clustering...), ma le funzionalità fondamentali sono facilmente accessibili e presentate chiaramente, dunque la presenza di elementi avanzati non costituisce un ostacolo, per quanto possa apparire soverchiante in principio. La creazione di macchine virtuali è semplice e usando i valori consigliati per la maggior parte delle opzioni, a esclusione di parametri come RAM e CPU, è possibile ottenere delle VM funzionanti senza particolari problematiche.

È possibile accedere all'output video delle macchine virtuali direttamente tramite il browser: un apposito tasto nell'interfaccia apre NoVNC, che mostra il video delle VM e permette di interagirvi direttamente, con l'unica limitazione significativa rappresentata dalla difficoltà di usare funzioni come "copia" e "incolla".

I container sono leggermente più difficili da configurare delle VM per il solo motivo che è necessario comprendere la logica sottostante: prima di poter creare un container è infatti necessario scaricare un'immagine di base selezionandola o fra quelle di base che mettono a disposizione un sistema "nudo e crudo" (ad esempio con base Ubuntu, Debian o CentOS), o fra quelle già configurate e pronte all'uso che consentono di avere un container dedicato a specifiche applicazioni come Jellyfin, Nextcloud o Wireguard. Proxmox usa LXC (Linux Containers) e non Docker, dunque se si vuole impiegare quest'ultimo è necessario farlo da riga di comando poiché non è presente alcun supporto nell'interfaccia grafica.

Il sistema integra uno strumento di backup, ma è possibile usare anche Proxmox Backup Server su una macchina a parte per gestire tale compito avendo anche, in questo modo, una maggiore flessibilità: Proxmox Backup Server, che è un software di backup distinto da Proxmox VE, supporta infatti backup incrementali, deduplicazione, compressione, cifratura con AES256, checksum e ripristino a livello di file e cartelle. Come nel caso di Proxmox VE, è possibile ottenere Proxmox Backup Server gratuitamente e senza limitazioni all'uso.

Per via della maggiore espandibilità e flessibilità di Proxmox, per la maggior quantità di funzionalità disponibili, per la sua natura open source, nonché per l'assenza di limitazioni nella versione gratuita, raccomandiamo l'uso di Proxmox al posto di ESXi per utenti privati e piccole aziende. I vantaggi che ESXi offre sono molto limitati in tali casi e si riducono di fatto al caso in cui si abbiano già competenze con VMware o in cui si vogliano svilupparle.

Scelta del file system

Indipendentemente dal sistema operativo utilizzato, il file system è una delle parti fondamentali del sistema: da esso dipende la sicurezza dei dati e usare un file system affidabile e notoriamente solido è importante per evitare problemi. Se, infatti, è vero che bisogna comunque effettuare un backup dei dati per avere la certezza che questi siano al sicuro, dall'altro lato è anche vero che è importante avere un sistema affidabile e in grado di funzionare senza intoppi.

Dal momento che i sistemi operativi che abbiamo proposto sono prevalentemente UNIX-like, ci concentriamo sui file system che questi offrono.

ext4

ext4 è il file system predefinito in moltissime distribuzioni Linux: diretto successore di ext3, a cui aggiunge diverse funzionalità, ext4 è solido e affidabile nella stragrande maggioranza dei casi. Grazie al journaling, ovvero la registrazione dei cambiamenti effettuati per evitare che il file system finisca in uno stato incoerente, la probabilità di perdere dati anche a seguito di uno spegnimento improvviso o di un crash è notevolmente ridotta rispetto ai file system tradizionali; va notato che tutti i principali file system in uso oggigiorno sono dotati di questa funzionalità.

ext4 non supporta, però, in via nativa funzionalità avanzate come gli snapshot, i volumi virtuali o le configurazioni RAID e richiede strumenti esterni (come, ad esempio, LVM) per poterle ottenere. Gestire questi scenari più complessi è dunque meno semplice che con file system come Btrfs o ZFS.

Btrfs

Btrfs nasce come risposta del mondo Linux a ZFS e per questo cerca di portare la maggior parte delle funzionalità di quest'ultimo nel mondo del Pinguino. Btrfs offre funzionalità avanzate non disponibili nativamente in file system come ext4; tra queste ricordiamo gli snapshot, la gestione dei volumi e delle configurazioni RAID. Dall'altro lato, però, lo sviluppo di Btrfs è piuttosto travagliato e, nonostante proceda da diverso tempo, soffre ancora di molte problematiche irrisolte.

In generale sconsigliamo l'utilizzo di Btrfs a causa dei numerosi problemi di cui soffre e delle forti limitazioni che attualmente lo caratterizzano. Tra queste ricordiamo l'impossibilità di usare le quote mantenendo un livello prestazionale accettabile e l'impossibilità di utilizzare la compressione trasparente dei volumi. In più, Btrfs è sconsigliato ufficialmente nel caso in cui si utilizzino RAID5 e RAID6 e presenta problemi quando viene utilizzato in RAID1 con due dischi (come riportato sulla wiki di Debian).

In altri termini, per quanto Btrfs sia potenzialmente un ottimo file system, al momento si rivela ancora non pronto per gestire carichi di lavoro in ambienti "di produzione" (e un NAS è considerabile tale, che venga impiegato in ambiente aziendale o casalingo).

ZFS

ZFS nacque in seno a Sun Microsystems come file system per Solaris e divenne un progetto open source quando l'azienda decise di aprire i sorgenti dell'intero sistema operativo, creando OpenSolaris. ZFS non è solo un file system, ma anche un insieme di strumenti per la sua gestione: contrariamente a file system tradizionali come ext4, ZFS include la creazione e gestione di snapshot, pool (ad esempio, un RAID di dischi), dataset (funzionalmente simili ai normali file system), nonché la possibilità di gestire repliche e cloni di questi ultimi. ZFS include altresì la possibilità di gestire nativamente i dispositivi di archiviazione in fasce, ad esempio per includere uno o più livelli di cache.

ZFS è uno dei file system più robusti e flessibili a disposizione oggigiorno, ma tale robustezza porta anche a una complessità molto maggiore rispetto agli altri file system, che normalmente non offrono le stesse funzionalità e richiedono l'uso di strumenti esterni per farlo.

Un aspetto particolarmente rilevante di ZFS nell'ambito dell'archiviazione dei dati è il fatto che periodicamente i dati vengono controllati ed eventuali errori vengono corretti in automatico e spesso senza che l'utente debba fare alcunché. Ciò porta il file system a offrire un'affidabilità maggiore rispetto ai suoi concorrenti. Nel caso in cui si abbia a disposizione un quantitativo significativo di RAM è inoltre possibile abilitare la deduplicazione dei dati.

È per molti versi il file system ideale per l'archiviazione e per questo è quello che consigliamo di utilizzare, dato che offre una maggiore certezza che i propri dati siano al sicuro, nonostante sia anche più complesso.

Costruire un NAS: cos'è il RAID e quale tipo scegliere

RAID è un acronimo che sta per "Redundant Array of Inexpensive Disks" (letteralmente "batteria ridondante di dischi poco costosi") e rappresenta un insieme di tecnologie che permette di gestire più dischi per fornire maggiori prestazioni o affidabilità del sistema. Ne esistono diversi tipi, qui elenchiamo i più comuni:

  • RAID 0: chiamato anche "striping", prevede l'uso di almeno due dischi identici tra i quali i dati vengono divisi e che vengono visti dal sistema come un disco le cui dimensioni sono pari alla somma dei due dischi fisici. Il vantaggio di questa modalità è che offre maggiori prestazioni, lo svantaggio è che la rottura di un disco rende impossibile ricostruire i dati presenti sull'altro;
  • RAID 1: chiamato anche "mirroring", il RAID 0 usa due dischi (o multipli di due) per mantenere due copie identiche dei dati, così che la rottura di un disco non porti alla perdita dei dati e che il sistema possa continuare a funzionare senza interruzioni;
  • RAID 10: una combinazione dei due precedenti, è un RAID 1 di RAID 0, così da offrire i vantaggi di entrambi. Il suo problema principale sta nel fatto che richiede almeno quattro dischi e che due di questi non sono utilizzabili;
  • RAID 5: il RAID 5 è un compromesso che distribuisce i dati sui vari dischi presenti nella batteria (almeno tre) e crea dei "bit di parità" che vengono anch'essi distribuiti, cosicché se un disco smette di funzionare è possibile inserirne uno nuovo e ripristinare i dati su di esso. Questa operazione viene effettuata proprio grazie ai bit di parità, che permettono di ricavare i dati mancanti per differenza da quelli presenti. Tutti i dischi vengono utilizzati, ma la presenza del bit di parità fa sì che l'equivalente della capacità di un disco non sia sfruttabile;
  • RAID 6: simile al RAID 5, ma con due bit di parità così da poter sopportare la rottura di due dischi (su un minimo di quattro).

È importante fare però presente un aspetto cruciale: per quanto ci siano vari livelli di RAID che promettono di contenere o eliminare la perdita di dati, l'uso del RAID non è da ritenersi un sostituto del backup. La protezione offerta dal RAID è da ritenersi utile per mantenere la continuità del servizio, non come metodo di prevenzione complessiva dalla perdita dei dati. Per questo l'uso del RAID non è un'alternativa di una politica di backup solida, tanto in ambito aziendale quanto in ambito privato.

Il nostro consiglio è piuttosto quello di non usare affatto il RAID quando non siano presenti esigenze stringenti di continuità del servizio. È meglio, infatti, utilizzare appieno lo spazio di archiviazione messo a disposizione dai dischi e prevedere backup continui effettuati con modalità corrette, piuttosto che affidarsi alla debole protezione del RAID; ciò è vero in particolare nel caso di sistemi in piccole aziende o casalinghi, dove si può risparmiare sull'acquisto di dischi da inserire nel RAID per acquistarne, invece, da dedicare al backup.


Questa guida mette a disposizione gli elementi essenziali per scegliere come costruire il proprio sistema. Il nostro intento non è quello di definire una scelta "migliore" rispetto alle altre, poiché non riteniamo che ne esista una in senso astratto e assoluto; le indicazioni che trovate in questo articolo sono di carattere generale e tese a fornire sufficienti informazioni da poter effettuare una scelta consapevole in base alla propria situazione specifica. Invitiamo comunque i lettori a scrivere i propri suggerimenti e a condividere le proprie esperienze nei commenti.

76 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
bonzoxxx14 Dicembre 2021, 17:37 #1


Articolo molto bello, complimenti
demon7714 Dicembre 2021, 18:03 #2
Spettacolo!!
Lo attendevo da un po' dopo il primo capitolo!

Intanto però con l'aiuto di qualche amico del forum ho costruito il mio baracchino e configurato con openmediavault!
Soddisfazione!
Opteranium14 Dicembre 2021, 18:12 #3
finché trovavi un raspberry a 60 euro era accettabile, ma coi prezzi raddoppiati di adesso, trovo che un DS118 a 150 euro con tutto pronto sia la soluzione migliore per uso domestico
ulisss14 Dicembre 2021, 18:23 #4
molto interessante
piani14 Dicembre 2021, 19:00 #5
Ci avrei visto bene anche Xpenology, comunque tranne questa ovvia mancanza, è proprio l'articolo che stavo cercando!!!
phmk14 Dicembre 2021, 20:21 #6
Bello..
Uso già TrueNAS, XigmaNAS ed ESXi, dopo aver letto l'articolo proverò anche Proxmox
steverm14 Dicembre 2021, 20:31 #7
Io ho comprato un ini pc windows 10 grande come una mano (100 euro, atom quadricore 65 GB emmc wifi 4 GB ram) e l'ho incollato ad un disco WD da 6 TB e mi sono fatto un bel NAS veloce che comando a cui accedo in locale con \\... o in remoto con anydesk ;-)
steverm14 Dicembre 2021, 20:31 #8
mini pc
steverm14 Dicembre 2021, 20:32 #9
64 GB
Vash8815 Dicembre 2021, 00:56 #10
Fantastico, ho letto la prima parte e procedero a leggere con calma il resto!

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^