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
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 -ySobald das NFS -Serverpaket installiert ist, ist das NFS-Server Systemd Service sollte sein aktiv.
$ sudo systemctl Status NFS-Server.ServiceWenn 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 -yErstellen 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 -dSo 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 VDCEin neuer ZFS -Pool Pool1 sollte erstellt werden und der ZFS -Pool Pool1 sollte automatisch in der montiert werden /Pool1 Verzeichnis.
$ sudo ZFS -ListeErstellen Sie ein ZFS -Dateisystem FS1 im ZFS -Pool Pool1 folgendermaßen:
$ sudo ZFS erstellen Pool1/FS1Ein neues ZFS -Dateisystem FS1 sollte erstellt und automatisch in der montiert werden /pool1/fs1 Verzeichnis.
$ sudo ZFS -ListeTeilen 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" Pool1Oder,
$ sudo zfs set Shareenfs = "rw =*" Pool1Damit 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 "Pool1Damit 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 "Pool1Sie 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 "Pool1Auf 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 "Pool1Sie können überprüfen, ob die Shareenfs Die Eigenschaft ist korrekt auf dem ZFS -Pool eingestellt Pool1 folgendermaßen:
$ sudo zfs bekommen Shareenfs Pool1Teilen 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/FS1Oder,
$ sudo zfs set Shareenfs = "rw =*" Pool1/fs1Damit 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/FS1Damit 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/FS1Sie 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/FS1Auf 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/FS1Sie können überprüfen, ob die Shareenfs Eigenschaft ist korrekt im ZFS -Dateisystem eingestellt Pool1/FS1 folgendermaßen:
$ sudo zfs bekommen Shareenfs Pool1/FS1Montage 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 -iSobald 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.98Wie 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 /pool1Sie 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/pool1Der NFS -Anteil /Pool1 sollte auf der montiert werden /mnt/pool1 Verzeichnis Ihres Computers (NFS -Client).
$ df -h /mnt /pool1Erstellen 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 /fs1Montieren 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/fs1Der NFS -Anteil /pool1/fs1 (ZFS -Dateisystem FS1) sollte auf der montiert werden /mnt/fs1 Verzeichnis Ihres Computers (NFS -Client).
$ df -h /mnt /fs1Automatisch 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 /fstabFügen Sie die folgenden Zeilen am Ende des /etc/fstab Datei.
# Mount NFS -AktienSobald 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 NeustartWenn 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 NFS4Ermö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:
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-BenutzerErstellen 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 /pool11Erlauben 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 /pool1Die 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 /pool1Damit die Änderungen wirksam werden sollen, starten Sie den NFS -Server wie folgt neu:
$ sudo NeustartJetzt 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 AlexEin neuer Benutzer Alex mit der UID 5001 und Primärgruppe NFS-Benutzer (Gid 2000) sollte auf dem NFS -Client -Computer erstellt werden.
$ id AlexStarten Sie nun den NFS -Client -Computer neu, damit die Änderungen wirksam werden können.
$ sudo NeustartSobald 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 NFS4Die NFS -Aktien /Pool1 (ZFS -Pool Pool1) Und /pool1/fs1 (ZFS -Dateisystem FS1) sollte auch die richtigen Verzeichnisberechtigungen haben.
$ ls -lhd /mnt /pool1Melden Sie sich nun als Benutzer an Alex Auf dem NFS -Client -Computer wie folgt:
$ sudo su - AlexDer 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.txtDer 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.txtAuf 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 /pool1Wenn 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:
Um Unterstützung bei der Konfiguration von LDAP auf Ihrem NFS -Server und Client -Computer zu konfigurieren, lesen Sie die folgenden Artikel:
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 Pool11Die NFS -Freigabe sollte für den ZFS -Pool deaktiviert werden Pool1 Wie Sie im Screenshot unten sehen können.
$ sudo zfs bekommen Shareenfs Pool1Auf 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/FS1Die NFS -Freigabe sollte für das ZFS -Dateisystem deaktiviert werden FS1 Wie Sie im Screenshot unten sehen können.
$ sudo zfs bekommen Shareenfs Pool1/FS1Abschluss
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