Ricerca nel sito web

Come configurare server e client NFS su CentOS 8


Network File System (NFS), noto anche come file system client/server, è un popolare protocollo di file system multipiattaforma e distribuito utilizzato per esportare file system locali sulla rete in modo che i client possono condividere directory e file con altri su una rete e interagire con essi come se fossero montati localmente.

In CentOS/RHEL 8, la versione NFS supportata è NFSv3 e NFSv4 e la versione NFS predefinita è 4.2 che presenta il supporto per gli elenchi di controllo di accesso ( ACL), copia lato server, file sparsi, prenotazione dello spazio, NFS etichettato, miglioramenti del layout e molto altro.

In questo articolo imparerai come installare e configurare il server NFS e il client NFS sulle distribuzioni Linux CentOS/RHEL 8.

Prerequisiti:

  1. Guida all'installazione di CentOS 8
  2. RHEL 8 Installazione minima
  3. Abilita l'abbonamento RHEL in RHEL 8
  4. Imposta un indirizzo IP statico in CentOS/RHEL 8

Il nostro ambiente di test:

NFS Server IP:	10.20.20.8
NFS Client IP:	10.20.20.9	

Configurazione del server NFS su CentOS 8

1. Innanzitutto, inizia installando i pacchetti richiesti sul server NFS. I pacchetti sono nfs-utils che fornisce un demone per il server NFS del kernel e strumenti correlati come contiene il programma showmount.

Esegui il comando seguente per installare il pacchetto sul server NFS (usa sudo se stai amministrando il sistema come utente non root).

dnf install nfs-utils

2. Una volta completata l'installazione, avviare il servizio nfs-server, abilitarlo all'avvio automatico all'avvio del sistema, quindi verificarne lo stato utilizzando i comandi systemctl.

systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl status nfs-server.service

Tieni presente che gli altri servizi richiesti per eseguire un server NFS o montare condivisioni NFS come nfsd, nfs-idmapd, rpcbind, rpc.mountd, lockd, rpc.statd, rpc.rquotad e rpc.idmapd verrà avviato automaticamente.

I file di configurazione per il server NFS sono:

  • /etc/nfs.conf – file di configurazione principale per i demoni e gli strumenti NFS.
  • /etc/nfsmount.conf – un file di configurazione del montaggio NFS.

3. Successivamente, crea i file system da esportare o condividere sul server NFS. Per questa guida creeremo quattro file system, tre dei quali vengono utilizzati dal personale di tre dipartimenti: risorse umane, finanza e marketing per condividere file e uno è per i backup dell'utente root.

mkdir -p  /mnt/nfs_shares/{Human_Resource,Finance,Marketing}
mkdir  -p /mnt/backups
ls -l /mnt/nfs_shares/

4. Quindi esportare i file system di cui sopra nel file di configurazione /etc/exports del server NFS per determinare i file system fisici locali accessibili ai client NFS.

/mnt/nfs_shares/Human_Resource  	10.20.20.0/24(rw,sync)
/mnt/nfs_shares/Finance			10.20.10.0/24(rw,sync)
/mnt/nfs_shares/Marketing		10.20.30.0/24(rw,sync)
/mnt/backups				10.20.20.9/24(rw,sync,no_all_squash,root_squash)

Ecco alcune delle opzioni di esportazione (leggi man exports per ulteriori informazioni e opzioni di esportazione):

  • rw: consente sia l'accesso in lettura che in scrittura al file system.
  • sync: indica al server NFS di scrivere operazioni (scrittura di informazioni sul disco) quando richiesto (si applica per impostazione predefinita).
  • all_squash: mappa tutti gli UID e GID dalle richieste del client all'utente anonimo.
  • no_all_squash – utilizzato per mappare tutti gli UID e GID dalle richieste del client a UID e GID identici sul server NFS.
  • root_squash: mappa le richieste dall'utente root o dall'UID/GID 0 dal client all'UID/GID anonimo.

5. Per esportare il file system di cui sopra, esegui il comando exportfs con il flag -a che significa esportare o annullare l'esportazione di tutte le directory, - r significa riesportare tutte le directory, sincronizzando /var/lib/nfs/etab con /etc/exports e i file in /etc/exports.d e -v abilita l'output dettagliato.

exportfs -arv

6. Per visualizzare l'elenco di esportazione corrente, esegui il comando seguente. Tieni presente che la tabella esporta applica anche alcune delle opzioni esporta predefinite che non sono definite esplicitamente come mostrato nello screenshot seguente.

exportfs  -s

7. Successivamente, se hai il servizio firewalld in esecuzione, devi consentire il traffico verso i servizi NFS necessari (mountd, nfs , rpc-bind) tramite il firewall, quindi ricaricare le regole del firewall per applicare le modifiche, come segue.

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

Configurazione del client NFS sui sistemi client

8. Ora sui nodi client, installa i pacchetti necessari per accedere alle condivisioni NFS sui sistemi client. Esegui il comando appropriato per la tua distribuzione:

dnf install nfs-utils nfs4-acl-tools         [On CentOS/RHEL]
sudo apt install nfs-common nfs4-acl-tools   [On Debian/Ubuntu]

9. Quindi esegui il comando showmount per mostrare le informazioni di montaggio per il server NFS. Il comando dovrebbe restituire il file system esportato sul client come mostrato nello screenshot.

showmount -e 10.20.20.8

9. Successivamente, crea un file system/directory locale per montare il file system NFS remoto e montalo come file system ntf.

mkdir -p /mnt/backups
mount -t nfs  10.20.20.8:/mnt/backups /mnt/backups

10. Quindi conferma che il file system remoto è stato montato eseguendo il comando mount e filtra i montaggi nfs.

mount | grep nfs

11. Per abilitare il montaggio in modo persistente anche dopo il riavvio del sistema, eseguire il comando seguente per inserire la voce appropriata in /etc/fstab.

echo "10.20.20.8:/mnt/backups     /mnt/backups  nfs     defaults 0 0">>/etc/fstab
cat /etc/fstab

12. Infine, verifica se la configurazione NFS funziona correttamente creando un file sul server e controlla se il file può essere visto nel client.

touch /mnt/backups/file_created_on_server.text     [On NFS Server]
ls -l /mnt/backups/file_created_on_server.text     [On NFS client]

Poi fai il contrario.

touch /mnt/backups/file_created_on_client.text     [On NFS Client]
ls -l /mnt/backups/file_created_on_client.text     [On NFS Server]

13. Per smontare il file system remoto sul lato client.

umount /mnt/backups

Tieni presente che non puoi smontare il file system remoto se stai operando al suo interno, come mostrato nello screenshot seguente.

Questo è tutto! In questa guida, abbiamo mostrato come installare e configurare un server e client NFS in CentOS/RHEL 8. Se hai qualche pensiero da condividere o domande, utilizza il modulo dei commenti qui sotto per tornare a noi.