GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare un server NFS e montare condivisioni NFS su Ubuntu 18.04

Network File System (NFS) è un popolare protocollo di file system distribuito che consente agli utenti di montare directory remote sul proprio server. Il sistema consente di sfruttare lo spazio di archiviazione in una posizione diversa e di scrivere sullo stesso spazio da più server in modo semplice. Pertanto, funziona abbastanza bene per le directory a cui gli utenti devono accedere frequentemente. Questo tutorial spiega il processo di montaggio della condivisione NFS su un server Ubuntu 18.04 in passaggi semplici e facili da seguire.

Informazioni preliminari

Ai fini di questo tutorial, ci sarebbe una configurazione di condivisione della directory tra due server Ubuntu 18.04, che potrebbe essere di qualsiasi dimensione. Tuttavia, per ciascuno di questi server, avresti bisogno di un account configurato con sudo privilegi. Il server che condividerà le sue directory sarà indicato come host , mentre il server che monterà queste directory sarà chiamato client. 3. Per motivi di uniformità e semplicità, i seguenti indirizzi IP devono essere utilizzati per fare riferimento ai valori dell'host e del server durante tutto il tutorial:

  • Ospite: 192.168.0.100
  • Cliente: 192.168.0.101

Gli utenti devono sostituire i suddetti valori con i loro distinti valori host e client. Ora siamo pronti per imparare i passaggi per montare una condivisione NFS su Ubuntu 18.04 LTS.

Download e installazione dei componenti

All'inizio, è essenziale installare i componenti necessari sia sul server host che su quello client. Espressamente sul server host, ti verrà richiesto di installare il nfs-kernel-server pacchetto, che ti consentirà di condividere le tue directory. Poiché questo è il primo passaggio che eseguirai con apt in questa sessione, devi iniziare aggiornando l'indice del pacchetto locale prima dell'installazione (come indicato di seguito):

sudo apt-get update
sudo apt-get install nfs-kernel-server

Dopo l'installazione di questi pacchetti, è possibile effettuare il passaggio al computer client. Sul computer client, ti verrà richiesto di installare un pacchetto chiamato nfs-common , che offre funzionalità NFS senza la necessità di includere i componenti del server. Anche in questo caso, devi aggiornare l'indice del pacchetto locale prima dell'installazione per assicurarti di avere le informazioni aggiornate (come mostrato di seguito):

sudo apt-get update
sudo apt-get install nfs-common

Questo ti porta alla fine di questo passaggio e ora puoi passare a quello successivo.

Creazione della directory di condivisione sul server host

Ai fini di questo tutorial, ci sarebbe un esperimento che prevede la condivisione di due directory distinte. La prima directory per la condivisione è la /home directory contenente i dati dell'utente. La seconda sarebbe una directory di uso generale che verrebbe creata in particolare per NFS in modo da dimostrare le impostazioni e i processi corretti. Lo stesso si trova in /var/nfs Come /home directory esiste già, andiamo semplicemente avanti e iniziamo creando la /var/nfsdirectory , utilizzando il seguente comando:

sudo mkdir /var/nfs

Ora abbiamo una nuova directory espressamente designata per la condivisione con host remoti. Tuttavia, la proprietà di questa directory non è ancora ideale. Dobbiamo assegnare la proprietà dell'utente a un utente sul nostro sistema denominato nessuno . Dobbiamo anche assegnare la proprietà del gruppo a un gruppo sul sistema denominato nogroup . Questo può essere fatto digitando il seguente comando:

sudo chown nobody:nogroup /var/nfs

È importante notare qui che dobbiamo cambiare con attenzione la proprietà solo su quelle directory che sono particolarmente utilizzate per la condivisione. Ad esempio, la proprietà della home directory (/home directory) non deve essere modificata in quanto causerebbe numerosi problemi agli utenti presenti sul server host.

Configurazione delle esportazioni NFS sul server host

Con le directory create e assegnate, ora possiamo fare un tuffo nel file di configurazione NFS per impostare la condivisione di queste risorse. Per questo, devi aprire /etc/exports file nell'editor di testo con privilegi di root utilizzando il seguente comando:

sudo nano /etc/exports

I file che appariranno conterranno alcuni commenti per informarti della struttura generale di ogni riga di configurazione. In sostanza, la sintassi sarebbe simile alla seguente:

directory_to_share client (share_option2,...,share_optionM)

Lo scopo qui è quello di poter creare una linea per ciascuna delle directory che devono essere condivise. Poiché, nel nostro esempio scelto, l'IP sembra essere 192.168.0.100, le righe dovrebbero essere simili alle seguenti:

/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check)

Prendiamoci ora un po' di tempo per comprendere le opzioni fornite nelle righe precedenti.

  • rw :questa opzione consente al computer client di leggere e scrivere l'accesso al volume.
  • sincronizzazione :Forza NFS a scrivere le modifiche sul disco prima di rispondere, ottenendo così un ambiente più stabile e coerente. Ciò è dovuto principalmente al fatto che la risposta replica lo stato effettivo del volume remoto.
  • nosubtreecheck :questa opzione evita il controllo del sottoalbero, che è un processo che obbliga l'host a controllare se il file è effettivamente ancora disponibile nell'albero esportato per ogni richiesta. Potrebbe creare problemi quando un file viene rinominato mentre il client lo ha aperto. Per lo stesso motivo, in quasi tutti i casi, è consigliabile disabilitare il controllo del sottoalbero.
  • norootsquash :Per impostazione predefinita, NFS traduce le richieste da un utente root in remoto in uno non privilegiato sul server. Questa è pensata per essere una funzionalità di sicurezza che non consente a un account root sul client di utilizzare il filesystem dell'host come root. Questo tipo di direttiva lo disabilita per un certo lotto di condivisioni.

Dopo aver apportato tutte le modifiche necessarie, in modo abbastanza prevedibile, è necessario apportare le modifiche e salvarle prima di chiudere il file. Successivamente, devi creare la tabella NFS che contiene le esportazioni delle tue condivisioni utilizzando il seguente comando:

sudo exportfs -a

Tuttavia, il servizio NFS non è ancora in esecuzione. Puoi iniziare lo stesso digitando il seguente comando:

sudo service nfs-kernel-server start

Il comando precedente renderà le tue condivisioni disponibili ai client che avresti configurato. Ora sei pronto per passare al passaggio successivo.

Creazione dei punti di montaggio e delle condivisioni di montaggio remote sul server client

Con il server host configurato e rendendo disponibili le sue condivisioni di directory, ora dovresti preparare il tuo client. Qui, ti verrà richiesto di montare le condivisioni remote, quindi devi creare alcuni punti di montaggio. Utilizzeresti il ​​convenzionale /mnt per cominciare, e successivamente, crea una directory chiamata NFS ai sensi di esso per consolidare le azioni. Qui, le directory effettive devono corrispondere alla loro posizione sul server host. Gli utenti possono creare ciascuna directory e le directory principali necessarie utilizzando il comando seguente:

sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/var/nfs

Dopo aver creato un posto decente per ospitare le condivisioni remote, ora sei in grado di montarle indirizzando il server host, che, ai fini di questo tutorial è 5.6.7.8, come mostrato di seguito:

sudo mount 192.168.0.100:/home /mnt/nfs/home
sudo mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

Questi dovrebbero consentire di montare le condivisioni dal computer host sul computer client. Puoi ricontrollarlo guardando lo spazio su disco disponibile sul server client (come indicato di seguito):

df -h

Filesystem Size Used Avail Use% Mounted on /dev/vda 59G 1.3G 55G 3% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 12K 2.0G 1% /dev tmpfs 396M 324K 396M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user 192.168.0.100:/home 59G 1.3G 55G 3% /mnt/nfs/home

Come è evidente in fondo, solo una delle condivisioni previste è visibile perché entrambe le condivisioni esportate esistono sullo stesso filesystem sul server remoto, il che significa che condividono lo stesso pool di archiviazione. Per la Disponibilità e Utilizza% colonne per essere precisi, solo una delle azioni può essere aggiunta ai calcoli. Tuttavia, se desideri visualizzare tutte le condivisioni NFS che hai montato, puoi digitare il seguente comando:

mount -t nfs

Il comando precedente genererà l'intero lotto di mount NFS che sono attualmente accessibili sul computer client, il che ti porta alla fine di questo passaggio ed è ora il momento di passare a quello successivo.

Test dell'accesso NFS

Puoi testare l'accesso alle condivisioni scrivendo qualcosa nelle tue condivisioni, ad esempio un file di prova in una delle tue condivisioni (come mostrato di seguito):

sudo touch /mnt/nfs/home/test_home

Qui, scriveremo anche il file di prova nell'altra condivisione per dimostrare una differenza importante:

sudo touch /mnt/nfs/var/nfs/test_var_nfs

Si prega di esaminare attentamente la proprietà del file nella directory home montata (come mostrato di seguito) per capire la differenza:

ls -l /mnt/nfs/home/test_home
-rw-r--r-- 1 root   root      0 Apr 10 09:15 test_home

Come è evidente, il file è di proprietà di root, il motivo è che hai disattivato il root_squash opzione su questo mount, che avrebbe scritto il file come utente sconosciuto e non root. Sull'altro file di test, che è stato montato con root_squash abilitato, noterai qualcosa di completamente diverso (come spiegato di seguito):

ls -l /mnt/nfs/var/nfs/test_var_nfs
-rw-r--r-- 1 nobody nogroup 0 Apr 10 09:15 test_var_nfs

Chiaramente, questo file è stato assegnato a nessuno utente e il nogroup gruppo. Quindi, questo è conforme alla configurazione preimpostata. Passiamo ora al passaggio successivo.

Rendere automatico il montaggio della directory NFS remota

Ti piace la possibilità di rendere automatico il montaggio delle condivisioni NFS remote aggiungendolo a fstab file sul client. Devi aprire questo file con i privilegi di root nel tuo editor di testo usando il seguente comando:

sudo nano /etc/fstab

Proprio in fondo al file, devi aggiungere una riga per ciascuna delle condivisioni, che assomiglierebbe a quella indicata di seguito:

192.168.0.100:/home      /mnt/nfs/home   nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0

Le opzioni specificate qui possono essere trovate nella pagina man che descrive il montaggio NFS in fstab file, utilizzando il seguente comando:

man nfs

Ciò ti consentirà di montare automaticamente le partizioni remote all'avvio. Potrebbe volerci del tempo prima che la connessione venga stabilita e le condivisioni siano disponibili (la pazienza sarà una virtù qui!!)

Smontaggio di una condivisione remota NFS

Se non hai più bisogno di montare la directory remota sul tuo sistema, puoi smontarla facilmente uscendo dalla struttura della directory della condivisione e smontando, usando il seguente comando:

cd ~
sudo umount /mnt/nfs/home
sudo umount /mnt/nfs/var/nfs

Ciò ti consentirà di rimuovere le condivisioni remote, rendendo accessibile solo la tua memoria locale:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         59G  1.3G   55G   3% /	
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  320K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

Come è chiaro, le condivisioni NFS ora non sono disponibili come spazio di archiviazione. Questo ti porta alla fine del tutorial.

Conclusione

NFS offre un meccanismo semplice e rapido per accedere ai sistemi remoti su una rete. Tuttavia, il protocollo non è crittografato. Se intendi utilizzarlo in un ambiente di produzione, è consigliabile considerare il routing NFS su SSH o una connessione VPN in modo da creare un'esperienza molto più sicura.


Ubuntu
  1. Come configurare un server NFS e montare condivisioni NFS su Ubuntu 14.04

  2. Come configurare un server NFS e montare condivisioni NFS su Ubuntu 14.10

  3. Come installare e configurare Algo VPN Server su Ubuntu 20.04

  4. Come installare e configurare il server DHCP su Ubuntu 20.04

  5. Come installare client e server NFS su Ubuntu 20.04

Come installare e configurare Postfix su Ubuntu 18.04

Come installare Server e Client NFS su Ubuntu

Come installare e configurare il server LAMP su Ubuntu

Come installare e configurare il server OpenLDAP su Ubuntu 16.04

Come installare e configurare VNC su Ubuntu Server 20.04

Come installare e configurare un server NFS Ubuntu Linux