Jump to content

Docker Array probleme


Go to solution Solved by alturismo,

Recommended Posts

Hallo liebe Community,

ich bin schon länger im Besitz eines Unraid-Server. Anfangs war es noch ein HP Elitedesk 800 G4 Mini.
Da ich jetzt endlich auf mein neues Mainboard "Gigabyte C246M-WU4-1.0" umsatteln konnte, ist es mir nun möglich mehr HDDs zu nutzen.
Jedoch komme an grenzen zur Umsetzung bzgl. meiner Docker.

Damals vor der V6.12.6, gab es noch cache/array/mover, nun durch das große Update muss ich mich neu durchbeisen und selbst das Internet hilft hier nicht weiter. Da viele Beiträge an die alten Versionen geknüpft sind.

 

Zu meinem Vorhaben:
Ich habe mehrere Docker Container (zb. Home Assistant). Dieser Docker Container erstellt gerne logs und durch die aktuelle Einstellung werden die Daten direkt auf das Array bei mir (+Parity) abgelegt.

Wie sollte es in Zukunft bei Unraid aussehen? => Ich wünsche mir das die Docker auf dem Cache liegen. Falls diese Corrupt gehen sollten, sollen die sich vom Array bedienen.
Wenn die Arrays aus sind, alles gut. Sollten die Arrays angehen zwecks Datensicherung, sollten die Docker-Container im gleichen Atemzug sich auf dem Array ein "backup" ablegen. (Damals hieß es Prefered?).


Aktuelle Docker Einstellungen:

  • Enable Docker: yes
  • Enable container table readmore-js: yes
  • Docker Stop Timeout: 10 seconds
  • Docker version: 20.10.24
  • Docker directory: /mnt/user/system/docker/docker/
  • Default appdata storage location: /mnt/user/appdata/
  • Docker LOG rotation: Enabled
  • Docker custom network type: macvlan
  • Host access to custom networks: Disabled
  • Preserve user defined networks: No
  • IPv4 custom network on interface br0: Subnet: 192.168.10.0/24 Gateway: 192.168.10.1 DHCP pool: not set

 

Meine Disk sollten solange wie möglich ausgeschaltet bleiben.
Nur wenn zb. Jellyfin hier Videos braucht soll es angehen und die Daten in mein Cache laden.

Disk Settings grob:

  • Spin Down Delay: 15 min.
  • Enable Spinup Groups: No
  •  

 

So nun die Frage, wie komme an mein Ergebniss um die HDDs ruhen zu lassen. Aber im falle eines Falles das die Daten direkt vom Array sich bedienen? (HDD sollen auch zwecks Stromsparen und unnötiges laufen unterbunden werden).

PS: Aktuell wird nur direkt auf Array zugegriffen. Das Umstellen "hardcore" auf den Cache habe ich irgendwo gelesen das man dies nicht machen sollte? (zwecks Updates?)

Mein System im Überblick:

  • Gigabyte C246M-WU4-1.0
  • Parity - ST4000NM0165 (geeignet als Parity?)
    Data1 - ST2000NM0033
    Data2 - ST2000NM0033
    Data3 - ST2000DM001
    (bei Bedarf, sollen mehr folgen)
  • Pool Cache
    Cache1 - SAMSUNG_MZVKW512HMJP-000H1
    Cache2 - SAMSUNG_MZVKW512HMJP-000H1

 

Ich hoffe die Infos reichen vorerst.
Ich bin für Vorschläge und Tipps&Tricks offen.
Bei Bedarf kann ich auch gerne eine Log zusenden.

PS: Oder liegt hier der Schlüssel im Share Settings (Appdata settings), den Mover Action umzudrehen?

Beste Grüße,
Daniel.

shares.jpg

Edited by Daniel92
Link to comment
23 minutes ago, Daniel92 said:

Damals vor der V6.12.6, gab es noch cache/array/mover

 

Für bestehende Installationen hat sich dadurch nichts geändert. Hattest Du vorher einen Cache, dann gibt den immer noch. Wenn Daten vorher aufs Array geschrieben wurden, dann werden sie immer noch aufs Array geschrieben. Wenn die Platten vorher nicht in den Spin-Down gingen, dann gehen sie auch jetzt nicht in den Spin-Down.

 

23 minutes ago, Daniel92 said:

nun durch das große Update muss ich mich neu durchbeisen und selbst das Internet hilft hier nicht weiter. Da viele Beiträge an die alten Versionen geknüpft sind.

 

Ist natürlich absolut der falsche Weg. Dafür gibt es das offizielle Changelog von Unraid. Dort findest Du die wenigen notwendigen Anpassungen (Fritzbox User MACVLAN vs. IPVLAN) sowie die Erklärungen zum neuen Storage Modell - was im Grunde genommen überwiegend begriffliche Änderungen sind:

 

https://docs.unraid.net/category/release-notes/

 

Du merkst worauf ich hinaus will? Wenn jetzt etwas anders ist, dann hast Du etwas geändert. Unraid hält eigentlich, bis auf technische Notwendigkeiten, den Migrationspfad peinlich genau ein.

 

Poste von Nextcloud einen Screenshot der Container Einstellungen.

 

Edited by hawihoney
Link to comment

Vielen Dank für deine Mühe @hawihoney.

Das was du schreibst sehe ich auch ein. Nur habe ich seit Tagen versucht mich hier mit der Thematik ausseinander zu setzen.
Jedoch oft nicht ganz einfach für mich.
 

6 minutes ago, hawihoney said:

Docker Container liegen üblicherweise unterhalb von appdata. Dieser Ordner liegt bei Dir auf dem Cache und das ist gut so. Wenn Nextcloud trotzdem aufs Array schreibt, dann geschieht dies durch ein anderes Mapping (data?). Dazu würde man mal einen Screenshot von Deinen Nextcloud Container benötigen.

 

Das ist soweit korrekt. Die Container liegen unterhalb von Appdata.
Jedoch konnte ich durch das PlugIn "Open Files" einsehen, das hier direkt auf dem Array zugegriffen wird.

Ich merke das es viele Stellschrauben existieren und jedes einen Sinn hat.

Du hast mich aktuell gerade auf etwas Aufmerksam gemacht. In den ShareSettings bei Appdata sieht es aktuell bei mir so aus. (siehe Anhang)
Mit diesen Einstellungen gehe ich davon aus, das alle neuen Dateien/Ordner die angelegt werden im Cache landen.
Wenn der Mover aktiv wird, schreibt er vom Array in den Cache. => Was für mich jetzt aktuell kein Sinn ergibt und ich befürchte von damals von mir Umgestellt worden ist.
Diesen würde ich Umdrehen: Cache -> Array. Es soll ja schließlich die Daten die im Cache liegen auf das Array schreiben.

Fragt sich mir nur, was ist wenn Cache fehlerhaft ist. Hollt er sich hierbei die Daten vom Array, oder bringt er eine Fehlermeldung und wartet auf mich das ich hier Einschreite?

Besten Dank. Daniel

appdata.jpg

Link to comment

Hmm, appdata vs. Appdata. Ist das neu in Unraid? Ist mir bisher noch nicht aufgefallen. Kann das mal jemand checken. Bei mir heißt das überall appdata.

 

Wie auch immer. Für appdata drehst Du nix um. Das gehört auf den Cache.

 

 

Ansonsten hatte ich Dich gebeten von den betreffenden Container Einstellungen einen Screenshot zu machen. Ich hatte Nextcloud gelesen, jetzt steht da Homeassistant. Wie auch immer. Von dem der die Logs schreibt.

 

 

Link to comment

Also auf egal welche platte ich aktuell schaue, gibt es kein appdata im Array.
Das "liest" sich jetzt gut.


/mnt/user0/ - kein appdata
/mnt/user/appdata

PS: Habe zum testen alle Disk schlafen gelegt. Danach habe ich direkt über HomeAssistant ihn zum Neustarten gezwungen.
Nicht über Container, sondern innerhalb des Containers (Weboberfläche). Zack, springen die HDDs wieder an, wobei sie eigentlich über den Cache laufen sollten.

hmm... muss noch genauer in die Logs schauen.

Link to comment
41 minutes ago, Daniel92 said:

Danach habe ich direkt über HomeAssistant ihn zum Neustarten gezwungen.
Nicht über Container, sondern innerhalb des Containers (Weboberfläche). Zack, springen die HDDs wieder an

 

Darf nicht. Ist bei mir nicht. Dann hast Du noch etwas anderes mit HA verknüpft - vielleicht aus Homeassistant heraus.

 

Guck mal mit lsof was geöffnet ist oder wird.

 

Und zeig mal Deine Docker Einstellungen:

 

image.png.39e8576004255068153c3171ae29b35f.png

 

Edited by hawihoney
Link to comment

Hallo zusammen,

irgendwann sieht man den Wald vor lauter Bäumen nicht. Daher hatte ich mich hier mal rausgenommen.
So zurück mit neuer Kraft. :)

Docker Einstellungen sehen anders aus. Habe da damals nur von Image auf Directory geändert.
Laut Changelog habe ich auch gelesen das man ipvlan nutzen sollte, statt macvlan. Habe jedoch den Hinweis bekommen das man zwecks Portfreigabe und der Fritte auf mac stellen sollte.

Der Name Appdata steht aber auch nur auf der Shares-Seite. Sobald ich die Einstellungen von Appdata öffne steht "appdata" als Share Name (siehe oben im Screenshot).

lsof zeigt mir unheimlich viele Einträge. Selbst wenn ich es mit einem Filter namens Docker versehe, kommen viele Einträge...
Was magst du bei lsof genauer sehen?

Meine Docker Einstellungen:

docker.jpg

Edited by Daniel92
Link to comment
9 minutes ago, Daniel92 said:

lsof zeigt mir unheimlich viele Einträge. Selbst wenn ich es mit einem Filter namens Docker versehe, kommen viele Einträge...

schau mal ob Teile des Shares /system sich auf /mnt/user0 befinden (Array disks) ...

 

bei gaaaanz vielen Dateien tippe ich dass dies dein Fehler war ... /system gehört primary cache, secondary none ... 

 

zur Erläuterung, unter /appdata liegen die persistent Daten der Docker (Konfigurationen, usw usw ...) und /system/docker/... liegen die Betriebssysteme der Docker Container und vieles mehr ...

Link to comment

LXC habe ich mal angefangen. Ist aber komplett leer.
Das Plugin von ich777 ist auch installiert. Kam aber noch nicht dazu es weiter zu konfigurieren.

@alturismo: Sollte System hier Array auf Cache zeigen?
Jetzt wo du es sagst macht das schon Sinn. Darin ist an sich nur docker(container,...?) + libvirt drauf.

schau mal ob Teile des Shares /system sich auf /mnt/user0 befinden (Array disks) ...
Liegt auf dem Array -> Disk1
---------------------
lsof als Befehl alleine bringt zuviel. Wie meint ihr sollte ich es eingrenzen? :)
Grep mit den Namen docker dann zu filtern, hilft bei mir auch nicht sehr viel.

Edited by Daniel92
Link to comment
7 minutes ago, Daniel92 said:

@alturismo: Sollte System hier Array auf Cache zeigen?

meine Empfehlung sollte klar sein ;)

 

image.thumb.png.89ac0682c5ecc20559e5a489bc6cbd29.png

 

Backup Strategie vorausgesetzt ;)

 

8 minutes ago, Daniel92 said:

lsof als Befehl alleine bringt zuviel. Wie meint ihr sollte ich es eingrenzen? :)
Grep mit den Namen docker dann zu filtern, hilft bei mir auch nicht sehr viel.

brauchst du nicht, Fehler ist offensichtlich ...

 

entweder

 

LXC < läuft aktuell nicht, wenn ... dann laufen auch die disks

system < wenn Docker laufen laufen auch diese disks

appdata < wenn Docker laufen ...

domains < wenn VM's laufen ...

 

Link to comment

Ich habe meine Shares erneut umgestellt. Danke für deinen Hinweis.
Um ehrlich zu sein, musste ich diesen Post mehrmals lesen:

Mir fehlt hier eine wichtige Information. Früher konnte ich anhand der Einstellungen nachvollziehen, wohin die Daten verschoben wurden.
Wenn ich nun Array -> Cache mache, steht in den Einstellungen trotzdem Cache als PrimaryStorage.

Wann wandern die Daten vom Cache zum Array? Wenn doch Array zu Cache gemoved wird? 😵

Im zweiten Post wird es auch klar wie die damaligen Einstellungen zu heute sind:

Quote

If you have a pool named 'cache', then

 

cache:no = Primary:array, Secondary:none

cache:only = Primary:cache, Secondary:none

cache:yes = Primary:cache, Secondary:array, Mover action: cache->array

cache:prefer = Primary:cache, Secondary:array, Mover action: array->cache


Ich werde es mal prüfen ob es sich gebessert hat. Danke vorab! :)

Edited by Daniel92
Link to comment

Danke @hawihoney, ich hatte eigentlich das im ersten Post als Text auch hinterlegt.
Aber ihr kennt es ja selbst, wenn man zulange an einer Stelle sucht... dann geht irgendwie nichts mehr. :D

Bei mir ist der Mover am rödeln.

Hat jemand ein Link/Hilfe zu der genauen Beschreibung zwecks "moven". Weil in meinem Kopf macht das Array -> Cache immer noch kein Sinn.
Da ich doch am Ende die Daten im Array haben möchte.

Vielleicht ist es an der Zeit ein Pause zu machen und morgen mit klaren Gedanken nochmal dran zu gehen.
Bisher hin vielen Dank an alle Beteiligten!

Ich werde mich melden und bei Erfolg diesen Post dementsprechend markieren. 🎉

Edited by Daniel92
Link to comment
49 minutes ago, Daniel92 said:

Weil in meinem Kopf macht das Array -> Cache immer noch kein Sinn.
Da ich doch am Ende die Daten im Array haben möchte.

 

Pauschal und vereinfacht: system, domains und appdata auf den Cache (das ist ohnehin Standard). Userdaten, inkl. Userdaten der Docker Container, ins Array.

 

Mehr kann ich dazu nicht mehr sagen. Wir drehen uns im Kreis.

 

  • Upvote 1
Link to comment
9 hours ago, Daniel92 said:

Hat jemand ein Link/Hilfe zu der genauen Beschreibung zwecks "moven". Weil in meinem Kopf macht das Array -> Cache immer noch kein Sinn.
Da ich doch am Ende die Daten im Array haben möchte.

 

das ist das Gleiche wie früher cache preferred ... nur das du eine falsche Annahme hast / hattest ...

 

14 hours ago, Daniel92 said:

Wie sollte es in Zukunft bei Unraid aussehen? => Ich wünsche mir das die Docker auf dem Cache liegen. Falls diese Corrupt gehen sollten, sollen die sich vom Array bedienen.
Wenn die Arrays aus sind, alles gut. Sollten die Arrays angehen zwecks Datensicherung, sollten die Docker-Container im gleichen Atemzug sich auf dem Array ein "backup" ablegen. (Damals hieß es Prefered?).

preferred war auch vorher kein Backup ... die Daten des Shares liegen (und lagen) immer nur entweder / oder .... auf der cache disk oder auf einer array disk ...

 

wenn die doppelt liegen würden ... gäbe (oder gibt es) gerne Chaos ... oder man hat es einfach versaut ;)

 

prefer == bevorzugt ... nicht Backup, Kopie, ... und immer entweder / oder ... nicht hier und dort ...

 

Kurz, du hattest es vorher nicht richtig verstanden und hängst daher auch jetzt komplett ... mach Dich doch mit den Basics etwas vertrauter, dann wird es auch klar das sich nichts geändert hat außer den Bezeichnungen und das Layout ...

 

Eine effektive Änderung gab es, nennt sich exclusive Shares, hat aber nichts mit dem Thema hier am Hut und das wäre Level 2 ;)

Endgegner kommt noch ... ;)

 

Link to comment

Guten Morgen zusammen,

eine gute und schlechte Nachricht.
Die Gute: Wenn keine Aktivitäten beim Unraid sind, gehen die Platten aus. Juhu! :D

Die schlechte, sobald man HomeAssistant aufruft geht Disk1 wieder an.
Mir ist bei OpenFiles aufgefallen das hier der command von Linux "find" irgendwie stört. Ist meine Annahme korrekt?
Dieser greift direkt auf Disk1 zu... das würde bedeuten das hier irgendwas noch nicht ganz stimmt.

Vielen Dank schonmal für die Hilfe hier.
Sowas freut mich wenn man sich gegenseitig Unterstützt. :)

Edit: Ich habe gerade eben die Docker abgeschaltet. Nun springt der Mover an... ich glaube er moved restlichen Dateien?
Könnte das hier gewesen sein, das der Mover nicht alles verschoben hat?

open_files.jpg

Edited by Daniel92
Link to comment

Hallo zusammen,

heute morgen habe ich die Docker aus gemacht. Direkt danach war der Mover aktiv und habe Ihn seine Arbeit machen lassen.
Nun bin ich zurück nach Hause gekommen und die Docker eingeschaltet, in der Hoffnung, das der Mover die restlichen Daten richtig verschoben hat.
So das, sobald den Docker Einschalte, die Arrays still bleiben. - Leider nicht der Fall.

Wie auf dem Bild zu sehen, war kurzfristig auch Parity-Check aktiv.
Dies wurde pausiert... (warum? hmm 😵)

Ich halte euch Up2Date, sobald ich denn Fehler aufgespührt habe.
Könnte sein das es jemand anders auch die selben Probleme im System hat wie ich. :)

openfiles.jpg

Link to comment

Gerade ein komisches Phänomen entdeckt.
Während dem Parity-Check lief, wurde dieser Unterbrochen und danach startete der Mover.

Während der Mover lief, habe ich am Server den NTP-Server hinterlegt. Nach dem er die neue Zeit übernommen hat, stoppten alle Arrays.
Nun steht im Status, Parity-Check paused und Mover is running. Obwohl jede Platte sich nicht dreht.

Im Anhang habt ihr die Screenshots. Ist da etwas bekannt zwecks bug?
Denn wenn eine Action läuft (Mover, oder Parity), macht es doch Sinn das diese bis zum Ende weiter laufen sobald diese gestartet wurden?
Auch das Unterbrechen ist doch merkwürdig?

Edit: Habe für euch die Diagnose hochgeladen.

array_operation.jpg

array-devices.jpg

cube-diagnostics-20240119-1358.zip

Edited by Daniel92
Link to comment

Hast Du denn jetzt in den Einstellungen der Shares (appdata, system, domains) Primary Storage "cache" UND Secondary Storage auf "none" gestellt?

Wenn das erledigt ist, solltest Du noch den Docker Dienst und den VM Dienst in den Settings (Einstellungen) deaktivieren.

Docker: Settings > Docker > Enable Docker > auf "No" stellen

VM: Settings > VM Manager > Enable VMs > auf "No" stellen

 

Wenn auch das erledigt ist, kannst Du den Mover erneut laufen lassen.

Auf dem Main Tab auf "Move" klicken:

main.png.02fe841a7c6ea23eb8c79d5e7bec529

 

Wenn der Mover seine Arbeit erledigt hat (zu erkennen daran, das der Button wieder farblich ist), kannst Du die beiden Dienste wieder aktivieren.

Dann sollten die Disks im Array nicht mehr anlaufen, wenn Docker laufen.

Es sei denn, Du hast irgendwelche Container so konfiguriert, das sie eben auf Daten im Array zugreifen sollen.

Beispielsweise Plex oder Jellyfin auf Deine Mediathek...

Link to comment

Hallo saber1,

danke für die Infos. Die Steps bin ich nochmal durchgegangen und wollte manuell den Mover triggern.
Jedoch aktuell noch nicht möglich. Da dieser, warum auch immer, immer noch läuft.

Ich warte bis er fertig ist, stoße den Mover nochmals manuell an und am Ende stelle ich jedes wieder aktiv.

Zum letzten Punkt, Jellyfin. Das ist bei mir in der tat so Eingestellt, das hier direkt aus dem Array zugegriffen wird.
Jetzt kommt die Frage die mir noch keiner Beantworten konnte: Wenn Daten aus dem Array gelesen werden, werden diese doch bestimmt im Cache abgelegt?
Meine Gedanke war dabei noch, das diese solange im Cache verweilen. Bis diese Daten "zu alt" und vom Platz des Cache am Ende ist und diese dann raus gelöscht werden müssen. Damit wieder neue Daten im Cache landen können.

Oder ist das hier nicht möglich? :)

Danke vorab @saber1 für die Hilfe.

PS: Mover wurde farblich und habe diesen jetzt manuell angestoßen. Danach werde ich Docker und Co. wieder aktivieren.

Edited by Daniel92
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...