GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare il server NFS su CentOS 7 / RHEL 7

NFS è l'acronimo di Network File System, ti aiuta a condividere file e cartelle tra sistemi Linux/Unix, sviluppato da SUN Microsystems nel 1990. NFS ti consente di montare una condivisione remota in locale.

Questa guida ti aiuta a configurare il server NFS su CentOS 7 / RHEL 7.

Vantaggi di NFS

  • Condivisione di file/cartelle tra sistemi *nix
  • Consente di montare filesystem remoti in locale
  • Può essere utilizzato come sistema di archiviazione centralizzata
  • Può essere utilizzato come Storage Domain (Datastore) per VMware e altre piattaforme di virtualizzazione.
  • Consente alle applicazioni di condividere configurazione e file di dati con più nodi.
  • Consente di aggiornare i file nella condivisione.

Servizi importanti

I seguenti sono i servizi NFS importanti, inclusi nei pacchetti nfs-utils.

rpcbind :il server rpcbind converte i numeri di programma RPC in indirizzi universali.

server-nfs :consente ai client di accedere alle condivisioni NFS.

nfs-lock / rpc-statd :Blocco file NFS. Implementa il ripristino del blocco dei file quando un server NFS si arresta in modo anomalo e si riavvia.

nfs-idmap :traduce gli ID di utenti e gruppi in nomi e traduce i nomi di utenti e gruppi
in ID

File di configurazione importanti

Lavorerai principalmente sui file di configurazione sottostanti per configurare il server NFS e i client.

/etc/exports:è il file di configurazione principale, controlla quali file system vengono esportati su host remoti e specifica le opzioni.

/etc/fstab:questo file viene utilizzato per controllare quali file system, incluse le directory NFS, vengono montati all'avvio del sistema.

/etc/sysconfig/nfs:questo file viene utilizzato per controllare su quali porte vengono eseguiti i servizi RPC richiesti.

/etc/hosts.allow e /etc/hosts.deny:questi file sono chiamati wrapper TCP, controllano l'accesso al server NFS. Viene utilizzato da NFS per decidere se accettare o meno una connessione proveniente da un altro indirizzo IP.

Ambiente

Qui, userò CentOS 7 minimal per questa demo. Questa guida dovrebbe funzionare anche su sistemi Oracle Linux e Fedora.

Server NFS

Nome host: server.itzgeek.local (CentOS 7)
Indirizzo IP: 192.168.1.10/24

Client NFS

Nome host: client.itzgeek.local (CentOS 7)
Indirizzo IP: 192.168.1.20/24

Configura server NFS

Installa il server NFS

Installa il pacchetto seguente per il server NFS usando il comando yum.

yum install -y nfs-utils

Una volta installati i pacchetti, abilita e avvia i servizi NFS.

systemctl start nfs-server rpcbind
systemctl enable nfs-server rpcbind

Crea condivisione NFS

Ora creiamo una directory da condividere con il client NFS. Qui creerò una nuova directory denominata nfsfileshare nella partizione /.

Puoi anche condividere la tua directory esistente con NFS.

mkdir /nfsfileshare

Consenti al client NFS di leggere e scrivere nella directory creata.

chmod 777 /nfsfileshare/

Dobbiamo modificare il file /etc/exports per creare una voce della directory /nfsfileshare che vuoi condividere.

vi /etc/exports

Crea una condivisione NFS come di seguito.

/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)

/nfsfileshare :directory condivisa

192.168.1.20 :indirizzo IP della macchina client. Possiamo anche usare il nome host invece di un indirizzo IP. È anche possibile definire l'intervallo di client con sottorete come 192.168.1.0/24.

rw :Autorizzazione scrivibile alla cartella condivisa

sincronizzazione :Tutte le modifiche al filesystem corrispondente vengono immediatamente scaricate su disco; le rispettive operazioni di scrittura sono in attesa.

no_root_squash : Per impostazione predefinita, qualsiasi richiesta di file effettuata dall'utente root sulla macchina client viene trattata come dall'utente nessuno sul server. (Esattamente a quale UID è mappata la richiesta dipende dall'UID dell'utente "nessuno" sul server, non sul client.) Se è selezionato no_root_squash, allora root sulla macchina client avrà lo stesso livello di accesso ai file sul sistema come root sul server.

Puoi conoscere tutte le opzioni nella man page man exports o qui.

Esporta le directory condivise usando il seguente comando.

exportfs -r

Extra:

exportfs -v:visualizza un elenco di file condivisi e opzioni di esportazione su un server.
exportfs -a:esporta tutte le directory elencate in /etc/exports.
exportfs -u:Annulla l'esportazione di una o più directory.
exportfs -r:Riesporta tutte le directory dopo aver modificato /etc/exports.

Dopo aver configurato il server NFS, dobbiamo montare quella directory condivisa nel client NFS.

Configura Firewall

È necessario configurare il firewall sul server NFS per consentire al client NFS di accedere alla condivisione NFS. Per farlo, esegui i seguenti comandi sul server NFS.

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

Configura client NFS

Installa il client NFS

È necessario installare i pacchetti NFS sul client NFS per montare una condivisione NFS remota. Installa i pacchetti NFS usando il comando seguente.

yum install -y nfs-utils

Controlla la quota NFS

Prima di montare la condivisione NFS, ti chiedo di controllare le condivisioni NFS disponibili sul server NFS eseguendo il seguente comando sul client NFS.

Sostituisci l'indirizzo IP con l'indirizzo IP o il nome host del tuo server NFS.
showmount -e 192.168.1.10

Risultato:

Export list for 192.168.1.10:
/nfsfileshare 192.168.1.20

Come per l'output, /nfsfileshare è disponibile sul server NFS (192.168.1.10) per il client NFS (192.168.1.20).

Extra:

showmount -e :mostra le condivisioni disponibili sul tuo computer locale (server NFS).
showmount -e :elenca le condivisioni disponibili su il server remoto

Monta la condivisione NFS

Ora, crea una directory sul client NFS per montare la condivisione NFS /nfsfileshare che abbiamo creato nel server NFS.

mkdir /mnt/nfsfileshare

Utilizzare il comando seguente per montare una condivisione NFS /nfsfileshare dal server NFS 192.168.1.10 in /mnt/nfsfileshare sul client NFS.

mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare

Verifica la condivisione montata sul client NFS utilizzando il comando mount.

mount | grep nfs

Risultato:

ssunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)

Inoltre, puoi usare il comando df -hT per controllare la condivisione NFS montata.

df -hT

Risultato:

Filesystem                 Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root    xfs        50G  1.2G   49G   3% /
devtmpfs                   devtmpfs  485M     0  485M   0% /dev
tmpfs                      tmpfs     496M     0  496M   0% /dev/shm
tmpfs                      tmpfs     496M  6.7M  490M   2% /run
tmpfs                      tmpfs     496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/centos-home    xfs        47G   33M   47G   1% /home
/dev/sda1                  xfs      1014M  154M  861M  16% /boot
tmpfs                      tmpfs     100M     0  100M   0% /run/user/0
192.168.1.10:/nfsfileshare nfs4       50G  1.2G   49G   3% /mnt/nfsfileshare

Crea un file nella directory montata per verificare l'accesso in lettura e scrittura sulla condivisione NFS.

touch /mnt/nfsfileshare/test

Se il comando precedente non restituisce alcun errore, hai una configurazione NFS funzionante.

Montaggio automatico delle condivisioni NFS

Per montare le condivisioni automaticamente ad ogni riavvio, dovresti modificare il file /etc/fstab del tuo client NFS.

vi /etc/fstab

Aggiungi una voce come di seguito.

#
# /etc/fstab
# Created by anaconda on Wed Jan 17 12:04:02 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=60a496d0-69f4-4355-aef0-c31d688dda1b /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
192.168.1.10:/nfsfileshare /mnt/nfsfileshare    nfs     nosuid,rw,sync,hard,intr  0  0

Salva e chiudi il file.

Riavvia la macchina client e controlla se la condivisione è montata automaticamente o meno.

reboot

Verifica la condivisione montata sul client NFS utilizzando il comando mount.

mount | grep nfs

Risultato:

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,nosuid,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)

Se vuoi smontare quella directory condivisa dal tuo client NFS dopo aver finito con la condivisione dei file, puoi smontare quella particolare directory usando il comando umount.

umount /mnt/nfsfileshare

Conclusione

Hai configurato correttamente il server NFS e il client NFS su CentOS 7 / RHEL 7. Se non desideri utilizzare montaggi statici, puoi configurare AutoFS su CentOS 7 per montare la condivisione NFS solo quando un utente vi accede.


Cent OS
  1. Come configurare un server SFTP su CentOS

  2. Come installare Puppet su CentOS 8 / RHEL 8

  3. Configura il server SysLog su CentOS 6 / RHEL 6

  4. Come configurare il server NTP in CentOS?

  5. Come configurare un server proxy squid su CentOS/RHEL 7

Come configurare Jenkins su CentOS 8 / RHEL 8

Come configurare un server SVN su CentOS

Come configurare Icinga Web 2 su CentOS 8 / RHEL 8

Come installare Zabbix Server 4.x su CentOS 6 / RHEL 6

Come configurare il server SysLog centralizzato su CentOS 8 / RHEL 8

Come configurare HAProxy su CentOS 8