NFS festeggia 40 anni: c'è vita oltre il vecchio SMB di Microsoft per la condivisione file

Nel celebrare i 40 anni di NFS, analizziamo la storia e l'evoluzione dei protocolli di condivisione file. Da SMB a NFS fino a NVMe over TCP: breve confronto su prestazioni, vantaggi e scenari d'uso su sistemi Windows e Linux.

Per le esigenze di condivisione di file e cartelle in ambiente Windows si parla quasi solo ed esclusivamente del solo protocollo SMB. Nato in IBM, fu poi sviluppato da Microsoft in ambiente Windows come strumento per l’accesso a file e stampanti su sistemi remoti. Nel 1991 nacque poi il progetto open source Samba per condividere file e stampanti tra sistemi Unix/Linux e client Windows. Nel 1985, tuttavia, Sun Microsystems presentò NFS (Network File System), protocollo che rappresenta uno dei pilastri fondamentali dei sistemi distribuiti moderni.

Il 2025 ha segnato un momento speciale: il quarantesimo anniversario di NFS, celebrato durante la MSST Conference a Santa Clara, California. L’occasione ha permesso di riflettere non solo sull’impatto tecnologico, ma anche sull’evoluzione di una comunità di ingegneri e sviluppatori che ha contribuito alla diffusione di NFS su scala globale.

Lo storico rilascio del codice sorgente di NFS

Mentre SMB è da sempre rimasta una soluzione proprietaria, nel 1985 Sun Microsystems rese disponibile il codice sorgente di NFS anche a sviluppatori non appartenenti all’azienda. La versione 2.0, la prima a essere distribuita pubblicamente, conteneva non solo il codice ma anche una documentazione completa dei protocolli e dell’architettura di rete.

Grazie a Russ Cox, questo codice è oggi accessibile su GitHub: il repository include il contenuto del volume Networking on the Sun Workstation, ora convertito in PDF, che copre innumerevoli dettagli tecnici del protocollo.

NFS non è solo una tecnologia storica: la sua architettura ha influenzato profondamente lo sviluppo dei sistemi distribuiti moderni e continua a essere studiata come modello di protocollo efficiente e modulare. La disponibilità dei materiali storici e del codice sorgente permette a sviluppatori, ricercatori e appassionati di esplorare le radici delle infrastrutture moderne e di trarre insegnamenti per la progettazione di sistemi resilienti e scalabili.

NFS oggi e le alternative moderne per la condivisione di file in rete

Per decenni NFS è diventato il protocollo di riferimento per la condivisione di file tra sistemi Unix e Linux. La sua semplicità, affidabilità e la capacità di far apparire file remoti come se fossero locali hanno reso NFS uno standard in ambienti enterprise, data center e cluster di calcolo ad alte prestazioni.

Nonostante la sua età, NFS continua a essere impiegato in scenari specifici:

  • Enterprise Linux/Unix: per condivisioni di file tra server e client in reti interne controllate.
  • Storage centralizzato (NAS): NFS permette di collegare server a storage condiviso in modo trasparente.
  • Virtualizzazione e container: volumi NFS vengono montati in cluster Kubernetes o ambienti VMware.
  • Cloud e HPC: NFS è utilizzato come storage condiviso in ambienti di calcolo distribuito, sebbene le alternative più moderne stiano guadagnando terreno.

Come usare le condivisioni NFS in Windows

Anche Windows integra il supporto per NFS: per attivarlo basta premere Windows+R, digitare optionalfeatures, quindi spuntare la casella Servizi per NFS. È però fondamentale applicare gli aggiornamenti di sicurezza Microsoft perché l’implementazione del protocollo NFS in Windows è spesso oggetto della scoperta di gravi lacune.

In Windows si può mappare una cartella NFS con PowerShell o con il prompt dei comandi:

mount -o anon \\<IP_Server_NFS>\<Condivisione> <Unità_Locale>:

L’opzione anon permette di accedere senza autenticazione utente NFS, ove previsto.

Quali sono i problemi di SMB rispetto a NFS?

SMB è più “pesante” di NFS, perché include più funzionalità integrate (autenticazione, gestione dei permessi, supporto a metadati complessi). Ciò può tradursi in maggiore latenza, soprattutto in reti ad alta velocità ma con carichi elevati di I/O.

NFS sfrutta un caching lato client più efficiente (specialmente NFSv4), riducendo le chiamate al server per operazioni ripetute, mentre SMB può richiedere più round-trip per gestir gli aggiornamenti dei file. SMB è progettato per ambienti autenticati tramite Active Directory: fuori da questo contesto, l’autenticazione può diventare più complessa.

In grandi ambienti enterprise con centinaia di client, SMB può richiedere più risorse di server rispetto a NFS, che è progettato per funzionare bene con molti client Unix/Linux contemporaneamente.

Dopo 40 anni, comunque, NFS inizia a presentare limiti in termini di scalabilità, sicurezza e prestazioni rispetto alle tecnologie contemporanee. In particolare, NFSv2 e NFSv3 non garantiscono cifratura nativa e possono soffrire in situazioni di stress. NFSv4 supporta Kerberos, ma l’implementazione richiede configurazioni complesse.

NVMe over Fabrics e NVMe over TCP: la nuova frontiera

L’evoluzione più significativa nel trasferimento dati ad alte prestazioni è rappresentata da NVMe over Fabrics (NVMe-oF), nato ufficialmente nel 2016. Il protocollo estende le prestazioni native delle unità SSD NVMe oltre il bus PCIe, permettendo l’accesso remoto a bassa latenza.

In un nostro articolo abbiamo spiegato come trasferire dati alla velocità della luce con NVMe over TCP, una modalità di NVMe-oF che utilizza la rete TCP/IP, rendendo possibile:

  • Accesso remoto ad alte prestazioni senza hardware specializzato.
  • I/O parallelo massivo, sfruttando CPU multi-core e code multiple (fino a 65.535 code e 64.000 comandi per coda).
  • Trasferimenti fino a raddoppiare le prestazioni di SMB su file pesanti, pur mantenendo semplicità di deployment.

Prestazioni a confronto

Protocollo IOPS (4K RW) Latenza media Utilizzo CPU Costo implementazione
NVMe over TCP 450K 0,3 ms 8% per 100K IOPS Basso
NFS 140K 0,9 ms 9% per 100K IOPS Medio
SMB 120K 1,1 ms 12% per 100K IOPS Medio

I dati evidenziano come NVMe over TCP sfrutti al meglio sia la larghezza di banda di rete che le prestazioni degli SSD NVMe, superando i limiti storici di NFS e SMB.

L’implementazione è relativamente semplice e non richiede modifiche alle applicazioni, rendendo NVMe over TCP una scelta ideale per trasferimenti di file pesanti su reti Multigigabit.

NVMe over TCP è già supportato su Linux mentre lato sistemi operativi Microsoft è per ora Windows Server 2025 ad aver fatto da apripista con l’introduzione di strumenti integrati come nvmeofutil.exe per gestire le connessioni a dispositivi NVMe remoti tramite la rete TCP/IP. Tuttavia, è importante notare che la funzionalità è ancora in fase di anteprima e potrebbe non essere completamente stabile per gli ambienti di produzione.

Ti consigliamo anche

Link copiato negli appunti