unrd44 Posted May 20, 2021 Share Posted May 20, 2021 Hallo zusammen, ich nutze seit einiger Zeit erfolgreich Unraid auf älterer Hardware. Nun habe ich mir neue Hardware angeschafft und habe seit dem ein massives Problem: Nach dem Aufbau der neuen Hardware und Austausch der Cache Laufwerke von 2x SSD (RAID 1) zu Nvme (RAID 1) lief zunächst alles problemlos. Ich hatte vor dem Umbau die Daten vom Cache mittels (Yes:Cache > Mover > No) auf das Array übertragen. Anschließend die neuen Nvme´s eingebaut, mit BTRFS formatiert und mittels (Prefer:Cache > Mover) wieder vom Array auf das Cache Laufwerk verschoben. Dieser "Migrationsvorgang" hat immer bei deaktivierten VMs und Docker stattgefunden. Betroffen sind die Shares Appdata, Domains und System, alle anderen Shares stehen auf Yes:Cache. Plötzlich startete Libvirt nicht mehr, keine Docker, keine VMs... sehr seltsam. Im Disk Log stehen folgende Fehler (Ausschnitt): May 20 01:50:24 UNRAID kernel: BTRFS info (device nvme1n1p1): enabling ssd optimizations May 20 01:51:59 UNRAID kernel: BTRFS warning (device nvme1n1p1): csum failed root 5 ino 312 off 167505920 csum 0xa97b7409 expected csum 0x0b924732 mirror 1 May 20 01:51:59 UNRAID kernel: BTRFS error (device nvme1n1p1): bdev /dev/nvme1n1p1 errs: wr 0, rd 0, flush 0, corrupt 2, gen 0 May 20 01:51:59 UNRAID kernel: BTRFS warning (device nvme1n1p1): csum failed root 5 ino 312 off 167505920 csum 0xa97b7409 expected csum 0x0b924732 mirror 1 May 20 01:51:59 UNRAID kernel: BTRFS error (device nvme1n1p1): bdev /dev/nvme1n1p1 errs: wr 0, rd 0, flush 0, corrupt 3, gen 0 Nun bin ich mir unsicher, ob ein Hardwaredefekt vorliegt, oder ob man Nvme´s überhaupt im RAID 1 Verbund als Cache nutzen soll/darf... Konnte defekte Daten (docker.img etc.) aus dem Backup wiederherstellen und es zunächst wieder ohne Cache als Laufen bekommen, bin aktuell allerdings ziemlich ratlos und freue mich auf jegliche Hilfe oder Tipps :-) Mein System ist folgendermaßen aufgebaut: Mainboard: Gigabyte AORUS X570 I Pro WiFi CPU: AMD Ryzen 5 3400G Ram: 2x 16GB Corsair DDR4 3600 Array: 1x WD Red Pro 3TB Parity, 2x Seagate ST3000 3TB Cache: 2x Samsung SSD 970 PRO 512GB M.2 Nvme Quote Link to comment
mgutt Posted May 20, 2021 Share Posted May 20, 2021 Beim Lesen der Daten wird immer auch die Checksumme gebildet und mit der bestehenden verglichen. In deinem Fall gab es bei "ino 312", also irgendeiner Datei, die wir jetzt nicht kennen einen Fehler bei dieser Checksumme. Solche Fehler dürfen natürlich nicht auftreten. Ursachen kann es dafür mehrere geben. Entweder stimmt was nicht bei der Übertragung über PCIe oder die SSD ist irgendwie inkompatibel mit dem Board oder dem Slot oder der RAM hat eine Macke oder oder oder... Hattest du mal einen Stromausfall oder hast den Server hart abgeschaltet? In dem Fall immer erst einen Scrub auf dem BTRFS Pool ausführen, bevor du das Array startest. Ansonsten würde ich beim RAM ansetzen, da gerade so hoch taktender RAM gerne anfällig für Speicherfehler ist. Aus dem Grund empfehle ich auch immer ECC RAM. Eventuell magst du das ja investieren. Dein Board unterstützt jedenfalls ECC RAM: https://www.gigabyte.com/de/Motherboard/X570-I-AORUS-PRO-WIFI-rev-10/sp#sp Dann würde ich einfach mal mit einem 32GB Riegel anfangen. Oder treten die Fehler nicht mehr auf? 57 minutes ago, unrd44 said: Plötzlich startete Libvirt nicht mehr, keine Docker, keine VMs... ... Konnte defekte Daten (docker.img etc.) aus dem Backup wiederherstellen Dazu eine Anmerkung. Das docker.img enthält keine wichtigen Daten. Man kann es jederzeit löschen und daher braucht man es auch nicht sichern. Es enthält nur die heruntergeladenen Container-Pakete. Die Container-Nutzerdaten befinden sich dagegen unter appdata. Die sind wichtig. Falls mal alle Container verschwunden sind, kannst du sie jederzeit über Apps -> Previous Apps "wiederherstellen". Um genau zu sein startet dann einfach dein bisher genutztes Template, lädt die Pakete neu herunter und verwendet wie gehabt die Dateien unter appdata. Außerdem rate ich dir aus Performance-Gründen den Docker-Dienst auf "Directory" umzustellen. Gerade bei BTRFS reduziert das massiv die Schreibzugriffe auf die SSD. Quote Link to comment
unrd44 Posted May 20, 2021 Author Share Posted May 20, 2021 Hallo, vielen Dank für die umfangreiche Antwort! Aktuell läuft das System mit den beiden M.2 Nvme´s als Cache Pool. Ich habe testweise "nur" die domain" Share darauf gelegt (Prefer) und test ein wenig mit einer VM. Bisher keine Probleme. Appdata, System möchte ich später auch noch darauf legen (Prefer) und die restlichen Shares mit YES. Zwei Fragen habe ich: 5 hours ago, mgutt said: Scrub auf dem BTRFS Pool ausführen Wo mache ist das? Habe ich auf Anhieb nicht gefunden... 5 hours ago, mgutt said: Docker-Dienst auf "Directory" umzustellen Habe ich ebenfalls nicht gefunden... Ich werde weiterhin beobachten und ggf. auf ECC RAM umstellen. Vielen Dank zunächst für die Antwort. Quote Link to comment
mgutt Posted May 20, 2021 Share Posted May 20, 2021 21 minutes ago, unrd44 said: 6 hours ago, mgutt said: Docker-Dienst auf "Directory" umzustellen Habe ich ebenfalls nicht gefunden... Docker Dienst stoppen. Erweiterte Ansicht aktivieren. Dann solltest du das passende Dropdown sehen. 21 minutes ago, unrd44 said: 6 hours ago, mgutt said: Scrub auf dem BTRFS Pool ausführen Wo mache ist das? Habe ich auf Anhieb nicht gefunden... https://wiki.unraid.net/Check_Disk_Filesystems#btrfs_scrub Quote Link to comment
unrd44 Posted May 20, 2021 Author Share Posted May 20, 2021 Vielen Dank für die schnelle Antwort! Klasse. Die vielleicht wichtigste Info habe ich im Eifer des Gefechts "unterschlagen": Das Problem trat auf, als ich versucht habe die intergrierte Grafikkarte des Ryzen 5 3400G an eine Windows 10 VM durchzureichen. Obs das überhaupt etwas bringt, kann ich nicht sagen, wollte es aber testen. Ich glaube mich erinnern zu können, dass alle Probleme direkt im Anschluss kamen. Das nur zur vollständigen Info. Quote Link to comment
jj1987 Posted May 20, 2021 Share Posted May 20, 2021 34 minutes ago, unrd44 said: Das Problem trat auf, als ich versucht habe die intergrierte Grafikkarte des Ryzen 5 3400G an eine Windows 10 VM durchzureichen Das wird sehr wahrscheinlich nicht funktionieren, zumindest hat es soweit ich das verfolgt habe noch niemand erfolgreich geschafft. Hatte es selber auch mal vergeblich versucht. Da sind die AMDs (noch?) etwas zickiger als die Intels. Quote Link to comment
unrd44 Posted May 21, 2021 Author Share Posted May 21, 2021 (edited) Nun scheint alles problemlos zu laufen! Ich habe das Docker Image auf "directory" umgestellt, Appdata, Domains und System auf Prefer gestellt und es läuft bislang stabil. Glaube, dass es "nur" mit dem Durchreichen der AMD:Picasso Grafik an die VM zusammenhing... Letzte Frage an der Stelle (hoffe das ich jetzt nicht off-topic): Durch die Umstellung der Docker auf "directory" ist ein Verzeichnis mit über 1.000.000 Files entstanden. Beim Backup mit Duplicati ist das für die Platte viel mehr Stress und dauert auch deutlich länger, als mit dem docker.img... Ich bin mir aktuell nicht sicher, ob das der richtige Weg ist auf "directory" stehen zu lassen. Danke euch für die Unterstützung! Edited May 21, 2021 by unrd44 Quote Link to comment
mgutt Posted May 21, 2021 Share Posted May 21, 2021 1 hour ago, unrd44 said: Beim Backup mit Duplicati ist das für die Platte viel mehr Stress und dauert auch deutlich länger, als mit dem docker.img... Ich bin mir aktuell nicht sicher, ob das der richtige Weg ist auf "directory" stehen zu lassen. Wie ich bereits sagte ist das docker.img "Müll". Das sicherst du einfach gar nicht. 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.