/
/

Network File System (NFS): panoramica e configurazione

di Team Ninja
N1-0921-Network-File-System-NFS_-Overview-blog-image1-2-1

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

Punti chiave

  • Panoramica su NFS: il Network File System (NFS) consente la condivisione centralizzata dei file in rete, permettendo ai client di accedere a directory remote come se fossero locali.
  • Prerequisiti: installa i pacchetti NFS necessari, assicurati che la struttura delle directory sia corretta e apri le porte richieste (ad esempio TCP/UDP 2049) prima della configurazione.
  • Fasi di configurazione: configura gli export sul server NFS, imposta i permessi, aggiorna /etc/exports e monta la directory condivisa sulle macchine client manualmente o tramite /etc/fstab.
  • Best practice di sicurezza: limita l’accesso dei client, applica il principio del privilegio minimo e usa opzioni di autenticazione come Kerberos quando disponibili.
  • Controlli operativi: verifica i mount, monitora la connettività e usa strumenti come showmount, mount e nfsstat per controllare le prestazioni e risolvere i problemi.

NFS è un protocollo che consente agli utenti di accedere ai file in rete come se si trovassero sul proprio storage locale. Facilita la condivisione dei file e l’accesso ai dati in ambienti connessi in rete. Questo lo rende uno strumento essenziale per gli spazi di lavoro collaborativi e i sistemi distribuiti.

Questa guida offre una panoramica dettagliata del Network File System (NFS). Vedremo la sua definizione, il suo scopo, il suo funzionamento e i suoi vantaggi. Ti aiuterà a capire l’importanza di NFS negli ambienti di rete e come opera. Inoltre, scoprirai i suoi vantaggi rispetto ad altri metodi di condivisione dei file e i casi d’uso tipici nelle infrastrutture di rete di piccole e grandi dimensioni.

Storia e importanza

NFS è stato sviluppato originariamente da Sun Microsystems (oggi Oracle) all’inizio degli anni Ottanta. La prima versione rilasciata pubblicamente, NFSv2, è arrivata nel 1984. NFSv2 offriva funzionalità di base per la condivisione dei file e ha posto le fondamenta per i miglioramenti successivi. Nel 1995 è stata introdotta NFSv3, una versione che ha portato prestazioni migliori e il supporto per file di dimensioni maggiori.

NFSv4, rilasciata nel 2000, ha introdotto miglioramenti significativi: una sicurezza più solida grazie a Kerberos, operazioni stateful e un file locking migliorato. Nel 2010 NFSv4.1 ha introdotto il parallel NFS (pNFS) per una migliore scalabilità e prestazioni negli ambienti in cluster. L’ultima versione, NFSv4.2, rilasciata nel 2016, ha aggiunto nuove caratteristiche: la copia lato server, l’application I/O advice e ulteriori miglioramenti a pNFS e alla sicurezza.

NFS ha rivoluzionato la condivisione e l’accesso ai dati negli ambienti di rete offrendo un metodo standardizzato per condividere i file. Questo consente una collaborazione e una gestione dei dati più efficienti su sistemi e piattaforme diversi. Ogni versione ha portato miglioramenti: prestazioni superiori, maggiore sicurezza e supporto per i protocolli stateful. Tutto questo contribuisce a rendere NFS, oggi, una soluzione di condivisione file solida e affidabile.

Vuoi scoprire come una gestione degli endpoint completa rafforza la rete e la sicurezza? Consulta le FAQ sulla gestione degli endpoint di NinjaOne per saperne di più.

Garantisci la continuità operativa eseguendo il backup dei server critici che ospitano le tue condivisioni NFS.

Scopri NinjaOne Backup

Come funziona NFS

NFS si basa su un’architettura client-server. Il server ospita i file condivisi, mentre il client vi accede attraverso la rete. Questa architettura permette una gestione centralizzata e un accesso decentralizzato ai dati, risultando efficiente per diverse configurazioni di rete. NFS ha un ruolo cruciale nel networking e nella condivisione dei file: favorisce la collaborazione, la gestione centralizzata dello storage e un utilizzo efficiente delle risorse.

Permettendo di accedere ai file e condividerli in rete, elimina la necessità che ogni utente abbia una copia locale di ogni file. Questo consente di risparmiare spazio di archiviazione e ridurre la ridondanza. La compatibilità cross-platform di NFS garantisce che gli utenti possano accedere ai file da sistemi operativi diversi, favorendo la collaborazione in ambienti eterogenei.

Componenti di NFS

  • Server NFS: una macchina o un dispositivo che condivide i propri file e le proprie directory con altri sistemi in rete. Esegue il software server NFS e gestisce il controllo degli accessi e il file locking.
  • Client NFS: una macchina o un dispositivo che accede ai file e alle directory condivise dal server NFS. Monta le risorse condivise sul proprio file system locale, facendole apparire come file locali.
  • Remote Procedure Call (RPC):un protocollo stateless e senza connessione. Consente a un programma su un computer di eseguire un programma su un altro computer. NFS lo utilizza per la comunicazione tra client e server.
  • Protocollo NFS: definisce il formato e le procedure delle operazioni NFS, come la lettura e la scrittura dei file e la gestione dei metadati. Opera al di sopra di RPC.

Come avviene la condivisione dei file con NFS

Il processo si articola in diverse fasi:

  • Il server esporta le directory e avvia i servizi NFS.
  • Il client invia una richiesta di mount al server.
  • Il server elabora la richiesta e autentica il client.
  • Il server concede l’accesso e il client monta la directory condivisa.
  • Il client richiede l’accesso ai file (operazioni di lettura/scrittura).
  • Il server elabora queste richieste e trasferisce i dati.
  • Il client interagisce con il file come se si trovasse sullo storage locale.
  • Al termine, il client smonta il file system.
  • Il server registra le attività per il monitoraggio e la risoluzione dei problemi.

I vantaggi di NFS

NFS offre diversi vantaggi rispetto a SMB e FTP: prestazioni migliori negli ambienti UNIX, una configurazione più semplice e una gestione dei dati più efficiente. A differenza di FTP, NFS permette agli utenti di montare le directory remote direttamente nel proprio file system. NFS può scalare dalle piccole reti domestiche ai grandi ambienti enterprise. La sua flessibilità gli consente di adattarsi a configurazioni di rete ed esigenze degli utenti molto diverse, rendendolo adatto a organizzazioni di ogni dimensione.

NFS riduce l’overhead legato ai trasferimenti di file, con tempi di accesso più rapidi e prestazioni complessive del sistema migliori. È ottimizzato per l’uso negli ambienti UNIX, il che ne accresce ulteriormente l’efficienza. NFS supporta diversi sistemi operativi, tra cui UNIX, Linux e Windows, consentendo la condivisione dei file tra piattaforme differenti. Questa compatibilità permette alle organizzazioni di integrare NFS in ambienti IT eterogenei.

NFS è particolarmente utile negli ambienti in cui un gran numero di client accede a risorse condivise, come le reti aziendali, gli istituti scolastici e i centri di ricerca. In questi casi garantisce un accesso e una gestione dei dati efficienti. NFS può essere integrato con numerosi sistemi operativi e dispositivi di rete, il che lo rende una soluzione versatile per le infrastrutture IT più diverse. Supporta varie versioni di UNIX, diverse distribuzioni Linux e anche Windows tramite servizi aggiuntivi.

Casi d’uso di NFS

NFS è ampiamente utilizzato per la condivisione di file in azienda, negli spazi di lavoro collaborativi e negli ambienti che richiedono una gestione centralizzata dei dati. Supporta scenari come le directory di progetto condivise e i repository di file centrali. In ambito aziendale, NFS consente a più utenti di accedere ai dati di business critici e di condividerli, migliorando la collaborazione e la produttività.

È molto diffuso negli ambienti di sviluppo in cui vengono condivisi codice e risorse. Per sua natura orientata alla rete, NFS viene utilizzato sempre più spesso nel cloud computing, nella virtualizzazione e nell’IoT. Offre un accesso ai dati affidabile ed efficiente su sistemi distribuiti

Supporta gli ambienti virtualizzati in cui le risorse di storage devono essere condivise in modo dinamico. In settori fortemente interconnessi come l’astronomia o la ricerca genetica, facilita la condivisione dei dati e la collaborazione tra ricercatori e studenti. Nel complesso, supporta grandi set di dati e flussi di lavoro computazionali.

Università e istituti di ricerca si affidano spesso a NFS per gestire progetti di ricerca ad alta intensità di dati. NFS supporta il lavoro da remoto consentendo un accesso sicuro ed efficiente ai file condivisi da luoghi diversi, aiutando i team a collaborare in modo efficace nonostante le distanze geografiche. Garantisce agli utenti remoti lo stesso accesso ai dati di cui dispongono gli utenti locali.

Configurare NFS

Per configurare NFS servono hardware server e interfacce di rete affidabili, oltre al software server e client NFS. I sistemi operativi devono essere compatibili: Linux, UNIX, Windows e macOS. Soddisfare questi requisiti di base renderà più semplice l’installazione e il funzionamento di NFS nel tuo ambiente di rete.

Linux

Installa il pacchetto server NFS:

  • In un terminale, aggiorna gli elenchi dei pacchetti: sudo apt-get update (Debian/Ubuntu) oppure sudo yum update (RHEL/CentOS).
  • Installa il server NFS: sudo apt-get install nfs-kernel-server (Debian/Ubuntu) oppure sudo yum install nfs-utils (RHEL/CentOS).

Configura le condivisioni in /etc/exports

  • Apri il file /etc/exports in un editor di testo: sudo nano /etc/exports
  • Aggiungi le voci di export: specifica le directory da condividere e i permessi di accesso, una condivisione per riga. Esempio:
    /shared_directory 192.168.1.0/24(rw,sync,subtree_check)
  • Salva e chiudi il file.

Avvia i servizi NFS

  • Abilita l’avvio del server NFS al boot: sudo systemctl enable nfs-kernel-server (Debian/Ubuntu) oppure sudo systemctl enable nfs (RHEL/CentOS).
  • Riavvia il server NFS per applicare le modifiche: sudo systemctl restart nfs-kernel-server (Debian/Ubuntu) oppure sudo systemctl restart nfs (RHEL/CentOS).
  • Verifica lo stato del server NFS: sudo systemctl status nfs-kernel-server (Debian/Ubuntu) oppure sudo systemctl status nfs (RHEL/CentOS).

Apri le porte del firewall (se necessario)

  • Consenti il servizio NFS attraverso il firewall: sudo ufw allow from 192.168.1.0/24 to any port nfs (se utilizzi UFW) oppure sudo firewall-cmd –permanent –add-service=nfs && sudo firewall-cmd –reload (se utilizzi firewall).

Monta la condivisione NFS sul client

  • Crea un mount point: sudo mkdir /mnt/nfs_share.
  • Monta la condivisione NFS:
  • Monta con sudo mount 192.168.1.1:/shared_directory /mnt/nfs_share OPPURE
  • Definisci la condivisione in /etc/fstab con una riga come server_ip:/shared_directory /local_mount_point nfs auto,nofail,defaults 0 0 – verrà montata automaticamente all’avvio oppure eseguendo sudo mount -a (che tenta di montare tutti i mount definiti in /etc/fstab, tranne quelli che hanno noauto tra le opzioni di mount).
  • Verifica il mount: df -h

Windows (10/11/Server)

Abilita la caratteristica server NFS

  • Windows Server
  • Apri il Pannello di controllo.
  • Vai su Programmi > Attivazione o disattivazione delle funzionalità di Windows.
  • Scorri verso il basso e seleziona Servizi per NFS.
  • Fai clic su OK e attendi il completamento dell’installazione.
  • Windows 10/11
  • Apri l’app Impostazioni.
  • Vai su App > Funzionalità facoltative.
  • Fai clic su Visualizza funzionalità accanto a Aggiungi una funzionalità facoltativa.
  • Cerca Servizi per NFS.
  • Seleziona la casella, fai clic su Avanti e poi su Installa.
  • Attendi il completamento dell’installazione.
  • Configura le impostazioni di condivisione
  • Windows Server
  • Apri Server Manager.
  • Vai su Servizi file e archiviazione > Condivisioni.
  • Fai clic su Attività e seleziona Nuova condivisione.
  • Scegli Condivisione NFS – Rapida e fai clic su Avanti.
  • Seleziona il server e il volume in cui verrà creata la condivisione, poi fai clic su Avanti.
  • Specifica il nome e il percorso della condivisione, poi fai clic su Avanti.
  • Configura i permessi della condivisione, aggiungendo i client autorizzati e specificando i permessi di accesso (ad esempio Lettura/Scrittura).
  • Controlla le impostazioni e fai clic su Crea.
  • Windows 11
  • Apri Esplora file e vai alla cartella che vuoi condividere.
  • Fai clic con il pulsante destro sulla cartella e seleziona Proprietà.
  • Vai alla scheda Condivisione e fai clic su Condivisione avanzata.
  • Seleziona la casella Condividi la cartella.
  • Fai clic su Autorizzazioni e aggiungi i permessi appropriati (Lettura/Scrittura) per gli utenti che accederanno alla condivisione.
  • Fai clic su OK per salvare le impostazioni.

Avvia i servizi NFS

  • Apri il Prompt dei comandi come amministratore.
  • Avvia il client NFS: nfsadmin client start.
  • Avvia il server NFS: nfsadmin server start.
  • Verifica lo stato dei servizi NFS: nfsstat.

Apri le porte del firewall (se necessario)

  • Apri il Pannello di controllo e vai su Sistema e sicurezza > Windows Defender Firewall.
  • Fai clic su Impostazioni avanzate.
  • Crea regole in entrata per le porte NFS (di solito TCP/UDP 2049).

Monta la condivisione NFS sul client

  • Apri il Prompt dei comandi come amministratore.
  • Crea un mount point: mkdir Z:\nfs_share.
  • Monta la condivisione NFS: mount \\<server_ip>\shared_directory Z:\nfs_share.
  • Verifica il mount: dir Z:\nfs_share.

macOS

Crea un mount point

  • Apri l’app Terminale.
  • Crea una directory da usare come mount point: sudo mkdir /Volumes/nfs_share.

Modifica /etc/auto_master

  • Apri /etc/auto_master in un editor di testo con privilegi elevati: sudo nano /etc/auto_master
  • Aggiungi una nuova riga alla fine del file per includere il tuo mount NFS. Ad esempio: /- auto_nfs
  • Salva e chiudi il file.

Crea /etc/auto_nfs

  • Crea e apri /etc/auto_nfs in un editor di testo: sudo nano /etc/auto_nfs.
  • Aggiungi la configurazione del mount NFS. Ad esempio:
    /Volumes/nfs_share -fstype=nfs,rw,nosuid 192.168.1.100:/srv/nfs
  • Sostituisci 192.168.1.100:/srv/nfs con l’IP del tuo server NFS e la directory condivisa.
  • Salva e chiudi il file.

Ricarica la configurazione di automount

  • Ricarica la configurazione di automount per applicare le modifiche: sudo automount -vc.

Verifica il mount

  • Controlla che la condivisione NFS sia montata: ls /Volumes/nfs_share.
  • Hai finito: se l’elenco della directory mostra il contenuto della condivisione NFS, la configurazione è andata a buon fine.

Sicurezza e best practice

Quando si parla di sicurezza di NFS, è essenziale utilizzare metodi di autenticazione sicuri. Tra questi ci sono Kerberos, la crittografia dei dati per proteggere le informazioni sensibili e il rispetto delle best practice.

Queste best practice comprendono l’aggiornamento regolare del software, il monitoraggio dei log di accesso e la limitazione dei permessi, per aumentare la sicurezza e proteggersi dalle minacce. A partire da NFSv3 le opzioni root_squash e no_subtree_check di /etc/exports sono attive per impostazione predefinita: potrebbe essere necessario specificare le opzioni no_root_squash e subtree_check per modificare questo comportamento.

Rafforza il tuo ambiente IT, compresi i server su cui si basano le configurazioni di condivisione file.

Scopri la gestione degli endpoint di NinjaOne

Risoluzione dei problemi di NFS

Tra i problemi più comuni nell’uso di NFS ci sono le difficoltà di connettività, gli errori di permessi e i problemi di prestazioni. I problemi di connettività si risolvono spesso controllando la configurazione di rete, verificando che le impostazioni del firewall siano corrette e consentano il traffico NFS.

Gli errori di permessi derivano in genere da permessi utente errati o da impostazioni di export mal configurate sul server. Verificare e correggere queste impostazioni di solito risolve il problema. I problemi di prestazioni possono avere cause diverse, ma ottimizzare le impostazioni di rete e migliorare le prestazioni del server aiuta spesso a mitigarli e a garantire un funzionamento efficiente di NFS.

Consigli e tecniche per risolvere i problemi

  • Usa strumenti diagnostici: strumenti come showmount e nfsstat offrono una visione del comportamento di NFS.
  • Controlla i log di sistema alla ricerca di messaggi di errore: ad esempio sudo journalctl -xe.
  • La sicurezza prima di tutto: testa le configurazioni con setup minimi prima di scalare.

Strumenti e risorse

  • Strumenti di monitoraggio: nfswatch, Nagios, sysstat (ss).
  • Utilità di gestione: nfs-utils, rpcinfo.

Strumenti e tecniche di monitoraggio

  • Gestione proattiva: monitora regolarmente le prestazioni e i log di NFS.
  • Avvisi automatici: imposta notifiche per i potenziali problemi.
  • Ottimizzazione delle prestazioni: regola i parametri NFS per ottenere prestazioni ottimali.

NFS: condivisione dei dati e collaborazione più efficaci

NFS si è dimostrato uno strumento versatile e potente per la condivisione dei file in rete. Resta uno strumento cruciale negli ambienti di rete moderni, perché offre una condivisione dei file affidabile ed efficiente che migliora la collaborazione e la produttività. La sua flessibilità e la sua scalabilità lo rendono adatto ad applicazioni molto diverse.

Con il progredire della tecnologia, NFS è destinato a svolgere un ruolo ancora più importante nelle infrastrutture IT, adattandosi a nuove sfide e nuove opportunità. Il suo sviluppo continuo farà sì che resti rilevante e utile. Ti invitiamo ad approfondire NFS, a sperimentarne le caratteristiche e a valutarne l’implementazione nelle tue configurazioni di rete per coglierne i numerosi vantaggi.

Con una comprensione e una gestione adeguate, NFS può migliorare notevolmente la condivisione dei dati e la collaborazione.

Prima di iniziare a configurare, guarda la versione video di Network File System (NFS): panoramica e configurazione.

FAQs

Scegli la versione più recente supportata dai tuoi sistemi. Per la maggior parte degli ambienti è consigliata NFSv4 o successiva, perché offre maggiore sicurezza, prestazioni migliori e un locking più efficace. NFSv3 può essere ancora utile per i sistemi legacy o per configurazioni semplici e a basso overhead.

Verifica sempre la compatibilità con il tuo OS e con l’infrastruttura esistente prima di eseguire l’aggiornamento.

NFS viene usato soprattutto negli ambienti Linux/UNIX ed è leggero, veloce e facile da automatizzare. SMB (Server Message Block) è nativo di Windows, supporta modelli di permessi più ricchi e si integra strettamente con Active Directory.

La scelta dipende dall’OS prevalente nel tuo ambiente e dalle tue esigenze di sicurezza o autenticazione.

Sì. NFS funziona bene con Linux e macOS, e Windows lo supporta tramite servizi facoltativi. La compatibilità può variare, quindi negli ambienti misti possono essere necessari test e qualche aggiustamento.

NFS può essere sicuro se configurato correttamente. Tra le best practice ci sono la limitazione degli IP dei client, l’attivazione di root_squash, l’uso di condivisioni in sola lettura dove opportuno e l’implementazione di Kerberos per un’autenticazione più solida.

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.