Warum verliert ein Heimserver erst nach dem Aufwachen aus dem Energiesparmodus ein NVMe-Laufwerk?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Ein NVMe-Laufwerk kann nach dem Energiesparmodus verschwinden, wenn sein Controller oder seine PCIe-Verbindung beim Fortsetzen nicht aus einem Energiesparzustand zurückkehrt.

Ein Laufwerk, das nach einem Kaltstart funktioniert, aber nur nach dem Ruhezustand verschwindet, weist normalerweise nicht auf ein einfaches Dateisystemproblem hin. Der Fehler kann auftreten, bevor Namespace, Partition, Dateisystem oder Anwendung sichtbar werden: Das PCIe-Gerät wird möglicherweise nicht erneut erkannt, der NVMe-Controller wird eventuell nicht betriebsbereit, oder eine Kombination aus Energiesparmechanismen kann die Verbindung unzugänglich machen. Diagnostizieren Sie zuerst die niedrigste fehlende Schicht und formatieren, ersetzen oder rekonstruieren Sie den Speicher nicht, bevor der Gerätepfad verstanden ist.

Ermitteln Sie, welche niedrigste Schicht nach dem Fortsetzen verschwindet

Erfassen Sie vor dem Energiesparmodus das PCI-Gerät, den NVMe-Controller, Namespaces, Partitionen, Dateisystem-UUIDs, Einbindungen und Anwendungen, die das Laufwerk verwenden. Wiederholen Sie dieselben Prüfungen unmittelbar nach dem Fortsetzen.

Das Linux-NVMe-Subsystem stellt Controller und Namespaces als separate Schichten bereit. Der Ubuntu-Befehl nvme list hilft dabei, einen fehlenden Controller von einem weiterhin vorhandenen Controller zu unterscheiden, der seinen erwarteten Namespace nicht mehr bereitstellt.

Wenn die PCI-Funktion fehlt, konzentrieren Sie sich auf Firmware, PCIe-Verbindungs-Energiesparfunktionen und das Verhalten beim Energiesparen. Wenn der Controller vorhanden bleibt, aber das Blockgerät verschwindet, untersuchen Sie NVMe-Reset, Namespaces, Treiberfehler und die Betriebsbereitschaft des Controllers.

Vergleichen Sie Kaltstart, Neustart und jeden unterstützten Energiesparzustand

Testen Sie einen Kaltstart, einen normalen Neustart, den Energiesparmodus mit aktivem Leerlauf und den Tiefschlaf nur dann, wenn Betriebssystem und Firmware diese Zustände bereitstellen. Notieren Sie, bei welchem Übergang der Fehler auftritt.

Der Linux-Kernel unterscheidet zwischen Energiesparmodus mit aktivem Leerlauf, Bereitschaftsmodus und Suspend-to-RAM. Jeder Zustand reduziert die Geräte- und Plattformleistung unterschiedlich stark. Die Beschreibung der Energiesparzustände des Kernels erklärt, warum ein NVMe-Controller aus einem flacheren Zustand korrekt zurückkehren kann, aber nach einem tieferen Plattformübergang ausfällt.

Ein Fehler, der auf einen einzigen Zustand beschränkt ist, spricht eher für ein Problem beim Energieübergang als für ein Problem mit der Datenträgerformatierung. Behalten Sie den nachweislich funktionierenden Zustand bei, während Sie eine dauerhafte Firmware- oder Treiberlösung testen.

Prüfen Sie, ob das PCIe-Gerät erneut erkannt wird

Vergleichen Sie die Ausgabe des PCI-Busses vor dem Energiesparmodus und nach dem Fortsetzen, einschließlich der Adresse des NVMe-Controllers, des ausgehandelten Verbindungsstatus, des Kernel-Treibers und der Fehlerzähler. Speichern Sie die genaue Busadresse vor dem Test.

Das Dienstprogramm lspci meldet den Controller auf der PCI-Schicht, bevor Namespaces oder Dateisysteme beteiligt sind. Dadurch eignet es sich zur Unterscheidung, wenn das gesamte NVMe-Gerät zu verschwinden scheint.

Wenn das Gerät in der PCI-Aufzählung fehlt, können ein erneutes Einlesen des Dateisystems oder das Neuerstellen von Einbindungen nicht helfen. Wenn es weiterhin sichtbar ist, erfassen Sie die NVMe- und Kernel-Fehler, bevor Sie einen Controller-Reset versuchen.

-15% OFF

Testen Sie autonome NVMe-Energiesparzustandsübergänge

Erfassen Sie die aktuellen NVMe-Energiesparzustände und ob autonome Übergänge zwischen Energiesparzuständen aktiviert sind. Ändern Sie für einen kontrollierten Energiesparzyklus jeweils nur eine energiebezogene Variable.

Die ArchWiki dokumentiert das Energiesparverhalten von NVMe sowie die APST-Latenzsteuerung, mit der sich begrenzen lässt, wie tief der Controller in Energiesparzustände wechseln darf, wenn bestimmte Hardware beim Fortsetzen unzuverlässig arbeitet.

Eine vorübergehende APST-Einschränkung ist ein Diagnosemittel und kein Beweis dafür, dass jeder tiefe Energiesparzustand fehlerhaft ist. Wenn das Laufwerk wiederholte Fortsetzungszyklen nur mit einer weniger tiefen Energiesparrichtlinie übersteht, vergleichen Sie Firmware- und Kernel-Korrekturen, bevor Sie die Umgehungslösung dauerhaft beibehalten.

Überprüfen Sie Firmware, BIOS und das Verhalten von Modern Standby

Notieren Sie die Firmwareversion des Mainboards, die NVMe-Firmware, den Build des Betriebssystems sowie alle kürzlich vorgenommenen BIOS- oder Treiberänderungen. Prüfen Sie, ob die Plattform herkömmlichen Energiesparmodus oder ein modernes Modell mit niedrigem Leerlaufverbrauch verwendet.

Das Modern-Standby-Modell von Microsoft zeigt, dass unterstützte Geräte einer plattformverwalteten Energiesparsteuerung unterliegen, anstatt denselben Pfad wie beim herkömmlichen Energiesparmodus zu verwenden. Dadurch kann sich die Reproduzierbarkeit eines NVMe-Problems zwischen Systemen unterscheiden.

Aktualisieren Sie jeweils nur eine Firmware-Schicht und bewahren Sie die vorherige Version oder eine Wiederherstellungsmöglichkeit auf. Kombinieren Sie kein BIOS-Update, kein SSD-Firmware-Update und kein Betriebssystem-Upgrade in einem einzigen Test, da sonst nicht festgestellt werden kann, welche Änderung erfolgreich war.

Untersuchen Sie PCIe-Verbindungs-Energiesparen und Laufzeit-Energieverwaltung

Prüfen Sie die PCIe-ASPM-Einstellungen, den Laufzeit-Energiezustand und ob der NVMe-Controller vor dem Wechsel des Systems in den Energiesparmodus in einen ausgesetzten Laufzeitzustand wechselt. Vergleichen Sie den betroffenen Steckplatz nur dann mit einem anderen Steckplatz, wenn das Serverdesign dies sicher erlaubt.

Die Anleitung zur Energieverwaltung von Red Hat erklärt, dass Laufzeit-Energieverwaltung und PCIe-ASPM getrennte Mechanismen sind. Wenn das Deaktivieren eines Mechanismus eine Änderung bewirkt, identifiziert dies daher nicht automatisch den anderen als Ursache.

Wenn das Problem dem Laufwerk in einen anderen Steckplatz folgt, sind wahrscheinlich der Controller oder die Firmware die Ursache. Bleibt es an einem Steckplatz bestehen, untersuchen Sie Mainboard-Firmware, Bifurkation, gemeinsam genutzte Lanes, Steckplatzversorgung und Signalintegrität.

Stellen Sie den Betrieb sicher wieder her und überprüfen Sie wiederholte Fortsetzungszyklen

Wenn das Laufwerk verschwindet, sichern Sie die Protokolle vor einem Kaltstart. Vermeiden Sie wiederholte Hot-Resets, wenn der Controller einen schwerwiegenden Status, Verbindungsfehler oder verschwindende Namespaces meldet.

Die Wiederherstellungs-Checkliste für Home-Server von ZimaSpace enthält die dazugehörige Grundregel: Überprüfen Sie die Hardwaresichtbarkeit und den Speicherstatus, bevor Sie eine Dateisystemreparatur durchführen oder Daten wiederherstellen.

Das Problem ist behoben, wenn Controller, Namespace, Partitionen, Einbindungen und Anwendungen wiederholte Energiespar- und Fortsetzungszyklen im vorgesehenen Energiesparzustand überstehen. Bewahren Sie ein aktuelles Backup auf, bis die Fehlerbehebung auch Neustarts, längere Leerlaufzeiten und die normale Speicherlast übersteht.

Support & Tipps

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.