Rocky Linux 8 supporta NFS versione 3 (NFSv3) e 4 (NFSv4). La versione NFS predefinita è 4.2 e offre supporto per elenchi di controllo di accesso (ACL), copia lato server, file sparsi, prenotazione dello spazio, NFS etichettato, miglioramenti del layout e molto altro.
In questa guida impareremo come installare e configurare il server NFS e il client NFS su Rocky Linux 8.
Prerequisiti
- Server Rocky Linux aggiornato da utilizzare come server e un altro per il client
- Connettività dai server
- Sudo accesso dai server
Indice dei contenuti
- Assicurati che il server sia aggiornato
- Installa i pacchetti NFS
- Avvio e abilitazione del server NFS
- Abilitazione del servizio NFS su Firewall
- Configurazione esportazioni su server NFS
- Configurazione di sistemi client NFS
1. Garantire che il server sia aggiornato
Prima di procedere, assicuriamoci che il server sia aggiornato. Usa questo comando per ottenere questo:
sudo dnf -y update
2. Installa i pacchetti NFS
Il pacchetto nfs-utils
fornisce un demone per il server NFS del kernel e strumenti correlati come contiene il showmount
programma. Usa questo comando per installare il pacchetto:
sudo dnf install -y nfs-utils
3. Avvio e abilitazione del server NFS
Una volta che i pacchetti NFS sono stati installati correttamente, possiamo avviare e abilitare il server NFS. Usa questo comando systemctl per avviare il server:
sudo systemctl start nfs-server
Conferma lo stato del servizio con questo comando:
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: active (exited) since Thu 2022-01-13 17:54:19 UTC; 36s ago
Process: 59320 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 59308 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Process: 59305 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 59320 (code=exited, status=0/SUCCESS)
Jan 13 17:54:18 dev-rockysrv.inv.re systemd[1]: Starting NFS server and services...
Jan 13 17:54:19 dev-rockysrv.inv.re systemd[1]: Started NFS server and services.
L'output precedente mostra che il servizio è stato avviato correttamente. Per abilitare l'avvio del servizio all'avvio del sistema, utilizzare questo comando:
sudo systemctl enable nfs-server
Tieni presente che gli altri servizi necessari 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.
4. Abilitazione del servizio NFS in Firewall
Se hai installato e abilitato firewalld, devi abilitare i servizi NFS. Devi consentire il traffico ai servizi NFS necessari (montato , nfs , rpc-bind ) tramite il firewall, quindi ricaricare le regole del firewall per applicare le modifiche, come segue.
sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --reload
5. Configurazione delle esportazioni su server NFS
I file di configurazione per il server NFS si trovano in questi percorsi:
/etc/nfs.conf
– questo è il file di configurazione principale per i demoni e gli strumenti NFS/etc/nfsmount.conf
– questo è il file di configurazione del montaggio NFS
Creiamo file system da esportare o condividere sul server NFS. Creeremo due file system da fissare, /mnt/nfs_shares/files
per file condivisi e /mnt/nfs_shares/backup
per i backup.
Creiamo le directory nel server
sudo mkdir -p /mnt/nfs_shares/files
sudo mkdir -p /mnt/nfs_shares/backup
Conferma
$ sudo ls /mnt/nfs_shares
backup files
Quindi aggiungi i filesystem di cui sopra nel file di esportazione /etc/exports
nel server NFS per determinare i file system locali che vengono esportati nei client NFS.
Apri il file di esportazione con il tuo editor di testo
sudo vim /etc/exports
Quindi aggiungi questo contenuto:
/mnt/nfs_shares/files 10.70.5.170(rw,sync)
/mnt/nfs_shares/backup 10.70.5.0/24(rw,sync,no_all_squash,root_squash)
Queste sono le opzioni di esportazione che possono essere utilizzate:
- rw – consente sia l'accesso in lettura che in scrittura sul file system.
- sincronizzazione – indica al server NFS di scrivere operazioni (scrittura di informazioni sul disco) quando richiesto (si applica per impostazione predefinita).
- tutti_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 dei 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.
Una volta definiti i file system nel file di esportazione, è necessario eseguire exportfs
comando per esportarli. L'exportfs può essere eseguito con -a
flag 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 file in /etc/exports.d e -v abilita output dettagliato.
sudo exportfs -arv
Questo è l'output sul mio server
$ sudo exportfs -arv
exporting 10.70.5.170:/mnt/nfs_shares/files
exporting 10.70.5.0/24:/mnt/nfs_shares/backup
Per visualizzare l'elenco di esportazione corrente, eseguire il comando seguente. Tieni presente che la tabella exportfs applica anche alcune opzioni predefinite che non sono definite in modo esplicito:
$ sudo exportfs -s
/mnt/nfs_shares/files 10.70.5.170(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/mnt/nfs_shares/backup 10.70.5.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
6. Configurazione di sistemi client NFS
Ora che abbiamo configurato le esportazioni sul server, possiamo accedervi dal sistema client. Accedi al sistema client e installa i pacchetti necessari per consentire l'accesso alle condivisioni NFS.
Su sistemi basati su RHEL:
sudo dnf install -y nfs-utils nfs4-acl-tools
Su distribuzioni basate su Debian/Ubuntu:
sudo apt install nfs-common nfs4-acl-tools
Possiamo quindi eseguire il comando showmount per mostrare le informazioni di montaggio per il server NFS. Il comando restituisce i filesystem esportati sul server
showmount -e 10.70.5.221
Uscita
$ showmount -e 10.70.5.221
Export list for 10.70.5.221:
/mnt/nfs_shares/backup 10.70.5.0/24
/mnt/nfs_shares/files 10.70.5.170
Crea una directory del file system locale per montare i file system NFS remoti e montalo come un file system nfs
mkdir -p ~/backups
mkdir -p ~/nfs_files
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/backup ~/backups
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/files ~/nfs_files
Possiamo quindi confermare che il file system remoto è stato montato eseguendo mount comando e filtro nfs monta.
sudo mount | grep nfs
Output sulla mia macchina
$ sudo mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
10.70.5.221:/mnt/nfs_shares/backup on /home/rocky/backups type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
10.70.5.221:/mnt/nfs_shares/files on /home/rocky/nfs_files type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
Per abilitare il montaggio su persistente anche dopo un riavvio del sistema, aggiungi le voci a /etc/fstab
file. Usa questi comandi (come root) per ottenere ciò:
echo "10.70.5.221:/mnt/nfs_shares/backup /home/rocky/backups nfs defaults 0 0" >> /etc/fstab
echo "10.70.5.221:/mnt/nfs_shares/files /home/rocky/nfs_files nfs defaults 0 0" >> /etc/fstab
Infine, verifica se NFS l'installazione funziona correttamente creando un file sul server e verificando se il file può essere visto nel client.
Sul server:
sudo touch /mnt/nfs_shares/files/file_on_server.txt
Quindi sul computer client conferma
$ ls ~/nfs_files/
file_on_server.txt
Puoi anche fare il contrario. Sul cliente:
touch ~/nfs_files/file_on_client.txt
Quindi sul server conferma:
$ ls /mnt/nfs_shares/files/
file_on_client.txt file_on_server.txt
Per smontare il file system remoto sul lato client.
sudo umount /mnt/nfs_shares/files
sudo umount /mnt/nfs_shares/backup
Tieni presente che non puoi unmount
il file system remoto se stai operando al suo interno.
Conclusione
In questa guida siamo riusciti a installare e configurare un server e un client NFS su Rocky Linux 8.