NAS als Storage, Server mit Docker

Status
Für weitere Antworten geschlossen.

ThirtySomething

Benutzer
Mitglied seit
28. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich bin neu hier. Meine Suche im Forum hat keine befriedigende Antwort zutage gefördert. Vielleicht habe ich auch die falschen Keywords verwendet. Daher bitte ich um Nachsicht, falls das Thema bereits anderweitig behandelt wurde - und um den Hinweis, wo. Dann kann ich mich dort weiter auf die Suche machen oder vielleicht neue Hinweise finden.

Nun zu meinen Frage: Ich verwende eine Synology DS411Slim. Die ist mittlerweile Out-Of-Service, funktioniert aber noch tadellos. Die Hardware ist etwas in die Jahre gekommen (ARM V5, 256 MB RAM) - und käme an ihre Grenzen, wenn ich nun alles, was ich so machen möchte, direkt auf dem NAS laufen lassen würde. Da ich noch einen alten Mini-PC, eine ZBox ID41+ herumliegen habe, möchte ich diesen quasi als Server verwenden. Alpine Linux drauf, Docker drauf und die Nutzdaten der Docker Container nach Möglichkeit auf dem NAS. Die lokale Festplattenkapazität ist mit 60 GB zu klein; auf dem NAS stehen 4x2TB in Raid 6 zur Verfügung.

In der Praxis sieht es jedoch so aus, dass ich keinerlei Volume verwenden kann, das direkt auf dem NAS liegt. Früher oder später führt das immer zu Berechtigungsproblemen bei Containern wie MariaDB, SCM-Manager und ähnliches. Dabei ist es völlig egal, ob ich eine Freigabe des NAS (SMB bzw. CIFS, NFS4) auf der ZBox direkt mounte, oder ob ich von Docker beim Anlegen eines Volumes die Optionen driver local, opt type cifs bzw. nfs4 verwende. Lediglich mit iSCSI ist es mir gelungen, wobei das aus meiner Sicht mehrere Nachteile hat: Auf den NAS kann nicht sehen, was sich in dem iSCSI Container befindet, und die Größe ist statisch.

Einen Ansatz für NFS konnte ich mit Unterstützung herausfinden - in der Datei /etc/exports sind für den NFS Share möglicherweise Optionen angegeben, die für das gedachte Szenario kontraproduktiv sind. Allerdings konnte ich das nicht überprüfen, denn irgendwie werden diese Dateien mit Neustart des Systems (oder dem Dienst?) neu angelegt bzw. meine manuellen Änderungen überschrieben.

Auf meinem NAS läuft der DSM in Version 6.2.2-24922-4 vom 05.11.2019.

Bisher kommt mir das wie Raketentechnik vor. Als kleiner Softwareentwickler komme ich damit an meine Grenzen. Weiß da jemand Rat?

Vielen Dank und
Grüße

ThirtySomething

PS: Ich hoffe, alle sind gesund und Corona frei.
 

NormalZeit

Benutzer
Mitglied seit
15. Okt 2012
Beiträge
361
Punkte für Reaktionen
17
Punkte
24
Rüste doch Deine ZBox ID41 mit einer größeren M2 SSD aus. Dann hast Du Deine Nutzdaten lokal und im schnellen Zugriff.

Die DS411 würde ich dann bestenfalls noch als Backup-Ziel verwenden.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
In der Praxis sieht es jedoch so aus, dass ich keinerlei Volume verwenden kann, das direkt auf dem NAS liegt. Früher oder später führt das immer zu Berechtigungsproblemen bei Containern wie MariaDB, SCM-Manager und ähnliches. Dabei ist es völlig egal, ob ich eine Freigabe des NAS (SMB bzw. CIFS, NFS4) auf der ZBox direkt mounte, oder ob ich von Docker beim Anlegen eines Volumes die Optionen driver local, opt type cifs bzw. nfs4 verwende.

Es ist doch gar nich so schwer. Solange die auf NAS exportierte Verzeichnisse als Besitzer eine Benutzer ID/Gruppen ID haben, mit der die Prozesse im Container gestartet werden, sollte es gehen. Manche Container erlauben UserMapping, so dass man über Variablen die UID und GID an den Container übergeben kann. Andere Container erwarten eine festgelegte UID/GID, die aber zumindest über die Kommandozeile übersteuert werden kann. Dann gibt es noch die Container die immer als Root laufen, die sollten immer gehen.
 

ThirtySomething

Benutzer
Mitglied seit
28. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Rüste doch Deine ZBox ID41 mit einer größeren M2 SSD aus. Dann hast Du Deine Nutzdaten lokal und im schnellen Zugriff.

Die DS411 würde ich dann bestenfalls noch als Backup-Ziel verwenden.


Die Idee hatte ich auch schon. Aber ich kann in der ZBox nur eine SATA-SSD einsetzen, dann gehen mir die Vorteile von RAID 6 flöten. Zudem ist eine SSD mit einer Kapazität von 4TB nicht gerade günstig - ich glaube, für den Preis würde ich mir dann eher eine 918+ kaufen. Es geht mir jedoch darum, die alte Hardware, die ja noch korrekt funktioniert, am Leben zu erhalten. Nur, weil sie Out-Of-Service ist, heißt das ja nicht, dass ich den Haufen Elektroschrott damit vergrößern möchte.
 

ThirtySomething

Benutzer
Mitglied seit
28. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Es ist doch gar nich so schwer. Solange die auf NAS exportierte Verzeichnisse als Besitzer eine Benutzer ID/Gruppen ID haben, mit der die Prozesse im Container gestartet werden, sollte es gehen. Manche Container erlauben UserMapping, so dass man über Variablen die UID und GID an den Container übergeben kann. Andere Container erwarten eine festgelegte UID/GID, die aber zumindest über die Kommandozeile übersteuert werden kann. Dann gibt es noch die Container die immer als Root laufen, die sollten immer gehen.

Aha - also muss ich auf der ZBox einen User/Gruppe einrichten, die die gleichen UID bzw. GID haben, wie sie in der DS411Slim in /etc/exports angegeben sind?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Das habe ich nicht geschrieben und vorallem auch nicht so gemeint ;)

Ein Prozess im Container interessiert sich nicht für die Benutzer des Hosts - aber NFS intererssiert sich dafür, ob die UID/GID unter der ein Prozess läuft zur der UID/GID + Permissionmask der Freigabe passt. Entweder muss man dem Container beibringen die UID/GID des remote shares zu benutzen ODER muss die UID/GID des remote shares an die des Containers anpassen. In beiden Fällen sollte - bei einem guten Image - entsprechende Info der Beschreibung auf der Dockerhub-Seite entnommen werden können.
 

ThirtySomething

Benutzer
Mitglied seit
28. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Das scheint genau die Herausforderung bei NFS zu sein. Allerdings - brauche ich diese Einstellung, wenn auf dem NAS 'no root squash' eingestellt ist? Ich hatte das so verstanden, dass mit dem 'no root squash' genau das nicht mehr notwendig sei? ...grübel...
 
Zuletzt bearbeitet von einem Moderator:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Also ich hab bei meinen NFS-Shares "Squash: no mapping" stehen.
Man könnte natürlich schauen wie es sich mit "Map all users to admin" verhält; die Option verspricht eine Erleichterung der Berechtigungsvergabe...

Von einem "root squash" würde ich abraten, da es in Verbindung mit als root startenden Containern zu problemen kommen kann.
 

ThirtySomething

Benutzer
Mitglied seit
28. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ich habe lange gebraucht, um zu verstehen, was Synology an der Oberfläche anzeigt und was tatsächlich in der /etc/exports steht. An der Oberfläche steht, wie Du schon sagst, "Squash: no mapping" - in der /etc/exports entspricht das dann der Option "no_root_squash". Ich habe aber auch die anderen Einstellungen geprüft - die waren genausowenig erfolgreich. Es liegt eher an den anderen Parametern, die zusätzlich in der /etc/exports enthalten sind. Beim mir sieht das beispielsweise so aus:

/volume1/nfsexport 192.168.1.1/24(rw,async,no_wdelay,nohide,insecure,no_root_squash,sec=sys,anonuid=65534,anongid=65534)

Hier verstehe ich das ganze nicht - wenn also no_root_squash eingerichtet ist, wozu dann anonuid bzw. anongid? Das ist ja nur notwendig, wenn man root_squash verwendet. Zumindest habe ich das in der Wiki so gelesen bzw. verstanden.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Ehrlich gesagt habe ich mir /etc/exports nie auf der Syno vorher angesehen. Bei den beiden "anon?id" fragt man sich schon was Syno sich dabei gedacht hat - ich habe solche Einträge bisher noch nirgendwo anders gesehen. Allerdings ist mir das nicht wichtig genug, um dem nachzugehen...

Wie schon geschrieben: es funktioniert. Ich habe einen Swarm Cluster der auf etliche Daten über NFS-Shares zugreift. In einingen Fällen verwende ich aber auch CIFS-Shares, da wo bspw. umbennen Operationen im Container statfinden und die Anwendung die Rückmeldung der erfolgreichen Umbennenung braucht (bspw. Sonarr ist so ein Kandidat).
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat