OpenZFS unterstützt NFS -Server Teil 1 - Erstellen eines Servers

OpenZFS unterstützt NFS -Server Teil 1 - Erstellen eines Servers
Wenn Sie mit OpenZFS vertraut sind, wissen Sie alles über die feature -Rich -Schnittstelle, flexible Architektur, zuverlässige Prüfsummen und Kuhmechanismen. Vielleicht möchten Sie es auch auf Ihrem Desktop, aber Sie möchten Ihre vorhandenen Festplatten und Partitionen nicht neu formatieren. Vielleicht verwenden Sie Windows 10, das OpenZFS nicht unterstützt. In diesem Blog -Beitrag werde ich diskutieren, wie Sie ein Netzwerkdateisystem oder NFS erstellen können, die auf einem separaten Server ausgeführt werden. Dieses NFS -Gerät kann dann auf Ihrer Desktop Workstation montiert werden. Auf diese Weise können Sie die Zuverlässigkeit und Robustheit von ZFs mit der Benutzerfreundlichkeit Ihres bevorzugten Desktop -Betriebssystems haben, da NFS auf allen Plattformen verfügbar ist.

Ich werde die Erstellung des NFS -Mountspunkts auf einem Windows 10 -Client in Teil 2 dieser Serie beschreiben. Konzentrieren wir uns vorerst auf einen Ubuntu -Server, der NFS -Speicher anbietet, und einen Ubuntu -Client, der versucht, eine Verbindung dazu herzustellen.

Die Einrichtung

Mein NFS -Server wird auf Ubuntu 18 basieren.04 LTS. Sie können Ihre bevorzugte Linux -Distribution oder FreeBSD oder jedes andere Betriebssystem verwenden, das OpenZFs unterstützt. Mein Grund für die Verwendung von Ubuntu 18.04 ist, dass es sehr beliebt ist und die Eintrittsbarriere erheblich verringern würde.

Das NFS soll nur auf meinem LAN verfügbar sein, der die Subnetzmaske von 255 hat.255.255.0 und 192.168.0.1 als Standard -Gateway. In einfachem Englisch bedeutet dies, dass alle Geräte, die mit meinem Heimnetzwerk verbunden sind (WiFi und Ethernet, et al.), IP -Adressen von 192 haben werden.168.0.2 bis 192.168.0.254.

Der NFS -Server wird so konfiguriert, dass nur Geräte nur mit der oben genannten IP -Adresse Zugriff auf den NFS -Server haben können. Dies würde sicherstellen, dass nur Geräte, die mit meinem LAN verbunden sind. Wenn Sie ein "Open WiFi" -Setup haben oder wenn die Sicherheit auf dem Endpunkt Ihres Routers zweifelhaft ist, würde dies keine Sicherheit garantieren.

Ich würde nicht empfehlen, NFS über das öffentliche Internet ohne zusätzliche Sicherheitsmaßnahme auszurichten.

Zuletzt haben die auf dem NFS -Server ausgeführten Befehle die Eingabeaufforderung, Server $ und die Befehle, die auf der Client -Seite ausgeführt werden sollen

Erstellen von OpenZFS -Pool und Datensatz

1. Zpool erstellen

Wenn Sie bereits einen Zpool -in -Betrieb haben, überspringen Sie diesen Schritt. Auf meinem NFS -Server, auf dem Ubuntu 18 ausgeführt wird.04 LTS Server, ich installiere zuerst OpenZFS.

Server $ sudo APT Installieren Sie ZFSutils-Linux

Als nächstes werden wir alle verfügbaren Blockgeräte auflisten, um die neuen Festplatten (und Partitionen) zu sehen, die darauf warten, mit ZFS formatiert zu werden.

$ lsblk
Nennen Sie Maj: min RM -Größe RO -Typ Mountpoint
Loop0 7: 0 0 89.5m 1 Schleife/Snap/Core/6130
Loop1 7: 1 0 86.9m 1 Schleife/Snap/Core/4917
Loop2 7: 2 0 91.1m 1 Schleife/Snap/Core/6259
SDA 8: 0 0 50g 0 Festplatte
├─sda1 8: 1 0 1m 0 Teil
└─sda2 8: 2 0 50g 0 Teil /
SDB 8:16 0 931g 0 Festplatte
SDC 8:32 0 931g 0 Festplatte
SR0 11: 0 1 1024m 0 ROM

Ein typisches Beispiel ist oben gezeigt, aber Ihre Namenskonvention kann wesentlich unterschiedlich sein. Sie müssen Ihr eigenes Urteilsvermögen verwenden und sehr vorsichtig sein. Sie möchten Ihre Betriebssystemscheibe nicht versehentlich formatieren. Zum Beispiel hat die SDA1 -Partition eindeutig das Root -Dateisystem als Mountspunkt, sodass es nicht ratsam ist, ihn zu berühren. Wenn Sie neue Festplatten verwenden, haben sie wahrscheinlich keinen Mountspunkt oder irgendeine Art von Partitionierung.

Sobald Sie den Namen Ihrer Geräte kennen, verwenden wir den Befehl zpool create, um einige dieser Blockgeräte (genannt SDB und SDC) in einen Zpool mit einem einzelnen VDEV zu formatieren, der aus zwei gespiegelten Scheiben besteht.

Server $ sudo zpool erstellen Tank Mirror SDB SDC
Server $ sudo Zpool Status Tank
Zpool Statentank
Pool: Panzer
Zustand: online
Scan: Keine angefordert
Konfiguration:
Name Status Read Write cksumum
Tank online 0 0 0
Mirror-0 online 0 0 0
SDB online 0 0 0
SDC Online 0 0 0
Fehler: Keine bekannten Datenfehler

In Zukunft können Sie Festplatten in zwei (genannten VDEV) hinzufügen, um die Größe dieses Zpools zu erweitern. Die neuen Scheiben werden als Mirror-1, Mirror-2 usw. angezeigt. Sie müssen Ihr Zpool nicht so erstellen, wie ich es getan habe. Sie können Spiegelung mit mehr Festplatten verwenden, Sie können Striping ohne Redundanz, aber eine bessere Leistung verwenden, oder Sie können Raidz verwenden. Am Ende des Tages ist es wichtig, dass wir einen Zpool namens Tank geschaffen haben. Auf dem die gemeinsamen NFs leben werden. Lassen Sie uns einen Datensatz erstellen, der gemeinsam genutzt wird. Stellen Sie zunächst sicher, dass der Pool mit dem Namen "Tank" montiert ist. Standard -Mountspunkt ist '/Tank' .

Server $ sudo ZFS Mount Tank
Server $ sudo ZFS erstellen Tank/NFSShare #create einen neuen Datensatz oben im Pool

Berechtigungen festlegen

Bei der Freigabe eines NFS -Verzeichnisses hat der Superuser im Client -System keinen Zugriff auf etwas auf der Aktie. Während der clientseitige Superuser in der Lage ist, etwas auf der Client-Maschine zu tun, ist die NFS-Halterung technisch gesehen nicht Teil des Client-Geräts. Daher kann das Erlauben von Vorgängen im Namen des Client-Side-Superusers als serverseitiger Superuser zu Sicherheitsproblemen führen. Standardmäßig ordnet NFS die clientseitigen Superuser-Aktionen niemandem: NoGroup-Benutzer- und Benutzergruppe ab. Wenn Sie beabsichtigen, auf die montierten Dateien als Root zugreifen zu können, sollte der Datensatz auf unserem NFS -Server auch die gleichen Berechtigungen haben,

Server $ sudo chown Niemand: Nogroup /Tank /NFSSHare

Auf dem NFS-Server wird eine Aktion durch den clientseitigen Stammer als Benutzer Niemand ausgeführt.

Wenn Sie einen anderen (regulären) Benutzernamen verwenden, ist es oft zweckmäßig, einen Benutzer mit dem gleichen genauen Benutzernamen auf beiden Seiten zu haben.

Erstellen von NFS -Aktien

Sobald Sie Zpool erstellt haben, sollten Sie das NFS -Serverpaket in Ihrem Paketmanager installieren:

Server $ sudo APT Installieren Sie NFS-Kernel-Server

Traditionell verwendet der NFS -Server die Datei /etc /Exportdatei, um als Liste der zugelassenen Clients und der Dateien zu erhalten, auf die sie zugreifen können. Wir werden jedoch ZFS 'eingebaute Funktion verwenden, um dasselbe zu erreichen.

Verwenden Sie einfach den Befehl:

Server $ sudo zfs set Shareenfs = ”on” /Tank /nFSShare

Früher habe ich darauf hingewiesen, nur bestimmte IPs den Zugang zu geben. Sie können dies als Folgungen tun:

Server $ sudo zfs set Shareenfs = "rw [email protected]/24 "Tank/NFSSHare

Das 'RW' steht für Read-Write-Berechtigungen, und es folgt der Bereich der IPs. Stellen Sie sicher, dass die Portnummer 111 und 2049 auf Ihrer Firewall geöffnet sind. Wenn Sie UFW verwenden, können Sie dies durch Ausführen überprüfen:

Server $ UFW Status

Machen Sie sich die IP Ihres Servers auf dem LAN mit iFConfig- oder IP -Addr -Befehl an. Nennen wir es Server.IP

Kundenseite Montage

Sobald die Freigabe erstellt wurde, können Sie sie auf Ihrem Client -Computer montieren, indem Sie den Befehl ausführen:

Client $ Mount -t -NFS -Server.IP:/Tank/NFSSHARE/MNT

Dadurch wird der NFS -Teilen im Ordner /mnt -Ordner montiert, aber Sie hätten genauso leicht jeden anderen Mountspunkt Ihrer Wahl ausgewählt können.

Abschluss

Die Dateifreigabe ist wahrscheinlich der wichtigste Aspekt der Systemverwaltung. Es verbessert Ihr Verständnis des Speicherstapels, der Netzwerk, der Benutzerberechtigungen und der Berechtigung. Sie werden schnell erkennen, wie wichtig das Prinzip des geringsten Privilegien ist - das heißt, nur einem Benutzer den geringsten Zugang zu geben, den er für seinen Job benötigt.

Sie erfahren auch die Interoperabilität zwischen verschiedenen Betriebssystemen. Windows -Benutzer können auf NFS -Dateien zugreifen. So können die Mac- und BSD -Benutzer auch. Sie können sich nicht auf ein Betriebssystem beschränken, wenn Sie mit einem Netzwerk von Maschinen zu tun haben. Also mach weiter und experimentiere mit deinem NFS -Teilen. Ich hoffe du hast etwas gelernt.