Da diverso tempo, dovendo sostituire il mio vecchio NAS Synology, ormai non più performante per obsolescenza tecnologica e peraltro dotato esclusivamente di un hard disk, ero indeciso se acquistare un nuovo “NAS commerciale bello e pronto” – come, appunto, quelli della Synology o della Qnap, per esempio – o se avventurarmi nella realizzazione di un nas “fatto in casa”, con alcune soluzioni open source presenti sul web.

In tale contesto, avevo letto, un po' qua e là, in merito a FreeNAS…approfondendo la lettura, ho scoperto, come chi apre un “vaso di Pandora”, le enormi potenzialità di questa soluzione, che è tra le più complete e professionali, con interessanti plugin installabili e fruibili (ad esempio, quello relativo ad un media server come Plex…), oltre al fatto che adotta un filesystem particolare (mi riferisco a ZFS).

Di certo non ho le competenze per una valutazione approfondita del citato filesystem, ma leggendo qua e là nel web mi è sembrato di capire che i pregi derivanti dal suo utilizzo siano maggiori rispetto ai difetti. Leggendo sempre di più, ho capito anche che, sebbene chi voglia installarsi FreeNAS su un normale pc ormai in disuso lo possa tranquillamente fare, trattandosi di una soluzione che come dicevo è veramente professionale, è forse opportuno seguire le indicazioni di massima di chi ha ideato il sistema e che possono essere riassunte nelle seguenti:- utilizzo di una ram minima di 8 GB, di tipo ECC (ossia con “correzione degli errori”);- utilizzo di schede madri e processori che supportino la correzione degli errori (ad esempio, i processori Xeon di Intel).

Alla fine, quindi, “far girare” un server domestico con FreeNAS non è estremamente economico, nel senso che o si decide di costruirsi da sé una macchina aventi le predette caratteristiche, oppure occorre andare alla ricerca di un assemblato che però sia una vera e propria workstation e non un comune pc desktop.

Nel mio caso, dopo essermi ampiamente e dettagliatamente documentato, dirò che la scelta definitiva in merito alla sostituzione del mio nas Synology è stata la seguente:

- realizzazione di un nas “fatto in casa” (scelta quindi preferita all’acquisto di un nuovo prodotto commerciale “preconfezionato”);- utilizzo del sistema operativo FreeNAS;

- acquisto di una nuova workstation assemblata, avente i requisiti di scheda madre, processore e ram che citavo prima (mi riferisco al supporto ECC, ossia alla “correzione degli errori”).

Pertanto, sebbene alla fine la spesa per l’hardware sia stata non delle più economiche (intorno ai 700 euro, dischi per storage esclusi), aggiungo però che non sono assolutamente pentito della scelta fatta, considerato che in termini di prestazioni (e credo anche di affidabilità) il risultato che ho ottenuto è notevolmente superiore a quello che avrei raggiunto acquistando, sostanzialmente con il medesimo budget, un top di gamma “commerciale”.

Vediamo, in dettaglio, quali erano le mie esigenze (obiettivo) e come le ho soddisfatte in termini di hardware…

Obiettivo:

- costruire un server nas con due dischi in mirror da destinare ad archivio principale (Volume 1, relativo ai “dati importanti”) e “n” altri dischi (nel mio caso, n. 2) da destinare ad archivio secondario (Volume 2, relativo ai “dati meno importanti”);

- condivisione in rete e da remoto dei predetti archivi, mediante protocolli Samba e FTP;

- installazione di un media center per la visione dei propri file multimediali (video, foto, musica): utilizzata la soluzione gratuita Plex;

- backup esterno dei dati del server: utilizzata la soluzione gratuita FreeFileSync.

Hardware:

- Workstation Dell Poweredge T30, equipaggiato da un processore Xeon E3-1225V5 e 16 GB di ram, frequenza 2133 Mhz, tipo ECC;

- n. 2 hard disk WD Red da 4 TB ciascuno destinati al Volume 1 (in mirroring: totale archivio 4 TB);- n. 2 hard disk, il primo da 2 TB ed il secondo da 1 TB, destinati al Volume 2 (in stripe: totale archivio 3 TB);- n. 1 SSD da 60 GB destinato al boot (installato il sistema operativo);

- n. 1 scheda PCI Syba per l’espansione delle porte Sata (necessaria in quanto i quattro hard disk destinati allo storage occupano tutte le porte Sata disponibili sulla scheda madre) e consentire quindi il collegamento del disco di boot e di altri eventuali futuri dischi di ampliamentzo dello storage;

- n. 1 adattatore esterno da HDMI a DVI, al fine di evitare l’installazione di una specifica scheda PCI con uscite VGA o DVI (la workstation Dell non ha uscite VGA/DVI e tale adattatore costituisce il modo più economico per collegare la scheda grafica integrata al monitor, per consentire l’installazione del sistema operativo).

Tutto ciò detto, la presente guida si pone l’obiettivo di supportare chi, dopo aver installato il sistema operativo FreeNAS, avesse la necessità di configurare il server. Infatti, sebbene sul sito FreeNAS (https://freenas.org) si possano avere tutte le indicazioni necessarie, il tempo da dedicare agli approfondimenti per comprendere tutti i passi operativi da compiere è veramente tanto!

Quindi, chi dovesse avere lo stesso obiettivo sopra descritto può tranquillamente seguire le presenti istruzioni e si ritroverà un nas perfettamente funzionante, senza sbattere la testa qua e là (magari ritrovandosi anche istruzioni in lingua inglese!).

INSTALLAZIONE DEL SISTEMA OPERATIVO: SU QUALE SUPPORTO (SSD O PENDRIVE)?

Ancorché, come sopra detto, la guida si riferisca prettamente alla configurazione e non all’installazione di FreeNAS, ritengo opportuno esprimere qualche considerazione sul supporto da utilizzare per l’installazione del sistema operativo… Personalmente, ho preferito installare il sistema operativo su un SSD, essendo quest’ultimo, a mio avviso, fondamentalmente più affidabile di una pendrive; questa soluzione, ovviamente, costringe a sacrificare una porta Sata della propria scheda madre proprio per il disco di sistema, salvo che non si opti per installare un’apposita scheda PCI per l’espansione delle porte Sata disponibili (è ciò che ho fatto io).

Se però l’installazione su pendrive costituisce la “scelta obbligata”, il miglior consiglio è quello di procedere ad un’installazione in mirror su due pendrive (scelta che avevo adottato inizialmente): questo fa sì che il sistema risiederà su entrambi i supporti e qualora l’avvio non risulti possibile dal primo, il sistema proverà a leggere i dati dal secondo. In questi casi, la presenza di una pendrive compromessa verrebbe segnalata e garantirebbe all’utente di poter procedere, in tutta tranquillità, alla sostituzione della pendrive guasta con la procedura di “sostituzione disco” e di resilvering. Insomma, ancorché l’utilizzo di due pendrive non sia indispensabile (il sistema potrebbe essere installato anche su una pendrive soltanto), personalmente credo che avere due supporti di boot in mirroring sia più cautelativo.

In entrambi i casi (sia che si installi il sistema su SSD o su pendrive, anche in mirroring), è certamente opportuno, una volta installato il sistema ed effettuate le configurazioni del nas a proprio piacimento, procedere ad un salvataggio in locale del file di configurazione (dal menù Sistema > Generale). In caso di guasto, infatti, è sicuramente valida, immediata e funzionante la seguente strategia per ripristinare il sistema:

- eseguire una reinstallazione pulita del sistema operativo con il CD contenente la versione del sistema operativo che era in esercizio;

- fare l’upload del file di configurazione precedentemente salvato (nota: personalmente ho salvato due file di configurazione…il primo relativo alla configurazione del sistema installato su SSD ed il secondo relativo, invece, alla configurazione del sistema installato su pendrive in mirror; infatti, a seconda della reinstallazione che s’intende operare, occorrerà scegliere l’uno o l’altro file).

Al riavvio della macchina, il sistema riprenderà a funzionare esattamente come in precedenza, riconoscendo i volumi già configurati e leggendo i dati in essi contenuti.

PRIME CONFIGURAZIONI DI SISTEMA

Una volta installato il sistema operativo, accedere alla pagina web del proprio server digitando l’indirizzo IP relativo (durante il caricamento del sistema operativo, tale indirizzo IP viene indicato…è comunque preferibile effettuare un’Address Reservation nel router, in modo che quest’ultimo attribuisca al server nas sempre lo stesso indirizzo locale). Comparirà la seguente videata (fig. 1):

Fig. 1

GUIDA COME CONFIGURARE SERVER NAS DOMESTICO FREENAS BUILD 11.2-U1 - Fig. 1 - accesso interfaccia

Nel campo Username indicare root e come Password riportare quella creata durante il processo di installazione. Eseguito, quindi, l’accesso all’interfaccia web del server, come prima cosa occorre cambiare la predetta password (dalla rotella Impostazioni, in alto a destra, in dashboard).

Fatto ciò, poiché quasi tutte le configurazioni a cui si riferisce la presente guida sono state effettuate nell’interfaccia legacy del NAS, consiglio di effettuare il logoff e di accedere nuovamente a tale interfaccia legacy, cliccando sull’apposito link presente nella pagina di accesso (vds. precedente fig. 1).

Una volta rientrati, nella barra degli strumenti clicchiamo su Sistema e successivamente suGenerale. Nella videata che si aprirà dovremo modificare i campi:

• Lingua;

• Mappa;

• Fuso Orario.

Nella sezione Email del medesimo menù Sistema dovremo compilare la maschera con i dati di un indirizzo mail che il sistema utilizzerà per inoltrare all’utente principale gli alert/le notifiche di sistema.

L'INDIRIZZO IP DEL SERVER NAS

Se non si è configurata un’Address Reservation nel router (in modo che quest’ultimo attribuisca al server nas sempre lo stesso indirizzo IP), è necessario registrare in questa sezione l’indirizzo IP statico del NAS.

CREAZIONE DEL/I VOLUME/I DEL/I DATASET

Nella barra degli strumenti clicchiamo su Storage e successivamente su Volume Manager (vds. fig. 2):

Fig. 2

GUIDA COME CONFIGURARE SERVER NAS DOMESTICO FREENAS BUILD 11.2-U1 - Fig. 2 - volume manager

Nella videata che comparirà, al campo Volume Name, indicare il nome da attribuire al Volume (ad es. Volume1), selezionare il disco da aggiungere… Per il mirror (copia a specchio di due hard disk), scegliere mirror dopo aver selezionato i due dischi (preferibilmente della medesima dimensione).Cliccare su Add Volume in basso a sinistra.

Tornati alla maschera principale, riscontreremo il volume creato (come in fig. 2); a questo punto dobbiamo creare anche il Data Set principale nel volume: selezioniamo il volume appena creato, andiamo in basso e clicchiamo sul pulsante Create dataset (quello posto subito a destra rispetto alla “chiave inglese”); si aprirà la seguente videata:

Fig. 3

GUIDA COME CONFIGURARE SERVER NAS DOMESTICO FREENAS BUILD 11.2-U1

Nel campo Nome Dataset indichiamo il nome da attribuire al Dataset (può essere indicato lo stesso nome del volume creato e quindi, nel nostro caso, Volume1). Cliccare sul pulsante Aggiundi Dataset, posto in basso a sinistra.

Qualora volessimo aggiungere altri dischi non in mirror, possiamo creare un secondo volume (Volume 2), nel quale inserire, ad esempio, più dischi nel Dataset, magari in modalità stripe (a differenza del mirror, la dimensione del volume2 sarà pari alla sommatoria delle dimensioni dei singoli dischi inseriti nel volume).

La creazione di due volumi con quattro dischi (due in mirror nel volume 1 e altri due in stripe nel volume 2) è una configurazione base molto interessante: il volume 1 potrà essere utilizzato per i dati ritenuti più “importanti”, per i quali è opportuno avere una maggiore ridondanza, mentre il volume 2 potrà essere utilizzato per i dati ritenuti meno importanti).

CREAZIONE DEL GRUPPO E DELL'UTENTE

Nella barra degli strumenti, clicchiamo su Account e successivamente su Add Gruppo; si aprirà una finestra nella quale dobbiamo compilare i seguenti campi:

• Gruppo ID: indichiamo un numero superiore a 1000 (ad es. 1001 per il primo ed unico gruppo che creiamo in questa esemplificazione);

• Nome Gruppo: inseriamo il nome che intendiamo attribuire al gruppo (ad es. Nashome). Chiudiamo la configurazione cliccando su OK in basso a sinistra.

Tornati alla maschera Account, selezioniamo Utenti (in alto a sinistra) e Visualizzazione Utenti. Selezioniamo l’utente root e clicchiamo in basso a sinistra su Modifica utente. Nella maschera di configurazione che si aprirà indichiamo, nell’apposito campo, l’indirizzo Email dell’utente in questione (è l’indirizzo di destinazione di alert/notifiche).

Adesso clicchiamo su Add Utente; si aprirà una finestra nella quale dovremo censire l’utente principale; dobbiamo compilare i seguenti campi:

• ID utente: indichiamo lo stesso numero che abbiamo indicato per il gruppo sopra creato (ossia 1001 nel nostro esempio);

• Nome Utente: inseriamo il nome che intendiamo attribuire all’utente;

• Gruppo primario: previa deselezione della casella Crea nuovo gruppo primario, riferire l’utente al gruppo come sopra creato (ossia Nashome, nel nostro caso);

• Directory home: agganciamo l’utente al primo DataSet sopra creato (Volume 1);

• Nome completo: attribuiamo un nome all’utente (può essere anche lo stesso valore inserito nel campo Nome Utente);

• E-mail: inseriamo l’indirizzo mail dell’utente (serve per fare arrivare gli alert di sistema);

• Password: creiamo una password per l’utente (servirà per autenticarsi in tutti gli accessi che effettueremo);

• Conferma password: ripetiamo la password di cui sopra;

• Permessi cartella home: preoccupiamoci di riscontrare che l’utente abbia i permessi in “Rear”, “Write” ed “Execute”.

Chiudiamo la configurazione cliccando su OK in basso a sinistra.

Creare un secondo utente al quale riferire, come Directory home, il Volume 2.

MODIFICA DEI PERMESSI NEL/I VOLUME/I E NEL/I DATASET

Per default, i permessi sono attribuiti all’utente root. Noi dobbiamo riferirli all’utente pincipale che abbiamo creato.

Pertanto, torniamo su Storage e procediamo come segue:

• selezioniamo il Volume 1;

• clicchiamo sul pulsante Cambia i permessi (in basso a sinistra);

• nella maschera che si aprirà modifichiamo i campi Proprietario (utente) e Proprietario (gruppo), scegliendo, rispettivamente, l’utente e il gruppo creati;

• in Permission Type dobbiamo selezionare Windows.

Chiudiamo la configurazione cliccando su OK in basso a sinistra.

La stessa operazione dev’essere eseguita sul DataSet.

Dobbiamo ripetere le operazioni di cui sopra anche per il Volume 2 e per il relativo Dataset, indicando i permessi per l’utente principale.

CONDIVISIONI

Dopo aver eseguito tutte le operazioni sopra descritte, dobbiamo occuparci della cosa più importante: poter “vedere” il nostro archivio da un dispositivo qualsiasi (ad esempio, un pc equipaggiato con Windows o uno smartphone/tablet) e, soprattutto, poterci lavorare in scrittura (download/upload di file e cartelle).

Per prima cosa, occupiamoci di abilitare la condivisione all’interno della LAN; poi ci dedicheremo anche al collegamento WAN (ossia, da remoto).

Servizio Samba (aprire porta TCP “445” nel router)

Nella barra degli strumenti selezioniamo Condivisione, clicchiamo su Windows (SMB) e successivamente su Add elemento condiviso di Windows (SMB); si aprirà una finestra nella quale dovremo compilare i seguenti campi:

• Percorso: selezionare la directory che intendiamo raggiungere (nel nostro caso trattasi di Volume1);

• Nome: attribuiamo un nome alla nostra condivisione (ad es., può essere inserito il nome Nashome1).

Chiudiamo la configurazione cliccando su OK in basso a sinistra.

Ripetiamo la configurazione anche per la Nashome2 (Volume 2)

Nel menù di sinistra dell’interfaccia web, selezionare Servizi > Controllo Servizi; verificare che il servizio relativo alla condivisione appena creata sia in stato Running (bottone verde) e che la casella Start on boot sia selezionata.

Abbiamo creato la condivisione. Se andiamo nel desktop del nostro pc equipaggiato con Windows, cliccando su Questo PC dovremmo trovare l’icona del nostro server e selezionandola dovremmo poter entrare nelle due directory. E’ opportuno crearsi un collegamento sul desktop della connessione Samba, visto che alcune volte l’icona del dispositivo visibile in Rete non compare. In alternativa, si può anche censire una connessione all’unità di rete.

Servizio FTP (aprire porta TCP “21” nel router)

Il servizio FTP può essere attivato qualora ciò non sia già stato fatto su altro server FTP (come, ad esempio, il proprio router, spesso configurato come server FTP per poter raggiungere un hard disk ad esso collegato).

Qualora, invece, si voglia configurare il server nas anche per la connessione FTP procedere secondo le seguenti istruzioni.

Nel menù di sinistra dell’interfaccia web, selezionare Servizi > Controllo Servizi; cliccare sulla chiave inglese del servizio FTP; si aprirà una maschera nella quale dovremo compilare i seguenti campi:

Porta: digitiamo il valore 21;

• Percorso: selezioniamo la directory che intendiamo raggiungere (nel nostro caso trattasi di nashome);

• Consenti il Login all'Utente Locale: selezionare questa opzione;• Usa sempre Chroot: selezionare questa opzione.

Chiudiamo la configurazione cliccando su OK in basso a sinistra.

Abbiamo creato anche la condivisione FTP. Esattamente come abbiamo fatto per Samba, in Servizi > Controllo Serviziì preoccupiamoci di verificare che FTP sia in stato Running e che la casella Start on boot sia selezionata.

A questo punto potremo creare una connessione FTP dal nostro pc client ed accedere al server nas in modalità FTP, appunto.

Servizio SSH (aprire porta TCP “22” nel router)

Il servizio SSH dev’essere attivato necessariamente per inoltrare al server, ad esempio, comandi in Secure Shell (appunto), ossia da “riga di comando”.Non necessariamente dev’essere attivato per le connessioni da remoto (mediante l’apertura della porta TCP “22” nel router), ma per le attività all’interno della rete è certamente opportuno: ad esempio, se volessimo programmare uno spegnimento automatico del sistema (vds. successivo par. CRON JOBS), è una condizione indispensabile.Qualora attivato, anche questo servizio dev’essere in stato “Running” e con avvio all’accensione del nas (“Start on boot”).

L’ACCESSO AL SERVER DA REMOTO

Per accedere da remoto (con protocollo FTP, SMB o SSH) occorre censire un servizio DNS dinamico nel server nas. Nel menù di sinistra dell’interfaccia web, selezionare Servizi > DNS dinamico; si aprirà una maschera nella quale, ipotizzando di possedere un account con “dyndns.org” dovremo compilare i seguenti campi:

• Nome dominio: digitiamo il nostro nome host del dominio “dyndns.org”;• Nome utente: inseriamo l’utente del dominio;

• Password: digitiamo la password necessaria per autenticarsi al servizio;

• Conferma Password: ripetiamo la password di cui sopra.

Chiudiamo la configurazione cliccando su OK in basso a sinistra.

Esattamente come abbiamo fatto per Samba, FTP e SSH, in Servizi > Controllo Servizi preoccupiamoci di verificare che Dynamic DNS sia in stato Running e che la casella Start on boot sia selezionata.

Abbiamo appena posto le condizioni per raggiungere da remoto il nostro server nas. In tal modo, ad esempio, nel client FTP che utilizzeremo per accedere da remoto (sia su pc, sia su smartphone/tablet), in luogo dell’indirizzo IP del server dovremo inserire il nome del dominio.

PROGRAMMAZIONE DELLO SPEGNIMENTO NOTTURNO DEL NAS: CRON JOB

Personalmente ho ritenuto opportuno schedulare lo spegnimento notturno del nas. La configurazione è estremamente semplice: accedere al menù Tasks e selezionare Cron Job (vds. Fig. 4):

Fig. 4

GUIDA COME CONFIGURARE SERVER NAS DOMESTICO FREENAS BUILD 11.2-U1 - Fig. 4 - Cron Job

Compilare i seguenti campi:

• Description: indicare il nome (a digitazione libera) che si vuole attribuire al cron job;

• Command: scricere il comando SSH relativo allo spegnimento (“shutdown –p now”, senza virgolette);

• Run As User: selezionare l’utente root;

• Schedule a Cron Job: adottare la scelta customizzata (nel mio caso ho scelto l’orario in cui lo spegnimento deve avvenire, indicando tutti i mesi dell’anno e tutti i giorni della settimana);

salvare la configurazione cliccando su SAVE CRON JOB.

E’ possibile anche procedere allo spegnimento da remoto del server, mediante comando SSH, inviabile anche da apposita applicazione installata sul proprio smartphone. Ho testato tale funzionalità, funziona regolarmente, ma alla fine ho preferito non attivarla (è comunque richiesta l’apertura della porta TCP 22 sul router verso l’indirizzo IP locale del server).

PROGRAMMAZIONE DELLA RIACCENSIONE DEL NAS

Il comando di Wake Up tramite Magic Packet non funziona perfettamente (almeno nel mio caso), nonostante le corrette configurazioni di merito nel bios. Ciò dipende dal fatto che il wake up è attivabile solo dallo stato di ibernazione (stato in cui si pone di norma il pc configurato con Windows 10 per far funzionare regolarmente il wake up), mentre con FreeNAS l’ibernazione non spegne il sistema. Essendo quindi costretti ad effettuare lo shutdown, il wake up non funziona…

Per garantirmi la puntuale riaccensione del nas ogni mattina, ho pertanto scelto di settare nel bios l’accensione automatica del server ogni giorno ad un certo orario. Pur tuttavia, poiché in caso di caduta di corrente rimarrei con il nas spento, ho ritenuto di collegare l’alimentazione del mio server ad una presa wifi comandabile da remoto e settare nel bios la funzionalità “Power on after power fail”. In tal modo, ho ottenuto i seguenti risultati:- in caso di interruzione della corrente elettrica, il nas non si riaccende, perché la presa wifi l’ho settata per rimanere spenta al ritorno della corrente;- se decidessi di non far accendere il nas una determinata mattina, sarebbe sufficiente spegnere la presa wifi prima che il nas si riattivi automaticamente (dopo lo spegnimento programmato notturno);- poiché il casuale mancato funzionamento del nas potrebbe essere causato da un’interruzione elettrica, in tal caso, la riaccensione della presa consentirebbe la regolare riattivazione del server. Nei fatti, tale assetto mi garantisce le medesime funzionalità del wake up.

SOSTITUZIONE DI UN DISCO RELATIVO AI VOLUMI DESTINATI ALLO STORAGE

Nel caso in cui il sistema evidenziasse il guasto di un disco oppure si intendesse aumentare lo spazio destinato allo storage rimuovendo un disco più piccolo, è possibile procedere alla Sostituzione. La guida ufficiale, al punto 9.4.2, indica puntualmente come procedere…In sostanza, a server spento, occorre aggiungere il disco nuovo, riavviare il server, andare in Storage > Pools e selezionare il pool da espandere. Fare clic su Impostazioni (icona a forma di ruota in alto a destra) e poi su Status. Selezionare il disco da sostituire e cliccare su Opzioni (a destra) e poi su Replace. Nella maschera che comparirà occorre selezionare il nuovo disco nel campo Member disk. Quando il nuovo disco sarà pronto, il vecchio sarà in stato off. Si potrà quindi spegnere il server e rimuovere il vecchio disco.