ullibelgie Posted February 11, 2022 Share Posted February 11, 2022 Ich habe eine Frage, wo ich im Forum keine richtige Antwort drauf gefunden habe: Mein Server hat 4 HDDs Slots - diese sind aktuell bereits voll. Die Belegung sieht so aus: Jetzt habe ich mir überlegt, daß ich ja von der Data-Disk3 die dort befindlichen 280GB auf die Disk1 verschieben könnte und die Disk3 komplett löschen und aus dem Array entfernen. Damit hätte ich wieder einen freien (mechanischen) Platz im Gehäuse, wo ich stattdessen eine noch unbenutzte SSD (Samsung Evo 850) reinstecken könnte, om diese als Cache zu gebrauchen. Diese SSD habe ich hier noch aus altem Fundus... Mir stellt sich zwar die Frage, ob das bei meinem uralt PC Sinn macht (nur Sata2) aber probieren könnte ich es mal Jetzt meine Frage: Wie müsste ich mit den Mitteln die Unraid mir bietet genau vorgehen, um diesen Wechsel im Array zu vollziehen. (Moven der Daten, Andern des Arrays von 3disks auf 2Disks) Gibt es eine Möglichkeit die Parity durchgehend zu erhalten ? Also ohne diese neu zu erstellen ? Ich würde gerne eher Bordmittel von Unraid benutzen, als im Terminal irgendwelche Befehle einzugeben, die ich dann doch nicht verstehe...;-( Was ist der schnellste und sicherste Weg für diese gewünschte Serververänderung? Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 Die Zielplatte würde ich per preclear Plugin nullen lassen. Daten verschieben. Damit müsste auch die Parity so geschrieben werden daß die zu ersetzenden Festplatte genullt ist. Array stop Screenshot Runterfahren, neue platte rein und wieder hochfahren. Settings/new Config. Einstellen daß Cache und Parity preserved sind. (Parity valid) Die neue Platte an derselben Stelle im Array wie die alte einbinden. Fertig. Die Parity sollte valid sein. Quote Link to comment
saber1 Posted February 11, 2022 Share Posted February 11, 2022 11 minutes ago, MartinG said: Die Zielplatte würde ich per preclear Plugin nullen lassen. Ich habe es so verstanden, das die Daten, die sich aktuell auf der Disk1 befinden, erhalten bleiben sollen. Und "nur" die Daten der Disk3 hinzukommen sollen. Dazu mal bitte das Plugin unBalance anschauen. Das verschiebt Daten von Disk zu Disk. Wenn die Disk3 leer ist, kannst Du sie entfernen und die SSD als Cache einbinden. Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Aha - habe ich mir gerade angesehen - in der Tat, will ich die Daten des Arrays in Ihrer Gesamtheit erhalten und einfach die 280GB von disk3 verteilen auf disk1 und/oder disk2... denn ich will ja nur Disk3 durch die SSD Cache disk ersetzen. Das Unassigned Plug in scheint genau zu machen, was ich zunächst benötige (Moven der Data)... Quote Link to comment
saber1 Posted February 11, 2022 Share Posted February 11, 2022 3 minutes ago, ullibelgie said: Das Unassigned Plug in scheint genau zu machen, was ich zunächst benötige (Moven der Data)... Nicht Unassigned > UnBalance. 😉 Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 Tut mir leid. Das habe ich falsch gelesen / verstanden. Klaro, mit unBalance die Daten verschieben lassen. Und dann mit new Config unter Erhaltung der Parity die neue Konfiguration einrichten. Danach am besten gleich die wichtigen unraid Verzeichnisse auf Cache:prefer umstellen. Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Jawoll - habe das Unbalance Plug in schon installiert... Auf dem alten Server dauert das nur immer extrem lange - alter Opa ist kein D-zug...;-) Quote Link to comment
hawihoney Posted February 11, 2022 Share Posted February 11, 2022 (edited) 1 hour ago, MartinG said: Und dann mit new Config unter Erhaltung der Parity die neue Konfiguration einrichten. Wenn Du unter "Erhaltung" --> "Parity muss neu aufgebaut werden" verstehst, dann stimmt das. Das ist wiederum aber nicht vom OT gewünscht. Er möchte zu jedem Zeitpunkt die Parity aktualisiert halten. Wenn Du unter "Erhaltung" --> "Parity ist aktuell" verstehst, dann ist das falsch. Zur Erläuterung: Eine durch Unbalance geleerte Festplatte ist im Sinne der Parity-Kalkulation nicht leer. Nur eine komplett mit 0 gefüllte Festplatte wirkt auf die Parity-Kalkulation neutral und kann entfernt werden. Also erst Daten z.B. via Unbalance/Midnight Commander/rsync verschieben, dann Platte komplett löschen. Hierzu gibt es eine in-offizielle Vorgehensweise im Unraid Wiki (Alternative Method): https://wiki.unraid.net/Manual/Storage_Management#Removing_data_disk.28s.29 Edited February 11, 2022 by hawihoney Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Ich verschiebe nun seit gut 30min die Daten von Disk3 nach (ausschiesslich) Disk1 - mehr Speed ist mit Sata2 und 14Jahre altem Server nicht drin: Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 19 minutes ago, hawihoney said: Zur Erläuterung: Eine durch Unbalance geleerte Festplatte ist im Sinne der Parity-Kalkulation nicht leer. Nur eine komplett mit 0 gefüllte Festplatte wirkt auf die Parity-Kalkulation neutral und kann entfernt werden. Also erst Daten z.B. via Unbalance/Midnight Commander/rsync verschieben, dann Platte komplett löschen. Hierzu gibt es eine in-offizielle Vorgehensweise im Unraid Wiki (Alternative Method): https://wiki.unraid.net/Manual/Storage_Management#Removing_data_disk.28s.29 Ja, mir ist klar, daß ich nach dem Move der Daten, die (vermeintlich) leere Disk3 nicht einfach rausziehen darf, wenn ich die Parity nicht verlieren will. Ich hatte gerade auch im wiki das gefunden: https://wiki.unraid.net/Shrink_array#Procedure_2 Das scheint mir dasgleiche zu sein, wenn es um clearing der 'leeren' Disk3 geht... aber ich lese mir beide Anleitungen nochmal durch... das Verschieben der Daten wird ja sowieso noch eine weitere Stunde dauern. Danke für den wichtigen Hinweis! Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 21 minutes ago, hawihoney said: Wenn Du unter "Erhaltung" --> "Parity ist aktuell" verstehst, dann ist das falsch. Zur Erläuterung: Eine durch Unbalance geleerte Festplatte ist im Sinne der Parity-Kalkulation nicht leer. Nur eine komplett mit 0 gefüllte Festplatte wirkt auf die Parity-Kalkulation neutral und kann entfernt werden. Also erst Daten z.B. via Unbalance/Midnight Commander/rsync verschieben, dann Platte komplett löschen. Hierzu gibt es eine in-offizielle Vorgehensweise im Unraid Wiki (Alternative Method): Das verstehe ich nicht. Wenn ich doch die Festplatte leerschreibe dann schreibt unraid die parity doch mit und an der Stelle der alten geleerten Platte stehen lauter nullen. Die haben also keinen Einfluss mehr auf die equal parity von unraid. Oder ist das Problem daß eine Festplatte fehlt? Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Entweder man baut die Parity neu (und hat währenddessen keine Redundanz) oder man schreibt durchgehend nullen auf die leere Datandisk bevor man diese dem Array entnimmt. So wie ich es verstehe behält man im letzteren Fall die Parity-Integrität und muss diese nicht neu erstellen. Meine Uberlegung war auch, daß Nullen schreiben auf 1TB disk hoffentlich doch etwas schneller geht als Parity bauen auf 12TB (gut 19Stunden auf meiner 'Mühle') Ausserdem bleibt die Parity dann eben durchgehend erhalten während des ganzen Prozesses... Quote Link to comment
hawihoney Posted February 11, 2022 Share Posted February 11, 2022 (edited) 38 minutes ago, MartinG said: Das verstehe ich nicht. Wenn ich doch die Festplatte leerschreibe dann schreibt unraid die parity doch mit und an der Stelle der alten geleerten Platte stehen lauter nullen. Nein, das ist völlig falsch. So funktionieren Dateisysteme nicht. Durch das Verschieben bzw. Löschen einer Datei wird die Quelle im Dateisystem nur als gelöscht markiert. Da wird nichts "richtig" gelöscht. Das würde einfach viel zu lange dauern. Das bedeutet, dass die gesamten Bits und Bytes der gelöschten Datei noch auf dem Datenträger liegen und nur in dessen Dateisystem die Lösch-Markierung aktualisiert wurde. Für die Parity bedeutet das dann ebenfalls, dass nur die paar Bytes der Lösch-Markierung aktualisiert wurden und nicht der komplette Inhalt der gelöschten Datei. Das ist übrigens auch der Grund warum es Tools wie Undelete überhaupt geben kann. Würde beim Löschen einer Datei tatsächlich alles auf 0 gesetzt, dann gäbe es den Markt der Wiederherstellungs-Werkzeuge überhaupt nicht. Und jetzt kommt das Problem. In der Parity liegen noch die Ergebnisse der Parity-Kalkulation für den gesamten Inhalt der gelöschten Dateien inkl. Dateisystem der entfernten Platte. Würdest Du nun den Datenträger entfernen dann ist die Parity sofort ungültig und das Array gefährdet. Der Grund ist, dass bei einem Ausfall einer der verbliebenen Platten, aus der Parity und den anderen Disks der Inhalt der defekten Platte berechnet wird. Und dort ist noch der Müll der entfernten Datenplatte einberechnet. Dadurch wird die Austausch-Platte mit Schrott gefüllt. Nachtrag: Nehmen wir exemplarisch und der Einfachheit halber ein einzelnes Byte auf vier Platten plus Parity und nehmen das Dezimalsystem (und Addieren) statt die bei Unraid/RAID4 verwendete bitweise XOR Kalkulation: 1. Auf vier Platten liegen 1+2+3+4. Das ergibt auf der Parity 10 2. Nun füllen wir die zu entfernende vierte Platte nicht komplett mit 0 sondern entfernen sie. New Config wird ausgeführt mit Parity ist gültig. 3. In der Parity liegt nach wie vor 10. Es gibt aber nur noch 1+2+3 4. Jetzt fällt die zweite Platte aus und der Inhalt muss rekonstruiert werden. 5. Platte 1+3 ergeben 4, in der Parity liegt nach wie vor 10, also muss die zweite Platte eine 6 enthalten haben. In Wahrheit hatte sie aber eine 2 an der Stelle = BUMM Das bewirkt der Unterschied zwischen Delete und Clear. Edited February 11, 2022 by hawihoney Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 45 minutes ago, hawihoney said: Nein, das ist völlig falsch. So funktionieren Dateisysteme nicht. Darum gings doch nicht. Wenn Dateien von einem Datenträger weg verschoben werden dann passt unraid die parity an. Soweit ich weiß arbeitet unraid mit einer "equal parity" Alt: Parity HDD1 HDD2 HDD3 0 1 1 0 1 1 0 0 1 1 1 1 Daten verschieben weg von HDD2 1 1 0 0 1 1 0 0 0 1 0 1 Nach entfernen der HDD2 und einer neuen Config mit nur zwei Daten platten und einer parity: 1 1 0 1 1 0 0 1 1 Dann stimmt die Parity doch wieder? Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Was zu erwarten war: Plug-in "Unbalance" hat hier wohl nicht so funktioniert wie es soll 🤪 Ich bin ganz genau so verfahren wie in dem Video von Spaceinvader - was kann man da falsch machen ?!? Aber Resultat ziemlich dramatisch: - Anstatt alles zu Moven wie vorgesehen von Disk3 nach Disk1, bleiben alle Folder auf Disk3 erhalten, sind aber leer ! Rest scheint aber wohl auf Disk 1 zu sein... - Alle Docker weg ! Ich hatte diese vor dem Moven alle beendet - Spaceinvader erklärt das ja auch. Mover habe ich ja gar keinen, weil keine Cache disk. Es war garantiert kein Zugriff von irgendwo her auf irgendwelche Dateien während des Moves... Und jetzt? wie kriege ich meine Docker wieder zurück ? Wo sind die geblieben und warum all die leeren Folder auf der Disk3 übrig geblieben ?? Ich begreife das nicht !!! Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 Zu wenig Info. Lagen appdata etc. auf der Platte von der verschoben wurde? Deine Docker kannst Du einfach wieder installieren: Unter Docker klicke auf Add Container Dann kannst Du unter Select a template unten Deine alten Docker wieder installieren. die Einstellungen sollten noch da sein. Wenn Deine Pfade auf usershares und nicht auf disks weisen sollte es auch keine Probleme geben. Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Wenn ich einfach das Plug-in "Unbalance" noch einmal ausführen wollte (also um die restlichen leeren Folder auch von Disk3 nach Disk1 zu bringen) kriege ich das: The following items will not be transferred.... auf der 4TB Platte soll kein platz sein Da ist noch 3TB frei !!! Also irgendwas ist hier fundamental verkehrt !! Das Plug in 'fix common problems' sagt Alles ok Da ich das Plug-in die ganze Zeit bereits installiert hatte, bekam ich wohl auch nicht den Hinweis, (wie im Spaceinvader Video), das mit den Rechten irgendwas nicht stimmt... Was tun ?! Was tun ?! Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 (edited) Bevor Du Deine Docker wieder installierst könntest Du natürlich auch erst eine Cache Platte ins System hängen, irgendwie, und die Systemdaten auf den Cache präferieren. edit: okay, vergiss das erstmal /edit Edited February 11, 2022 by MartinG Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 "... Zu wenig Info. Lagen appdata etc. auf der Platte von der verschoben wurde?" Ja - siehe oben im Bild - das sind alle Ordner, die ich verschieben wollte - alle Ordner sind noch da, aber leer. Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 "Bevor Du Deine Docker wieder installierst könntest Du natürlich auch erst eine Cache Platte ins System hängen, irgendwie, und die Systemdaten auf den Cache präferieren." Geht nicht - keine freien Anschlüsse für weitere HDDs Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 " Deine Docker kannst Du einfach wieder installieren: Unter Docker klicke auf Add Container" Und was macht das mit den 'halb verschobenen' Shares ?! Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 Also mir ist das vorerst auch ein Rätsel. Nächstes Mal mach erst den Haken bei "Dry Run" rein. Damit der erstmal probiert. 26 minutes ago, ullibelgie said: Ich hatte diese vor dem Moven alle beendet Ich verstehe das grade auch nicht. Leider bin ich aktuell zeitlich auch ein wenig unter Druck... Quote Link to comment
ullibelgie Posted February 11, 2022 Author Share Posted February 11, 2022 Danke für die Tipps erstmal... Werde mal warten, ob noch jemand Tips geben kann... Seltsam, daß ein offenbar so vielgebrauchtes Plug-in derartige Probleme bereitet nach all den Jahren, wo es bereits existiert... Man muss schon sehr vorsichtig sein, was man macht... Ich weiss ehrlich gesagt nicht, ob ich die Docker einfach wieder installieren soll... vor dem Hintergrund, daß aus meiner Sicht die Datenfiles ziemlich undefinierbar verschoben sind... Ich hatte die Logs noch durchgesehen von dem Plug-in -- kann mich nur daran erinnern, das da stand finished succesfully Leider kam ich auf die glorreiche Idee, den Server zu rebooten, da ich dachte, dass die übriggebliebenen leeren Folder auf der Disk3 einfach nur ein "Anzeigefehler" sein könnten... Damit sind aber jetzt alle Logs weg... so ein Mist! Quote Link to comment
MartinG Posted February 11, 2022 Share Posted February 11, 2022 (edited) Bevor Du die Docker neu installierst. Die sollen ja dann sowieso auf der SSD laufen... Die Ordner + Inhalt sind auf der Zielplatte vorhanden? Ich würde zuallererst die betroffenen Shares so einstellen daß sie nicht mehr auf disk 3 schreiben können. Dann würde ich die Ordner auf der platte 3 prüfen, händisch, ob da noch etwas drin ist und dann würde ich gegebenenfalls Restdateien händisch in die passenden Ordner auf HDD1 verschieben. Anschließend würde ich die Ordner von Disk3 löschen. Nicht die System Shares! Mit Krusader oder CloudCommander oder wasauchimmer. Beende den Docker Service und den VM Service über die Settings Die Systemshares stellst Du danach erstmal um auf Disk1. Und spätestens jetzt würde ich mal mit Appdata Backup/Restore ein Backup der wichtigen Dinge machen und dieses abseits des Servers sichern. Dann würde ich mal einen Reboot machen und sehen was passiert. Edited February 11, 2022 by MartinG Quote Link to comment
Recommended Posts
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.