C
c.
WinUser
- Problem mit einem NVMe-Gerät: Es fällt bei...
- #1
Hallo
Ich habe einen 100% reproduzierbaren Fehler mit einem WDC 740 NVMe Gerät, das während intensiver IO-Aktivitäten, zum Beispiel während einem ZFS-Scrub oder einem ZFS-Send, vom PCIe-Bus getrennt wird.
Ich habe verschiedene Ideen, warum es passieren könnte, und ein paar Dinge, die ich bereits ausschließen kann.
Beginnend mit den Ausschlüssen:
Schlimmer noch: Diese Fehler treten nur bei intensiver Nutzung auf. Ich vermute jetzt Überhitzungsprobleme, möglicherweise löst es einen besonderen Zustand aus, um das Laufwerk vor Schäden zu schützen (thermal throttling).
Derzeit ist dieses Pool nur mit einer Festplatte aufgrund von IO-Fehlern ausgesetzt.
Gibt es noch etwas, das ich für Diagnosen ausprobieren kann, ohne das Laufwerk zu stark zu belasten?
Jede Hilfe wäre willkommen, da die Daten vorerst darauf feststecken!! Sogar rsync verursacht zu viel Festplattenaktivität und einen Absturz!
Beispielsweise, wenn tatsächlich Überhitzung das Problem ist, würde ich gerne einige Einschränkungen für die I/O auferlegen, um sie langsamer zu machen und zu sehen, ob sie dann nicht mehr vom Bus getrennt wird, wenn ich große Datenmengen von der Festplatte übertrage (beginnend vielleicht mit einem Scrub).
Da ich keinen besseren diagnostischen Weg habe, wie kann ich solche Einschränkungen durchsetzen?
Ich kenne Tools, mit denen man die CPU- oder RAM-Nutzung begrenzen kann, aber nicht die Bandbreite einer NVMe-Festplatte.
Ist es auch möglich, einen abbrechbaren Scrub durchzuführen, falls er wieder vom Bus getrennt wird? Ich würde versuchen, die Bandbreite zu begrenzen und den Scrub zur Stabilitätstestung zu verwenden und den Auslösepunkt zu ermitteln, der dazu führt, dass das Gerät vom PCIe-Bridge getrennt wird.
Der Standard-Scrub kann nicht verwendet werden, wie er ist: Er schreibt den beabsichtigten Scrub in den Pool, den Prozess mit dem Pool, dann lässt er die NVMe-Festplatte abstürzen, was einen Neustart erfordert, dann wird er automatisch beim nächsten Booten fortgesetzt, was zu einer großen Aktivität führt und dazu führt, dass die NVMe-Festplatte abstürzt, meistens bevor ich eine Eingabeaufforderung für ein `zpool scrub -s pool' geben kann.
Ich habe einen 100% reproduzierbaren Fehler mit einem WDC 740 NVMe Gerät, das während intensiver IO-Aktivitäten, zum Beispiel während einem ZFS-Scrub oder einem ZFS-Send, vom PCIe-Bus getrennt wird.
Ich habe verschiedene Ideen, warum es passieren könnte, und ein paar Dinge, die ich bereits ausschließen kann.
Beginnend mit den Ausschlüssen:
- RAM-Probleme: Die Maschine hat ECC, aber die Überwachungstools haben nichts angezeigt. Zur Sicherheit läuft im Moment ein Memtest86, aber ich erwarte, dass er ohne Fehler sein wird.
- Spannungsschwankungen: Ich benutze das Standard-Netzteil, aber die Stromversorgung liegt im normalen Bereich, wie die kleinen Anzeigen am Gerät zeigen. Eine USV hat nicht geholfen.
- PCIE ASPM-Bugs in Bezug auf Stromprobleme: Das scheint das Gegenteil zu sein, da ASPM-Fehler normalerweise bei Stromsparmaßnahmen oder geringer Nutzung auftreten. Dieses Laufwerk war in normalem Gebrauch stabil. und bei geringer Nutzung und Stromsparmaßnahmen.
Schlimmer noch: Diese Fehler treten nur bei intensiver Nutzung auf. Ich vermute jetzt Überhitzungsprobleme, möglicherweise löst es einen besonderen Zustand aus, um das Laufwerk vor Schäden zu schützen (thermal throttling).
Derzeit ist dieses Pool nur mit einer Festplatte aufgrund von IO-Fehlern ausgesetzt.
Gibt es noch etwas, das ich für Diagnosen ausprobieren kann, ohne das Laufwerk zu stark zu belasten?
Jede Hilfe wäre willkommen, da die Daten vorerst darauf feststecken!! Sogar rsync verursacht zu viel Festplattenaktivität und einen Absturz!
Beispielsweise, wenn tatsächlich Überhitzung das Problem ist, würde ich gerne einige Einschränkungen für die I/O auferlegen, um sie langsamer zu machen und zu sehen, ob sie dann nicht mehr vom Bus getrennt wird, wenn ich große Datenmengen von der Festplatte übertrage (beginnend vielleicht mit einem Scrub).
Da ich keinen besseren diagnostischen Weg habe, wie kann ich solche Einschränkungen durchsetzen?
Ich kenne Tools, mit denen man die CPU- oder RAM-Nutzung begrenzen kann, aber nicht die Bandbreite einer NVMe-Festplatte.
Ist es auch möglich, einen abbrechbaren Scrub durchzuführen, falls er wieder vom Bus getrennt wird? Ich würde versuchen, die Bandbreite zu begrenzen und den Scrub zur Stabilitätstestung zu verwenden und den Auslösepunkt zu ermitteln, der dazu führt, dass das Gerät vom PCIe-Bridge getrennt wird.
Der Standard-Scrub kann nicht verwendet werden, wie er ist: Er schreibt den beabsichtigten Scrub in den Pool, den Prozess mit dem Pool, dann lässt er die NVMe-Festplatte abstürzen, was einen Neustart erfordert, dann wird er automatisch beim nächsten Booten fortgesetzt, was zu einer großen Aktivität führt und dazu führt, dass die NVMe-Festplatte abstürzt, meistens bevor ich eine Eingabeaufforderung für ein `zpool scrub -s pool' geben kann.