NFS sta per Network File System, aiuta a condividere file e cartelle tra sistemi Linux / Unix, sviluppato da SUN Microsystems nel 1990. NFS consente di montare una condivisione remota localmente.
Questa guida consente di configurare il server NFS su CentOS 7 / RHEL 7.
- Vantaggi di NFS
- Servizi importanti
- File di configurazione importanti
- Ambiente
- Server NFS
- Client NFS
- Configurare NFS Server
- Installare NFS Server
- Crea condivisione NFS
- Configura firewall
- Configura il client NFS
- Installa il client NFS
- Verifica condivisione NFS
- Monta NFS Share
- Automount NFS Shares
- Conclusione
Vantaggi di NFS
- Condivisione di file / cartelle tra sistemi *nix
- Consente di montare file system remoti localmente
- Può essere utilizzato come sistema di storage centralizzato
- Può essere utilizzato come dominio di storage ( Datastore) per VMware e altre piattaforme di virtualizzazione.
- Consente alle applicazioni di condividere file di configurazione e dati con più nodi.
- Consente di aggiornare i file nella condivisione.
Servizi importanti
Di seguito sono riportati gli importanti servizi NFS, inclusi nei pacchetti nfs-utils.
rpcbind: Il server rpcbind converte i numeri di programma RPC in indirizzi universali.
nfs-server: consente ai client di accedere alle condivisioni NFS.
nfs-lock / rpc-statd: blocco file NFS. Implementare il ripristino del blocco file quando un server NFS si blocca e si riavvia.
nfs-idmap: traduce gli ID utente e gruppo in nomi e per tradurre i nomi utente e gruppo
in ID
File di configurazione importanti
Si lavorerebbe principalmente sui file di configurazione sottostanti per configurare il server e i client NFS.
/etc/esportazioni: È il file di configurazione principale, controlla quali file system vengono esportati in host remoti e specifica le opzioni.
/etc/fstab: Questo file viene utilizzato per controllare quali file system incluse le directory NFS sono 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.consenti e/etc / hosts.nega: Questi file sono chiamati wrapper TCP, controlla 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.indirizzo IP locale (CentOS 7)
: 192.168.1.10/24
Client NFS
Nome host: client.itzgeek.indirizzo IP locale (CentOS 7)
: 192.168.1.20/24
Configurare NFS Server
Installare NFS Server
Installare il seguente pacchetto per NFS server utilizzando il comando yum.
yum install -y nfs-utils
Una volta installati i pacchetti, abilitare e avviare i servizi NFS.
systemctl start nfs-server rpcbindsystemctl 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/.
È anche possibile condividere la directory esistente con NFS.
mkdir /nfsfileshare
Consente al client NFS di leggere e scrivere nella directory creata.
chmod 777 /nfsfileshare/
Dobbiamo modificare il file /etc/exports per fare 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 subnet 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 vengono attese.
no_root_squash: Per impostazione predefinita, qualsiasi richiesta di file fatta dall’utente root sul computer client viene trattata come dall’utente nessuno sul server. (Esattamente l’UID a cui è mappata la richiesta dipende dall’UID dell’utente “nessuno” sul server, non dal client.) Se è selezionato no_root_squash, root sul computer client avrà lo stesso livello di accesso ai file sul sistema come root sul server.
Puoi conoscere tutte le opzioni nella pagina man man exports o qui.
Esportare le directory condivise utilizzando il seguente comando.
exportfs -r
Extra:
exportfs-v: Visualizza un elenco di file condivisioni e opzioni di esportazione su un server.
exportfs-a: Esporta tutte le directory elencate in / etc / exports.
exportfs-u: UnExport una o più directory.
exportfs-r: riesporta tutte le directory dopo aver modificato /etc / exports.
Dopo aver configurato il server NFS, è necessario montare la 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 fare ciò, eseguire i seguenti comandi sul server NFS.
firewall-cmd --permanent --add-service mountdfirewall-cmd --permanent --add-service rpc-bindfirewall-cmd --permanent --add-service nfsfirewall-cmd --reload
Configura il 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 sotto.
yum install -y nfs-utils
Verifica condivisione 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.
showmount -e 192.168.1.10
Uscita:
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 computer locale (server NFS).
showmount-e < server-ip o hostname>: Elenca le condivisioni disponibili sul server remoto
Ora, crea una directory sul client NFS per montare NFS share /nfsfileshare che abbiamo creato nel server NFS.
mkdir /mnt/nfsfileshare
Utilizzare il comando sottostante 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
Verificare la condivisione montata sul client NFS utilizzando il comando mount.
mount | grep nfs
Uscita:
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, è possibile utilizzare il comando df-hT per controllare la condivisione NFS montata.
df -hT
Uscita:
Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/centos-root xfs 50G 1.2G 49G 3% /devtmpfs devtmpfs 485M 0 485M 0% /devtmpfs tmpfs 496M 0 496M 0% /dev/shmtmpfs tmpfs 496M 6.7M 490M 2% /runtmpfs 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% /boottmpfs tmpfs 100M 0 100M 0% /run/user/0192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
Creare un file nella directory montata per verificare l’accesso in lettura e scrittura su NFS share.
touch /mnt/nfsfileshare/test
Se il comando precedente non restituisce alcun errore, è stata eseguita la configurazione NFS.
Per montare automaticamente le condivisioni ad ogni riavvio, è necessario modificare il file /etc/fstab del client NFS.
vi /etc/fstab
Aggiungi una voce come sotto.
## /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 0UUID=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 0192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
Salva e chiudi il file.
Riavviare il computer client e verificare se la condivisione è montata automaticamente o meno.
reboot
Verificare la condivisione montata sul client NFS utilizzando il comando mount.
mount | grep nfs
Uscita:
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 si desidera smontare quella directory condivisa dal client NFS dopo aver terminato la condivisione dei file, è possibile smontare quella particolare directory utilizzando il comando umount.
umount /mnt/nfsfileshare
Conclusione
È stato configurato correttamente il server NFS e il client NFS su CentOS 7 / RHEL 7. Se non si desidera utilizzare supporti statici, è possibile configurare AutoFS su CentOS 7 per montare NFS share solo quando un utente vi accede.