So verschachteln und teilen Sie mehrere ZFS-Pools über Samba mit mehreren Benutzern

So verschachteln und teilen Sie mehrere ZFS-Pools über Samba mit mehreren Benutzern

Ich habe die folgende ZFS-Struktur:

% sudo zfs list                                                            16:03:46
NAME                          USED  AVAIL     REFER  MOUNTPOINT
zpool1                       1.18T  5.86T      544K  legacy
zpool1/home                  1.18T  5.86T       96K  legacy
zpool1/home/alice            12.6G  5.86T     12.6G  /zshare/zpool1/home/alice
zpool1/home/bob              1.17T  5.86T     1.02T  /zshare/zpool1/home/bob
zpool2                       2.22T  4.82T      188K  legacy
zpool2/media                 1.13T  4.82T     1.13T  /zshare/zpool1/home/media_root

Aus Leistungs- und Speichergründen zpool1dürfen zpool2keine Datenträger gemeinsam genutzt werden. Ich möchte, dass sowohl Bob als auch Alice darauf zugreifen können media_root. Bob und Alice dürfen jedoch nicht auf die Dateien des jeweils anderen zugreifen.

  1. Ich kann /zshare/zpool1/home nicht als Ordner freigeben, da er zur Stammpartition gehört, die klein ist, und wenn Alice oder Bob etwas, das größer als 60 GB ist, in ihren Ordner kopieren wollten, würde dies mit der Meldung „nicht genügend Speicherplatz“ fehlschlagen, obwohl ihr Home-Ordner genügend Speicherplatz hat (Windows berechnet den Speicherplatz vom Laufwerk, auf dem sich der freigegebene SMB-Ordner befindet).
  2. Ich kann zwei Ordner nicht für die Arbeitsstationen beider Benutzer freigeben, da Windows das Mounten mehrerer Netzwerklaufwerke von derselben IP-Adresse aus nicht zulässt ...
  3. Ich kann keinen symbolischen Link media_roothinein erstellen /alice, /bobweil es unter Windows dem symbolischen Link nicht folgt und ich es nicht schaffe, Hardlinks über Z-Dateisysteme hinweg zum Laufen zu bringen.

Ich möchte wirklich WIRKLICH nicht alle Dateien in media_rooteinem Unterordner für Alice und Bob duplizieren und ein rsync im Crontab-Stil verwenden, um sie beide untereinander und auf zpool2 auf dem neuesten Stand zu halten, aber welche anderen Optionen gibt es?

Ich bin sicher, dass es eine Möglichkeit gibt, dies mit ZFS unter Ubuntu 20.04 zu erreichen, aber WIE?

BEARBEITEN: Das betreffende Netzwerk hat KEIN DNS.

Antwort1

Ich kann zwei Ordner nicht für die Arbeitsstationen beider Benutzer freigeben, da Windows das Mounten mehrerer Netzwerklaufwerke von derselben IP-Adresse aus nicht zulässt ...

Das ist nicht wahr. Sie können beliebig viele Netzlaufwerke mounten (vonUndzur selben Maschine), wenn Sie freie Buchstaben haben. Sie können sogar einfache UNC-Pfade verwenden oder sogar tiefe Pfadnamen (wie net use t: \\server\share\bobs\eyes\only) mounten. Erstellen Sie einfach die Freigaben, die Sie benötigen, und verwenden Sie sie entsprechend.

Bob und Alice dürfen jedoch nicht auf die Dateien des jeweils anderen zugreifen.

Dies ist eine Frage der Datei-/Ordnerberechtigungen.

Antwort2

Ich denke, eine Möglichkeit hierfür wäre, eine Gruppe für die Benutzer einzurichten, die Zugriff auf den freigegebenen Ordner haben sollen, und dann die Berechtigungen für den freigegebenen Ordner so festzulegen, dass nur Mitglieder dieser Gruppe darauf zugreifen können.

Sie könnten beispielsweise eine Gruppe namens „media_access“ erstellen und sowohl Alice als auch Bob hinzufügen. Anschließend könnten Sie die Berechtigungen für den Ordner media_root so festlegen, dass nur Mitglieder der Gruppe media_access darauf zugreifen können. Führen Sie dazu den folgenden Befehl aus:

chgrp media_access /zshare/zpool1/home/media_root
chmod g+rwx /zshare/zpool1/home/media_root

Dadurch wird der Gruppenbesitz des Ordners „media_root“ in die Gruppe „media_access“ geändert und den Mitgliedern dieser Gruppe werden Lese-, Schreib- und Ausführungsberechtigungen für den Ordner erteilt.

Nachdem Sie die Berechtigungen festgelegt haben, sollten Sie von Alices und Bobs Arbeitsstationen aus auf den freigegebenen Ordner zugreifen können. Allerdings können sie nur auf Dateien zugreifen, die sich im freigegebenen Ordner befinden, und nicht auf die Dateien der anderen in ihren eigenen Home-Verzeichnissen.

Antwort3

Am Ende musste ich DNS für das Netzwerk aktivieren und hosten, damit es funktionierte.

Beispiel:
Zwei Netzlaufwerke unter Windows wie unten abgebildet zuordnen

\\192.168.11.1\share001
\\192.168.11.1\share002

schlägt jedoch fehl, wenn DNS verwendet wird

\\alice\share001
\\bob\share002

^ das oben funktioniert, auch wenn sowohl alice& bobzu aufgelöst wird 192.168.11.1.

verwandte Informationen