So teilen Sie ZFS -Dateisysteme mit NFS

So teilen Sie ZFS -Dateisysteme mit NFS

Sie können Ihre ZFS-Pools und -dateisysteme mithilfe des NFS-Datei-Sharing-Protokolls (Netzwerkdateisystem) freigeben und auf sie von Remote-Computern sehr einfach zugreifen.

In diesem Artikel werde ich Ihnen zeigen, wie Sie ZFS -Pools und -Dateisysteme mithilfe des NFS -Dateifreigabedienstes freigeben und von Remote -Computern auf sie zugreifen können. Also lasst uns anfangen.

Inhaltsverzeichnis

  1. Netzwerkdiagramm
  2. Installieren von NFS -Server
  3. Installieren von NFS -Client
  4. Erstellen von ZFS -Pools und Dateisystemen
  5. Teilen von ZFS -Pools mit NFS
  6. Teilen von ZFS -Dateisystemen mit NFS
  7. Montage NFS Shared ZFS Pools und Dateisysteme
  8. Automatisch die gemeinsam genutzten NFS -ZFS -Pools und -Dateisysteme montieren
  9. Ermöglichen
  10. Unschärfe ZFS -Pools und Dateisysteme
  11. Abschluss
  12. Verweise

Netzwerkdiagramm

In diesem Artikel werde ich einen Ubuntu 20 konfigurieren.04 LTS -Computer (Hostname: LinuxHint, IP: 192.168.122.98) als NFS -Server und konfigurieren Sie einen Ubuntu 20.04 LTS -Computer (Hostname: NFS-Client, IP: 192.168.122.203) als NFS -Client. Beide Computer befinden sich im Subnetz 192.168.122.0/24. Ich werde den NFS -Server so konfigurieren, dass nur Computer/Server in diesem Subnetz auf den NFS -Server zugreifen können.

Abbildung 1: NFS -Server und Client, die mit dem Netzwerk Subnetz 192 verbunden sind.168.122.0/24

Installieren von NFS -Server

Sie müssen das NFS -Serverpaket auf dem Computer installieren lassen, von dem Sie Ihre ZFS -Pools/-Dateisysteme über NFS teilen möchten.

Wenn Sie Debian 10 oder Ubuntu 20 verwenden.04 LTS können Sie das NFS -Serverpaket wie folgt auf Ihrem Computer installieren:

$ sudo APT Installieren Sie NFS-Kernel-Server -y

Sobald das NFS -Serverpaket installiert ist, ist das NFS-Server Systemd Service sollte sein aktiv.

$ sudo systemctl Status NFS-Server.Service

Wenn Sie CentOS 8/RHEL 8 verwenden, lesen Sie den Artikel, wie Sie den NFS -Server auf CentOS 8 konfigurieren, um Unterstützung bei der Installation des NFS -Servers auf Ihrem Computer zu erhalten.

Installation NFS -Client

Sie müssen das NFS -Client -Paket auf dem Computer installieren lassen, von dem Sie über NFS auf Ihre ZFS -Pools/-Dateisysteme zugreifen können.

Wenn Sie Debian 10 oder Ubuntu 20 verwenden.04 LTS können Sie den folgenden Befehl ausführen, um das NFS -Client -Paket auf Ihrem Computer zu installieren:

$ sudo apt installieren nFS -common -y -y

Erstellen von ZFS -Pools und Dateisystemen

In diesem Abschnitt werde ich einen ZFS -Pool erstellen Pool1 Verwenden der Speichergeräte VDB Und VDC in der Spiegelkonfiguration.

$ sudo lsblk -e7 -d

So erstellen Sie einen neuen ZFS -Pool Pool1 Verwenden der Speichergeräte VDB Und VDC Führen Sie in der Spiegelkonfiguration den folgenden Befehl aus:

$ sudo zpool erstellen -f Pool1 Mirror VDB VDC

Ein neuer ZFS -Pool Pool1 sollte erstellt werden und der ZFS -Pool Pool1 sollte automatisch in der montiert werden /Pool1 Verzeichnis.

$ sudo ZFS -Liste

Erstellen Sie ein ZFS -Dateisystem FS1 im ZFS -Pool Pool1 folgendermaßen:

$ sudo ZFS erstellen Pool1/FS1

Ein neues ZFS -Dateisystem FS1 sollte erstellt und automatisch in der montiert werden /pool1/fs1 Verzeichnis.

$ sudo ZFS -Liste

Teilen von ZFS -Pools mit NFS

Den ZFS -Pool teilen Pool1 Über NFS müssen Sie die festlegen Shareenfs Eigenschaft Ihres ZFS -Pools entsprechend.

Damit alle im Netzwerk Lese-/Schreibzugriff auf den ZFS -Pool zu ermöglichen können Pool1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Pools Pool1 folgendermaßen:

$ sudo zfs set Shareenfs = "rw" Pool1

Oder,

$ sudo zfs set Shareenfs = "rw =*" Pool1

Damit jeder Computer/Server im Netzwerk -Subnetz 192.168.122.0/24 Lesen/Schreiben Sie den Zugriff auf den ZFS -Pool Pool1 Nur können Sie die festlegen Shareenfs Eigenschaft des ZFS -Pools Pool1 folgendermaßen:

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

Damit nur der Computer mit der IP -Adresse zuzulassen 192.168.122.203 Lesen/Schreiben Sie den Zugriff auf den ZFS -Pool Pool1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Pools Pool1 folgendermaßen:

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

Sie können den Dickdarm verwenden (:) Symbol, um den Zugriff auf den ZFS -Pool zu ermöglichen Pool1 auch aus mehreren Netzwerksubnetzen oder IP -Adressen.

Zum Beispiel, um den Netzwerksubnetzen zuzulassen 192.168.122.0/24 Und 192.168.132.0/24 Lesen/Schreiben Sie den Zugriff auf den ZFS -Pool Pool1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Pools Pool1 folgendermaßen:

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

Auf die gleiche Weise, um nur die Computer mit den IP -Adressen zuzulassen 192.168.122.203 Und 192.168.122.233 Lesen/Schreiben Sie den Zugriff auf den ZFS -Pool Pool1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Pools Pool1 folgendermaßen:

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

Sie können überprüfen, ob die Shareenfs Die Eigenschaft ist korrekt auf dem ZFS -Pool eingestellt Pool1 folgendermaßen:

$ sudo zfs bekommen Shareenfs Pool1

Teilen von ZFS -Dateisystemen mit NFS

Um das ZFS -Dateisystem zu teilen FS1 Über NFS müssen Sie die festlegen Shareenfs Eigenschaft des ZFS -Dateisystems entsprechend.

Damit alle im Netzwerk Lese-/Schreibzugriff auf das ZFS -Dateisystem zu ermöglichen können FS1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Dateisystems FS1 folgendermaßen:

$ sudo zfs set Shareenfs = "RW" Pool1/FS1

Oder,

$ sudo zfs set Shareenfs = "rw =*" Pool1/fs1

Damit jeder Computer/Server im Netzwerk -Subnetz 192.168.122.0/24 Lesen/Schreiben Sie den Zugriff auf das ZFS -Dateisystem Pool1/FS1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Dateisystems Pool1/FS1 folgendermaßen:

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

Damit nur der Computer mit der IP -Adresse zuzulassen 192.168.122.203 Lesen/Schreiben Sie den Zugriff auf das ZFS -Dateisystem Pool1/FS1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Dateisystems Pool1/FS1 folgendermaßen:

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

Sie können den Dickdarm verwenden (:) Symbol, um den Zugriff auf das ZFS -Dateisystem zu ermöglichen FS1 auch aus mehreren Netzwerksubnetzen oder IP -Adressen.

Zum Beispiel, um den Netzwerksubnetzen zuzulassen 192.168.122.0/24 Und 192.168.132.0/24 Lesen/Schreiben Sie den Zugriff auf das ZFS -Dateisystem Pool1/FS1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Dateisystems Pool1/FS1 folgendermaßen:

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

Auf die gleiche Weise, um nur die Computer mit den IP -Adressen zuzulassen 192.168.122.203 Und 192.168.122.233 Lesen/Schreiben Sie den Zugriff auf das ZFS -Dateisystem Pool1/FS1, Sie können die festlegen Shareenfs Eigenschaft des ZFS -Dateisystems Pool1/FS1 folgendermaßen:

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

Sie können überprüfen, ob die Shareenfs Eigenschaft ist korrekt im ZFS -Dateisystem eingestellt Pool1/FS1 folgendermaßen:

$ sudo zfs bekommen Shareenfs Pool1/FS1

Montage NFS Shared ZFS Pools und Dateisysteme

Um die ZFS -Pools und -Dateisysteme zu montieren, die Sie über NFS auf Ihrem Computer (NFS -Client) geteilt haben, müssen Sie die IP -Adresse Ihres NFS -Servers kennen.

Sie können die 'ausführen'Hostname -i ' Befehl auf Ihrem NFS -Server, um die IP -Adresse Ihres NFS -Servers zu finden. In meinem Fall lautet die IP -Adresse 192.168.122.98.

$ hostname -i

Sobald Sie die IP -Adresse des NFS -Servers kennen, können Sie alle verfügbaren NFS -Freigaben von Ihrem Computer wie folgt auflisten:

$ showmount -e 192.168.122.98

Wie Sie sehen können, Pool ZFS -Pool Pool1 und das ZFS -Dateisystem FS1 werden als NFS -Aktien aufgeführt /Pool1 Und /pool1/fs1 bzw.

Erstellen Sie ein Verzeichnis /mnt/pool1 Zur Montage des NFS -Anteils /Pool1 (ZFS -Pool Pool1) folgendermaßen:

$ sudo mkdir -v /mnt /pool1

Sie können die NFS -Aktien montieren /Pool1 (ZFS -Pool Pool1) vom NFS -Server 192.168.122.98 auf der /mnt/pool1 Verzeichnis Ihres Computers (NFS -Client) wie folgt:

$ sudo montage -t NFS 192.168.122.98:/pool1/mnt/pool1

Der NFS -Anteil /Pool1 sollte auf der montiert werden /mnt/pool1 Verzeichnis Ihres Computers (NFS -Client).

$ df -h /mnt /pool1

Erstellen Sie auf die gleiche Weise ein neues Verzeichnis /mnt/fs1 Zur Montage des NFS -Anteils /pool1/fs1 (ZFS -Dateisystem FS1) folgendermaßen:

$ sudo mkdir -v /mnt /fs1

Montieren die NFS -Aktie /pool1/fs1 (ZFS -Dateisystem FS1) vom NFS -Server 192.168.122.98 auf der /mnt/fs1 Verzeichnis Ihres Computers (NFS -Client) wie folgt:

$ sudo montage -t NFS 192.168.122.98:/pool1/fs1/mnt/fs1

Der NFS -Anteil /pool1/fs1 (ZFS -Dateisystem FS1) sollte auf der montiert werden /mnt/fs1 Verzeichnis Ihres Computers (NFS -Client).

$ df -h /mnt /fs1

Automatisch die gemeinsam genutzten NFS -ZFS -Pools und -Dateisysteme montieren

Sie können die NFS -Aktien montieren /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) auf Ihrem Computer (NFS -Client) automatisch zum Startzeit.

Um das zu tun, öffnen Sie die /etc/fstab Datei mit der Nano Texteditor wie folgt:

$ sudo nano /etc /fstab

Fügen Sie die folgenden Zeilen am Ende des /etc/fstab Datei.

# Mount NFS -Aktien
192.168.122.98:/pool1/mnt/pool1 nFS Standards 0 0
192.168.122.98:/pool1/fs1/mnt/fs1 NFS Standards 0 0

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten /etc/fstab Datei.

Damit die Änderungen wirksam werden sollen, starten Sie Ihren Computer (NFS -Client) wie folgt neu:

$ sudo Neustart

Wenn Ihr Computer (NFS -Client) das nächste Mal startet, teilt der NFS /Pool1 (ZFS -Pool Pool1)Und /pool1/fs1 (ZFS -Dateisystem FS1) sollte in der montiert werden /mnt/pool1 Und /mnt/fs1 Verzeichnisse jeweils.

$ df -h -t NFS4

Ermöglichen

Wenn Sie versuchen, in die NFS -Aktien zu schreiben /Pool1 (ZFS -Pool Pool1) oder /pool1/fs1 (ZFS -Dateisystem FS1) Von Ihrem Computer (NFS -Client) jetzt erhalten Sie die Zugriff verweigert Nachricht wie im Screenshot unten gezeigt.

Um dieses Problem zu lösen, können Sie eines der folgenden Folgendes durchführen:

  1. Satz 0777 Erlaubnis auf der /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) Verzeichnis des NFS -Servers, damit jeder in den ZFS -Pool schreiben kann Pool1 und Dateisystem FS1. Diese Methode hat große Sicherheitsrisiken. Ich empfehle es also nicht, es sei denn, Sie verwenden es zu Testzwecken.
  2. Erstellen Sie eine Gruppe NFS-Benutzer (sagen wir sagen) auf dem NFS -Server und auf den NFS -Client -Computern, aus denen Sie an Ihre NFS -Aktien schreiben möchten. Ändern Sie dann die Gruppe der Gruppe /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) Verzeichnisse des NFS -Servers zu NFS-Benutzer. Setzen Sie auch Gruppenschreibberechtigungen (0775) für die Verzeichnisse /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) Verzeichnisse des NFS -Servers. Auf diese Weise können Sie neue Benutzer auf den NFS -Client -Computern erstellen, festlegen NFS-Benutzer als ihre primäre Gruppe, und sie sollten in der Lage sein, ohne Probleme auf die NFS -Aktien zu schreiben.

NOTIZ: NFS ordnet die UID (Benutzer -ID) und die GID (Gruppen -ID) der NFS -Client -Computer mit UID und GID des NFS -Servers ab. Wenn also ein Benutzer/eine Gruppe auf den NFS -Server an eine NFS -Freigabe schreiben kann.

In diesem Abschnitt zeige ich Ihnen, wie Sie die erforderlichen Benutzer und Gruppen auf dem NFS -Server und Client -Computer einrichten, um auf die NFS -Aktien schreiben zu können.

Erstellen Sie auf dem NFS -Server eine neue Gruppe NFS-Benutzer und setzen Sie die GID (Gruppen -ID) der NFS-Benutzer Gruppe zu 2000 folgendermaßen:

$ sudo GroupAdd-GID 2000 NFS-Benutzer

Erstellen Sie auf den NFS -Client -Computern eine neue Gruppe NFS-Benutzer und setzen Sie die GID (Gruppen -ID) der NFS-Benutzer Gruppe zu 2000 sowie.

$ sudo GroupAdd-GID 2000 NFS-Benutzer

Ändern Sie auf dem NFS -Server die Gruppe der Gruppe /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) Verzeichnisse zu NFS-Benutzer folgendermaßen:

$ sudo chgrp -rfv nfs -users /pool11

Erlauben Sie der Gruppe, Berechtigungen für die zu lesen und zu schreiben /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) Verzeichnisse wie folgt:

$ sudo chmod -rfv 0775 /pool1

Die Gruppe der Gruppe /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) Verzeichnisse sollten auf geändert werden auf NFS-Benutzer und Gruppenlesen/Schreibberechtigungen sollten ebenfalls festgelegt werden.

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

Damit die Änderungen wirksam werden sollen, starten Sie den NFS -Server wie folgt neu:

$ sudo Neustart

Jetzt müssen Sie die erforderlichen Benutzerkonten auf Ihren NFS -Client -Computern erstellen, um auf die NFS -Aktien schreiben zu können.

Erstellen Sie einen neuen Benutzer Alex (sagen wir sagen) mit der UID 5001 (damit sie die Benutzer, die bereits auf dem NFS -Server bereits verfügbar sind NFS-Benutzer folgendermaßen:

$ sudo userAdd -m -s /bin /bash -u 5001 -g NFS -Benutzer Alex

Ein neuer Benutzer Alex mit der UID 5001 und Primärgruppe NFS-Benutzer (Gid 2000) sollte auf dem NFS -Client -Computer erstellt werden.

$ id Alex

Starten Sie nun den NFS -Client -Computer neu, damit die Änderungen wirksam werden können.

$ sudo Neustart

Sobald der NFS -Client -Computer Boots startet, teilt der NFS /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) sollte montiert werden.

$ df -h -t NFS4

Die NFS -Aktien /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) sollte auch die richtigen Verzeichnisberechtigungen haben.

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

Melden Sie sich nun als Benutzer an Alex Auf dem NFS -Client -Computer wie folgt:

$ sudo su - Alex

Der Benutzer Alex sollte in der Lage sein, Dateien auf der NFS -Freigabe zu erstellen /Pool1 (ZFS -Pool Pool1) und greifen Sie auf sie zu, wie Sie im Screenshot unten sehen können.

$ echo '[Pool1] Hallo Welt'>/Mnt/Pool1/Hallo.txt
$ ls -lh /mnt /pool1
$ cat/mnt/pool1/Hallo.txt

Der Benutzer Alex sollte auch in der Lage sein, Dateien auf der NFS -Freigabe zu erstellen /pool1/fs1 (ZFS -Dateisystem FS1) und greifen Sie auf sie zu, wie Sie im Screenshot unten sehen können.

$ echo '[fs1] Hallo Welt'>/mnt/fs1/Hallo.txt
$ ls -lh /mnt /fs1
$ cat/mnt/fs1/Hallo.txt

Auf dem NFS -Server die UID (Benutzer -ID) der Dateien, die der Benutzer Alex Das aus dem NFS -Client -Computer erstellte sollte sein 5001 und die Gruppe sollte sein NFS-Benutzer Wie Sie im Screenshot unten sehen können.

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

Wenn Sie die UIDs auf Benutzernamen auf Ihrem NFS -Server beheben möchten, müssen Sie denselben Benutzer mit demselben UID (wie Sie auf dem NFS -Client -Computer erstellt haben) auf dem NFS -Server erstellen.

Für eine kleine Anzahl von Benutzern können Sie dasselbe ausführen UserAdd Befehl sowohl auf dem NFS -Server als auch auf den Client -Computern, um dieses Problem zu lösen. Wenn Sie eine große Anzahl von Benutzern verwalten müssen, ist es viel Arbeit, dies manuell zu tun. Stattdessen sollten Sie NIS (Netzwerkinformationsserver) oder LDAP (Lightweight Directory Access Protocol) verwenden, um die Benutzer zwischen Ihrem NFS -Server und NFS -Clients automatisch zu synchronisieren.

Für die Unterstützung bei der Konfiguration von NIS auf Ihrem NFS -Server und Client -Computer finden Sie die folgenden Artikel:

  • Installieren von NIS Server auf Ubuntu 18 installieren.04 LTS
  • So installieren und konfigurieren Sie den NIS -Server auf Debian 10

Um Unterstützung bei der Konfiguration von LDAP auf Ihrem NFS -Server und Client -Computer zu konfigurieren, lesen Sie die folgenden Artikel:

  • So konfigurieren Sie den LDAP -Client in Debian 10

Unschärfe ZFS -Pools und Dateisysteme

Wenn Sie aufhören möchten, den ZFS -Pool zu teilen Pool1 Sie müssen die festlegen Shareenfs Eigenschaft des ZFS -Pools Pool1 Zu aus folgendermaßen:

$ sudo zfs set Shareenfs = Off Pool11

Die NFS -Freigabe sollte für den ZFS -Pool deaktiviert werden Pool1 Wie Sie im Screenshot unten sehen können.

$ sudo zfs bekommen Shareenfs Pool1

Auf die gleiche Weise können Sie einstellen, das ZFS -Dateisystem zu teilen FS1 Durch Einstellen der Shareenfs Eigenschaft des ZFS -Dateisystems FS1 Zu aus folgendermaßen:

$ sudo zfs set Shareenfs = Off Pool1/FS1

Die NFS -Freigabe sollte für das ZFS -Dateisystem deaktiviert werden FS1 Wie Sie im Screenshot unten sehen können.

$ sudo zfs bekommen Shareenfs Pool1/FS1

Abschluss

In diesem Artikel habe ich Ihnen gezeigt, wie Sie ZFS-Pools und -Dateisysteme freigeben und mithilfe des NFS-Datei-Sharing-Protokolls aus der Ferne auf sie zugreifen können. Ich habe Ihnen auch gezeigt. Ich habe Ihnen gezeigt, wie Sie Zugriffsberechtigungen für die NFS -Aktien verwalten und den Zugriff auf die NFS -Aktien auch von den NFS -Client -Computern ermöglichen.

Verweise

[1] Ubuntu Manpage: ZFS - Konfiguriert ZFS -Dateisysteme
[2] Teilen und Unschauern von ZFS -Dateisystemen - Oracle Solaris Administration: ZFS -Dateisysteme
[3] Synopsis - Mannseiten Abschnitt 1M: Systemverwaltungsbefehle
[4] NFSSEC Manpage Abschnitt 5 - Oracle Solaris -Dokumentation
[5] CentOS - NFS standardmäßig 777 - Serverfehler
[6] Kapitel 4. Exportieren von NFS teilt Red Hat Enterprise Linux 8 | Red Hat Customer Portal