Ricerca nel sito web

Come installare server e client NFS su distribuzioni RHEL


In Linux, esistono un paio di protocolli di condivisione file utilizzati per condividere spazio di archiviazione e file su una rete. I più utilizzati sono Samba e NFS.

Samba è una popolare suite di applicazioni open source che funziona in un'architettura client-server. Offre compatibilità multipiattaforma consentendo la condivisione di file senza interruzioni tra i sistemi operativi Linux, Windows e macOS. È possibile accedere a una condivisione di file ospitata su un sistema Linux da diverse piattaforme, favorendo così la collaborazione.

Un altro protocollo di condivisione file ampiamente utilizzato è NFS, abbreviazione di Condivisione file in rete. Proprio come Samba, funziona su un modello client-server e consente a un utente di condividere directory e file su una rete con più utenti client remoti.

In questa guida vedremo come installare il server e il client NFS su distribuzioni basate su RHEL come Fedora, CentOS Stream, Rocky Linux e AlmaLinux.

Servizi NFS

Attualmente esistono 3 versioni di NFS, l'ultima è NFSv4 che include funzionalità come la capacità di lavorare su Internet e attraverso un firewall. Inoltre esistono NFSv3 e NFSv2 che è il protocollo più vecchio.

Il servizio NFS è composto dal server NFS e dal client. Il server NFS comprende i seguenti file chiave:

  • nfs-server: consente ai sistemi client di accedere ai file condivisi NFS.
  • rpcbind – converte i programmi RPC in indirizzi universali.
  • nfs-idmap – Esegue la traduzione degli ID utente e gruppo in nomi e i nomi utente e gruppo in ID.
  • portmap – Questo è un server che converte i numeri di programma RPC in numeri di porta IP.
  • nfslock – In caso di crash del server NFS, nfslock avvia i processi RPC richiesti.

Servizi di configurazione NFS

Ecco alcuni dei file di configurazione chiave per NFS:

  • /etc/exports – Il file di configurazione principale, che stabilisce i filesystem o le directory che devono essere esportati e a cui possono accedere gli utenti remoti.
  • /etc/fstab – Questo è un file che contiene le voci delle partizioni montate. In NFS, il file contiene voci di directory condivise o file system NFS che sono montati in modo permanente e possono persistere al riavvio.
  • /etc/sysconfig/nfs – Definisce le porte necessarie durante l'esecuzione dei servizi RPC.

Configurazione del server e del client NFS

Per configurare le condivisioni NFS, avremo bisogno di almeno due macchine Linux/Unix. Qui in questo tutorial, utilizzerò due server.

  • Server NFSRHEL 9 con IP 10.128.15.213
  • Client NFSRHEL 9 con IP 10.128.15.214

Installa NFS su server e client

Per iniziare, devi accedere a entrambi i nodi (server e client NFS) e installare i servizi NFS. Innanzitutto, aggiorna le informazioni sul pacchetto come mostrato. Il seguente comando dnf aggiornerà anche tutti gli interessanti pacchetti alle loro ultime versioni.

sudo dnf update 

Una volta completato l'aggiornamento, procedi e installa i servizi NFS richiesti.

sudo dnf install rpcbind nfs-utils -y

Il passaggio successivo è abilitare i servizi NFS come mostrato.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Assicurati di avviare anche i servizi NFS.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

È fondamentale verificare che tutti i servizi NFS siano in esecuzione.

sudo systemctl status nfs-server
sudo systemctl status rpcbind

Assicurati di configurare anche il firewall per consentire i servizi NFS in entrata come segue.

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload

Crea una directory di condivisione NFS

Con tutti i servizi NFS installati e funzionanti come previsto, è il momento di creare la directory di condivisione NFS, che è la directory che conterrà i file a cui accederanno i client NFS nella rete.

In questo caso, creeremo una directory di condivisione NFS chiamata my_nfsshare nella nostra directory home.

mkdir -p /home/tecmint/my_nfsshare

Successivamente, assegna le autorizzazioni alla directory. A scopo dimostrativo, assegneremo autorizzazioni globali che concedono ai client NFS autorizzazioni di lettura, scrittura ed esecuzione.

sudo chmod 777 -R /home/tecmint/my_nfsshare

Esporta una directory di condivisione NFS

Il passaggio successivo consiste nell'esportare la directory di condivisione NFS. Per raggiungere questo obiettivo dobbiamo creare una voce nel file /etc/exports. Pertanto, accedi al file utilizzando il tuo editor di testo preferito. In questo caso utilizzeremo l'editor Vim.

sudo vim /etc/exports

Aggiungi la seguente voce. Assicurati di sostituire server-ip con l'indirizzo IP del tuo server NFS.

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

Infine esporta la directory di condivisione o il file system NFS.

sudo exportfs -rv

Eseguire il comando seguente per visualizzare le condivisioni NFS.

showmount -e localhost

Configura il client NFS

La fase rimanente di questo esercizio consiste nel configurare il client NFS per accedere alla directory condivisa. Innanzitutto, conferma di poter visualizzare l'elenco di esportazione o le condivisioni NFS sul server NFS.

showmount -e 10.128.15.213

Il passo successivo è montare la condivisione NFS dal server al client. Per fare ciò, dobbiamo prima creare una directory di montaggio. In questo caso, creeremo una directory chiamata nfs_backup.

mkdir nfs_backup

Successivamente monteremo la condivisione NFS nella directory di montaggio che abbiamo appena creato nella directory home root

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

Per rendere persistente la condivisione NFS, modifica il file /etc/fstab.

vim /etc/fstab

Quindi aggiungi la seguente voce.

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

Salvare ed uscire dal file di configurazione.

Test della configurazione NFS

L'ultimo passaggio è verificare se la configurazione NFS funziona come previsto. Creeremo alcuni file sul server e ne verificheremo la disponibilità sul lato client NFS.

Sul lato server, creeremo i file nella directory di condivisione NFS.

sudo touch my_nfsshare/file{1..4}.txt

Per verificare che i file siano stati creati, eseguiremo il comando ls:

ls -l my_nfsshare/

Tornando al lato client, verificare che i file siano disponibili nella directory di montaggio senza alcun aggiornamento del servizio o riavvio di alcun servizio, come illustrato nell'output seguente.

ls -l nfs_backup/

Rimozione del montaggio NFS

Se non hai più bisogno delle directory montate sul tuo sistema, puoi smontarle dal lato client utilizzando il seguente comando umount:

umount ~/nfs_backup

Comandi di condivisione NFS

Alcuni comandi più importanti per NFS.

  • showmount -e – Mostra le condivisioni disponibili sul tuo computer locale
  • showmount -e indirizzo-ip – Elenca le condivisioni disponibili sul server remoto
  • showmount -d – Elenca tutte le sottodirectory
  • exportfs -v – Visualizza un elenco di file e opzioni condivisi su un server
  • exportfs -a – Esporta tutte le condivisioni elencate in /etc/exports o il nome specificato
  • exportfs -u – Annulla l'esportazione di tutte le condivisioni elencate in /etc/exports o del nome specificato
  • exportfs -r – Aggiorna l'elenco dei server dopo aver modificato /etc/exports
Conclusione

Questo conclude la nostra guida su come installare il server e il client NFS su distribuzioni basate su RedHat. Abbiamo installato i servizi NFS sul server, creato una directory di condivisione NFS e infine montato la directory di condivisione sul client. Infine, abbiamo verificato la configurazione di NFS accedendo al file creato sul server dal lato client.