Come condividere i filesystem ZFS con NFS

Come condividere i filesystem ZFS con NFS

È possibile condividere i pool e i filesystem ZFS utilizzando il protocollo di condivisione di file NFS (Network File System) e accedervi dai computer remoti molto facilmente.

In questo articolo, ti mostrerò come condividere pool e filesystem ZFS utilizzando il servizio di condivisione di file NFS e accedervi da computer remoti. Quindi iniziamo.

Sommario

  1. Diagramma di rete
  2. Installazione del server NFS
  3. Installazione del client NFS
  4. Creazione di pool ZFS e filesystem
  5. Condivisione di piscine ZFS con NFS
  6. Condivisione di filesystem ZFS con NFS
  7. Montaggio di pool ZFS condivisi NFS e filesystems
  8. Montare automaticamente i pool e i filesyms condivisi NFS NFS
  9. Consenti le scritture ai pool ZFS condivisi NFS e ai filesystems
  10. Pool e system di non Sharing ZFS
  11. Conclusione
  12. Riferimenti

Diagramma di rete

In questo articolo, configurerò un Ubuntu 20.04 LTS Computer (nome host: Linuxhint, IP: 192.168.122.98) come server NFS e configurare un Ubuntu 20.04 LTS Computer (nome host: NFS-Client, IP: 192.168.122.203) come client NFS. Entrambi questi computer sono nella sottorete 192.168.122.0/24. Configurerò il server NFS in modo tale che solo i computer/server in questa sottorete saranno in grado di accedere al server NFS.

Figura 1: server NFS e client connessi alla sottorete di rete 192.168.122.0/24

Installazione del server NFS

È necessario avere il pacchetto server NFS installato sul computer da dove si desidera condividere i pool/filesystem ZFS tramite NFS.

Se stai usando Debian 10 o Ubuntu 20.04 LTS, è possibile installare il pacchetto server NFS sul tuo computer come segue:

$ sudo apt installa nfs-kernel-server -y

Una volta installato il pacchetto server NFS, il Server NFS Il servizio SystemD dovrebbe essere attivo.

$ sudo systemctl status nfs-server.servizio

Se stai utilizzando CentOS 8/RHEL 8, leggi l'articolo come configurare il server NFS su CentOS 8 per l'assistenza sull'installazione del server NFS sul tuo computer.

Installazione Cliente NFS

È necessario avere il pacchetto client NFS installato sul computer da dove accederai ai pool/filesystem ZFS tramite NFS.

Se stai usando Debian 10 o Ubuntu 20.04 LTS, è possibile eseguire il seguente comando per installare il pacchetto client NFS sul tuo computer:

$ sudo apt install nfs -common -y

Creazione di pool ZFS e filesystem

In questa sezione, creerò un pool ZFS Pool1 Utilizzando i dispositivi di archiviazione VDB E VDC nella configurazione specchio.

$ sudo lsblk -e7 -d

Per creare un nuovo pool ZFS Pool1 Utilizzando i dispositivi di archiviazione VDB E VDC In configurazione mirror, eseguire il seguente comando:

$ sudo zpool crea -f pool1 mirror vdb vdc

Un nuovo pool di ZFS Pool1 dovrebbe essere creato e il pool ZFS Pool1 dovrebbe essere montato automaticamente in /pool1 directory.

elenco $ sudo zfs

Crea un filesystem ZFS FS1 Nel pool ZFS Pool1 come segue:

$ sudo zfs crea pool1/fs1

Un nuovo system ZFS FS1 dovrebbe essere creato e montato automaticamente in /pool1/fs1 directory.

elenco $ sudo zfs

Condivisione di piscine ZFS con NFS

Per condividere il pool ZFS Pool1 tramite NFS, devi impostare il sharenfs Proprietà del tuo pool ZFS di conseguenza.

Per consentire a tutti sulla rete di leggere/scrivere l'accesso al pool ZFS Pool1, Puoi impostare il sharenfs Proprietà del pool ZFS Pool1 come segue:

$ sudo zfs set sharenfs = "rw" pool1

O,

$ sudo zfs set sharenfs = "rw =*" pool1

Per consentire a ogni computer/server sulla sottorete di rete 192.168.122.0/24 Leggi/scrivi l'accesso al pool ZFS Pool1 Solo, puoi impostare il sharenfs Proprietà del pool ZFS Pool1 come segue:

$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1

Per consentire solo il computer con l'indirizzo IP 192.168.122.203 Leggi/scrivi l'accesso al pool ZFS Pool1, Puoi impostare il sharenfs Proprietà del pool ZFS Pool1 come segue:

$ sudo zfs set sharenfs = "rw = 192.168.122.203 "Pool1

Puoi usare il colon (:) simbolo per consentire l'accesso al pool ZFS Pool1 Da più sottoreti di rete o indirizzi IP.

Ad esempio, per consentire le sottoreti di rete 192.168.122.0/24 E 192.168.132.0/24 Leggi/scrivi l'accesso al pool ZFS Pool1, Puoi impostare il sharenfs Proprietà del pool ZFS Pool1 come segue:

$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1

Allo stesso modo, consentire solo ai computer con gli indirizzi IP 192.168.122.203 E 192.168.122.233 Leggi/scrivi l'accesso al pool ZFS Pool1, Puoi impostare il sharenfs Proprietà del pool ZFS Pool1 come segue:

$ sudo zfs set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1

Puoi verificare se il sharenfs La proprietà è impostata correttamente sul pool ZFS Pool1 come segue:

$ sudo zfs ottieni sharenfs pool1

Condivisione di filesystem ZFS con NFS

Per condividere il filesystem ZFS FS1 tramite NFS, devi impostare il sharenfs Proprietà del filesystem ZFS di conseguenza.

Per consentire a tutti sulla rete di leggere/scrivere l'accesso al filesystem ZFS FS1, Puoi impostare il sharenfs Proprietà del filesystem ZFS FS1 come segue:

$ sudo zfs set sharenfs = "rw" pool1/fs1

O,

$ sudo zfs set sharenfs = "rw =*" pool1/fs1

Per consentire a ogni computer/server sulla sottorete di rete 192.168.122.0/24 Leggi/scrivi l'accesso al filesystem ZFS Pool1/FS1, Puoi impostare il sharenfs Proprietà del filesystem ZFS Pool1/FS1 come segue:

$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1/FS1

Per consentire solo il computer con l'indirizzo IP 192.168.122.203 Leggi/scrivi l'accesso al filesystem ZFS Pool1/FS1, Puoi impostare il sharenfs Proprietà del filesystem ZFS Pool1/FS1 come segue:

$ sudo zfs set sharenfs = "rw = 192.168.122.203 "Pool1/FS1

Puoi usare il colon (:) simbolo per consentire l'accesso al filesystem ZFS FS1 Da più sottoreti di rete o indirizzi IP.

Ad esempio, per consentire le sottoreti di rete 192.168.122.0/24 E 192.168.132.0/24 Leggi/scrivi l'accesso al filesystem ZFS Pool1/FS1, Puoi impostare il sharenfs Proprietà del filesystem ZFS Pool1/FS1 come segue:

$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1/FS1

Allo stesso modo, consentire solo ai computer con gli indirizzi IP 192.168.122.203 E 192.168.122.233 Leggi/scrivi l'accesso al filesystem ZFS Pool1/FS1, Puoi impostare il sharenfs Proprietà del filesystem ZFS Pool1/FS1 come segue:

$ sudo zfs set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1/FS1

Puoi verificare se il sharenfs La proprietà è impostata correttamente sul filesystem ZFS Pool1/FS1 come segue:

$ sudo zfs ottieni sharenfs pool1/fs1

Montaggio di pool ZFS condivisi NFS e filesystems

Per montare i pool ZFS e i filesystem che hai condiviso tramite NFS sul tuo computer (client NFS), è necessario conoscere l'indirizzo IP del server NFS.

Puoi eseguire il 'hostname -i ' Comando sul server NFS per trovare l'indirizzo IP del server NFS. Nel mio caso, l'indirizzo IP è 192.168.122.98.

$ hostname -i

Una volta conosciuto l'indirizzo IP del server NFS, è possibile elencare tutte le condivisioni NFS disponibili dal tuo computer come segue:

$ showmount -e 192.168.122.98

Come puoi vedere, il pool ZFS Pool1 e il filesystem ZFS FS1 sono elencati come azioni NFS /pool1 E /pool1/fs1 rispettivamente.

Crea una directory /mnt/pool1 Per montare la condivisione NFS /pool1 (Pool ZFS Pool1) come segue:

$ sudo mkdir -v /mnt /pool1

Puoi montare la condivisione NFS /pool1 (Pool ZFS Pool1) dal server NFS 192.168.122.98 sul /mnt/pool1 Directory del tuo computer (client NFS) come segue:

$ sudo monte -t ​​nfs 192.168.122.98:/pool1/mnt/pool1

La condivisione NFS /pool1 dovrebbe essere montato su /mnt/pool1 Directory del tuo computer (client NFS).

$ df -h /mnt /pool1

Allo stesso modo, crea una nuova directory /mnt/fs1 Per montare la condivisione NFS /pool1/fs1 (Filesystem ZFS FS1) come segue:

$ sudo mkdir -v /mnt /fs1

Montare la condivisione NFS /pool1/fs1 (Filesystem ZFS FS1) dal server NFS 192.168.122.98 sul /mnt/fs1 Directory del tuo computer (client NFS) come segue:

$ sudo monte -t ​​nfs 192.168.122.98:/pool1/fs1/mnt/fs1

La condivisione NFS /pool1/fs1 (Filesystem ZFS FS1) dovrebbe essere montato su /mnt/fs1 Directory del tuo computer (client NFS).

$ df -h /mnt /fs1

Montare automaticamente i pool e i filesyms condivisi NFS NFS

Puoi montare le azioni NFS /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) sul tuo computer (client NFS) automaticamente al momento dell'avvio.

Per farlo, aprire il /etc/fstab file con il nano Editor di testo come segue:

$ sudo nano /etc /fstab

Aggiungere le seguenti righe alla fine del /etc/fstab file.

# Monte NFS condivisioni
192.168.122.98:/pool1/mnt/pool1 NFS predefiniti 0 0
192.168.122.98:/pool1/fs1/mnt/fs1 NFS impostazioni predefinite 0 0

Una volta che hai finito, premere + X seguito da Y E per salvare il /etc/fstab file.

Per avere effetto sulle modifiche, riavviare il computer (client NFS) come segue:

$ sudo riavvia

La prossima volta che il tuo computer (client NFS) si avvia, le condivisioni NFS /pool1 (Pool ZFS Pool1)E /pool1/fs1 (Filesystem ZFS FS1) dovrebbe essere montato in /mnt/pool1 E /mnt/fs1 rispettivamente directory.

$ df -h -t nfs4

Consenti le scritture ai pool ZFS condivisi NFS e ai filesystems

Se provi a scrivere sulle condivisioni NFS /pool1 (Pool ZFS Pool1) O /pool1/fs1 (Filesystem ZFS FS1) dal tuo computer (client NFS) in questo momento, otterrai il Permesso negato Messaggio come mostrato nello screenshot seguente.

Per risolvere questo problema, puoi fare uno dei seguenti:

  1. Impostato 0777 autorizzazione sul /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) directory del server NFS in modo che tutti possano scrivere nel pool ZFS Pool1 e filesystem FS1. Questo metodo ha grandi rischi per la sicurezza. Quindi, non lo consiglio a meno che non lo stia usando per scopi di test.
  2. Crea un gruppo Users NFS (Diciamo) sul server NFS e sui computer client NFS da cui si desidera scrivere sulle tue condivisioni NFS. Quindi, cambia il gruppo del /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) directory del server NFS a Users NFS. Inoltre, imposta le autorizzazioni di scrittura del gruppo (0775) per le directory /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) directory del server NFS. In questo modo, puoi creare nuovi utenti sui computer client NFS, imposta Users NFS come il loro gruppo primario, e dovrebbero essere in grado di scrivere alle condivisioni NFS senza problemi.

NOTA: NFS mappa l'UID (ID utente) e GID (ID gruppo) dei computer client NFS con UID e GID del server NFS. Quindi, se un utente/gruppo può scrivere su una condivisione NFS sul server NFS, lo stesso utente/gruppo con lo stesso UID/GID dovrebbe anche essere in grado di scrivere su tale condivisione NFS dal computer client NFS.

In questa sezione, ti mostrerò come impostare gli utenti e i gruppi necessari sul server NFS e sui computer client per poter scrivere sulle condivisioni NFS.

Sul server NFS, crea un nuovo gruppo Users NFS e impostare il GID (ID gruppo) del Users NFS gruppo a 2000 come segue:

$ Sudo GroupAdd-Gid 2000 NFS-Users

Sui computer client NFS, crea un nuovo gruppo Users NFS e impostare il GID (ID gruppo) del Users NFS gruppo a 2000 anche.

$ Sudo GroupAdd-Gid 2000 NFS-Users

Sul server NFS, modifica il gruppo del /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) directory a Users NFS come segue:

$ sudo chgrp -rfv nfs -users /pool1

Consentire le autorizzazioni di lettura e scrittura del gruppo per il /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) directory come segue:

$ sudo chmod -rfv 0775 /pool1

Il gruppo del /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) le directory dovrebbero essere cambiate in Users NFS e anche le autorizzazioni di lettura/scrittura di gruppo dovrebbero essere impostate.

$ ls -lhd /pool1
$ ls -lhd /pool1 /fs1

Per avere effetto le modifiche, riavviare il server NFS come segue:

$ sudo riavvia

Ora, devi creare gli account utente necessari sui computer client NFS per poter scrivere sulle condivisioni NFS.

Crea un nuovo utente Alex (diciamo) con l'uid 5001 (in modo che non interferiscano con gli utenti già disponibili nel server NFS) e impostano il gruppo primario dell'utente su Users NFS come segue:

$ sudo useradd -m -s /bin /bash -u 5001 -g nfs -users alex

Un nuovo utente Alex con l'uid 5001 e gruppo primario Users NFS (GID 2000) dovrebbe essere creato sul computer client NFS.

$ id Alex

Ora riavvia il computer client NFS per le modifiche per avere effetto.

$ sudo riavvia

Una volta che il computer client NFS si avvia, le condivisioni NFS /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) dovrebbe essere montato.

$ df -h -t nfs4

Le condivisioni NFS /pool1 (Pool ZFS Pool1) E /pool1/fs1 (Filesystem ZFS FS1) dovrebbe anche avere le autorizzazioni di directory corrette.

$ ls -lhd /mnt /pool1
$ ls -lhd /mnt /fs1

Ora, accedi come utente Alex Sul computer client NFS come segue:

$ sudo su - Alex

L'utente Alex dovrebbe essere in grado di creare file sulla condivisione NFS /pool1 (Pool ZFS Pool1) e accedi a loro come puoi vedere nello screenshot qui sotto.

$ echo '[pool1] hello world'>/mnt/pool1/ciao.TXT
$ ls -lh /mnt /pool1
$ cat/mnt/pool1/ciao.TXT

L'utente Alex dovrebbe anche essere in grado di creare file sulla condivisione NFS /pool1/fs1 (Filesystem ZFS FS1) e accedi a loro come puoi vedere nello screenshot qui sotto.

$ echo '[fs1] ciao mondo'>/mnt/fs1/ciao.TXT
$ ls -lh /mnt /fs1
$ cat/mnt/fs1/ciao.TXT

Sul server NFS, l'UID (ID utente) dei file che l'utente Alex creato dal computer client NFS dovrebbe essere 5001 E il gruppo dovrebbe essere Users NFS Come puoi vedere nello screenshot qui sotto.

$ ls -lh /pool1
$ ls -lh /pool1 /fs1

Se si desidera risolvere gli UID su nomi utente sul tuo server NFS, è necessario creare lo stesso utente con lo stesso UID (come hai creato sul computer client NFS) sul server NFS.

Per un piccolo numero di utenti, puoi eseguire lo stesso useradd comanda sul server NFS e sul client per risolvere questo problema. Se devi gestire un gran numero di utenti, allora sarà molto lavoro farlo manualmente. Invece, è necessario utilizzare NIS (Network Information Server) o LDAP (Lightweight Directory Access Protocol) per sincronizzare automaticamente gli utenti tra i computer client NFS Server e NFS.

Per assistenza sulla configurazione di NIS sul server NFS e sui computer client, controlla i seguenti articoli:

  • Installazione del server NIS su Ubuntu 18.04 LTS
  • Come installare e configurare NIS Server su Debian 10

Per assistenza sulla configurazione di LDAP sul server NFS e sui computer client, controlla i seguenti articoli:

  • Come configurare il client LDAP in Debian 10

Pool e system di non Sharing ZFS

Se vuoi smettere di condividere il pool ZFS Pool1 Dovrai impostare il sharenfs Proprietà del pool ZFS Pool1 A spento come segue:

$ sudo zfs impostare sharenfs = off pool1

La condivisione NFS dovrebbe essere disabilitata per il pool ZFS Pool1 Come puoi vedere nello screenshot qui sotto.

$ sudo zfs ottieni sharenfs pool1

Allo stesso modo, puoi smettere di condividere il filesystem ZFS FS1 impostando il sharenfs Proprietà del filesystem ZFS FS1 A spento come segue:

$ sudo zfs imposta sharenfs = off pool1/fs1

La condivisione NFS dovrebbe essere disabilitata per il filesystem ZFS FS1 Come puoi vedere nello screenshot qui sotto.

$ sudo zfs ottieni sharenfs pool1/fs1

Conclusione

In questo articolo, ti ho mostrato come condividere pool di ZFS e filesystem e accedervi in ​​remoto utilizzando il protocollo di condivisione di file NFS. Ti ho anche mostrato come montare automaticamente i pool/filesystem di ZFS che hai condiviso con NFS sui computer client NFS al momento dell'avvio. Ti ho mostrato come gestire le autorizzazioni di accesso per le azioni NFS e consentire l'accesso alla scrittura alle azioni NFS dai computer client NFS.

Riferimenti

[1] Ubuntu MANPAGE: ZFS - Configura i file system ZFS
[2] File system ZFS di condivisione e non condivisione - Amministrazione Oracle Solaris: file system ZFS
[3] Sinossi - Pagine di Man Sezione 1M: comandi di amministrazione di sistema
[4] NFSSEC MANPAGE SEZIONE 5 - Documentazione Oracle Solaris
[5] CentOS - NFS Predefinito a 777 - Errore del server
[6] Capitolo 4. L'esportazione di NFS condivide Red Hat Enterprise Linux 8 | Portale clienti Red Hat