Zum Hauptinhalt springen

Unbereinigt heruntergefahrene Systeme

An unclean shutdown happens when Unraid detects that the array was not properly stopped before the system powered off. This situation can trigger an automatic parity check during the next boot to ensure data integrity.

Recommendations um unsaubere Abschaltungen zu verhindern

Durch einige proaktive Maßnahmen können Sie unbereinigte Herunterfahrten vermeiden oder erkennen:

  • Verwenden Sie eine USV: Halten Sie Ihren Server mit einer unterbrechungsfreien Stromversorgung (USV) verbunden und richten Sie diese ein, um einen kontrollierten Shutdown einzuleiten, wenn der Batteriestrom niedrig wird.
  • Versuchen Sie ein geordnetes Herunterfahren: Wenn Ihr Server nicht reagiert, drücken Sie kurz den Netzschalter, um ein sicheres Herunterfahren zu initiieren. Halten Sie den Knopf nicht gedrückt, da dies ein hartes Ausschalten erzwingt und zu einem nicht ordnungsgemäßen Herunterfahren führt.
  • Aktivierung des persistenten Loggings: Gehen Sie zu Einstellungen → Syslog-Server, um Logging zu aktivieren, das nach einem Neustart erhalten bleibt. Weitere Details finden Sie unter Persistente Logs (Syslog-Server).
  • Diagnosen für den Support anhängen: Wenn ein unsauberer Shutdown auftritt, versucht Unraid, Diagnosen unter /log/diagnostics.zip auf Ihrem Flash-Gerät zu speichern. Hängen Sie diese Datei an Forumsbeiträge an, wenn Sie Unterstützung suchen.
UPS beste Konfigurationspraktiken

Eine gut konfigurierte USV ist Ihre beste Verteidigung gegen unbereinigte Herunterfahrten, die durch Stromausfall verursacht werden.

  • Verbinden Sie die USV über USB mit Ihrem Unraid-Server.
  • Aktivieren Sie die USV-Unterstützung unter Einstellungen → USV-Einstellungen.
  • Configure shutdown timeouts: Set the UPS to trigger a controlled shutdown before the battery runs low. Adjust the "Battery runtime left" or "Battery charge level" thresholds to provide enough time for Unraid to stop the array and power down safely.
  • Testen Sie Ihre Konfiguration: Simulieren Sie einen Stromausfall, um sicherzustellen, dass die USV und Unraid korrekt reagieren.

Schauen Sie sich das NUT Plugin für eine bessere Kompatibilität mit fortschrittlicheren USV-Modellen oder nicht unterstützter Hardware an.

Ereignisse, die unsaubere Shutdowns verursachen

Das Verständnis der Hauptursachen für unsaubere Shutdowns hilft Ihnen, diese zu vermeiden. Die folgenden Abschnitte behandeln die häufigsten Szenarien und deren Lösungen.

Unerwarteter Stromausfall

Stromausfälle sind einer der Hauptgründe für unsaubere Abschaltungen. Schützen Sie Ihr System mit einer richtig konfigurierten USV, die Unraid automatisch herunterfahren kann, bevor der Akku leer ist.

notiz

Unraid supports most UPS units using the apcupsd Protocol protocol (APC and CyberPower are usually compatible). If your UPS isn't supported, consider using the Network UPS Tools (NUT) plugin from Community Applications.

Fehler des Flash-Laufwerks

Der Status des array wird auf Ihrem USB-Flash-Laufwerk gespeichert. Wenn das Flash-Laufwerk nicht verfügbar oder schreibgeschützt wird, kann Unraid den Herunterfahrstatus nicht aktualisieren, selbst wenn das array korrekt stoppt. Dies führt dazu, dass beim nächsten Start ein unsauberes Herunterfahren erkannt wird.

Terminalsitzungen öffnen

Unraid wartet während des Herunterfahrens auf alle offenen Terminal- oder SSH-Sitzungen. Wenn diese Sitzungen aktiv bleiben und der Shutdown-Timer abläuft, erfolgt ein erzwungenes Herunterfahren.

Hinweis

Das Dynamix Stop Shell Plugin kann automatisch lange offene Bash- oder SSH-Sitzungen schließen und so für ein reibungsloses Herunterfahren sorgen. Seien Sie jedoch vorsichtig, wenn noch Schreibvorgänge auf das array ausgeführt werden.


Timeout für virtuelle Maschinen

Die ordnungsgemäße Konfiguration von Abschalt-Timeouts ist unerlässlich, um sicherzustellen, dass Ihr Unraid-Server alle Dienste effektiv stoppen kann. Dies verhindert unsaubere Abschaltungen, insbesondere bei Stromausfall oder Wartung. Der wichtigste Schritt besteht darin, Ihre VMs so zu konfigurieren, dass sie in den Ruhezustand versetzt werden, anstatt herunterzufahren. Dieser Ansatz beseitigt viele Timeout-bezogene Probleme.

Einrichtung des VM-Ruhezustands

Use VM-Ruhezustand

Für die zuverlässigsten und schnellsten Abschaltungen konfigurieren Sie Ihre VMs so, dass sie ruhezustand anstelle des Herunterfahrens verwenden. Dies ist besonders wichtig für Windows-VMs, ist aber für alle VM-Typen von Vorteil.

Wir empfehlen die Verwendung des Ruhezustands, weil er:

  • Speichert den VM-Zustand sofort - Kein Warten darauf, dass das Gast-Betriebssystem herunterfährt.
  • Verhindert Datenverlust - Kein Risiko, Updates oder ungespeicherte Arbeiten zu unterbrechen.
  • Vermeidet Timeout-Probleme - Der Ruhezustand erfolgt nahezu augenblicklich.
  • Schnellere Wiederherstellung - VMs nehmen genau dort wieder auf, wo sie aufgehört haben.

Herunterfahren kann problematisch sein, weil:

  • Windows möglicherweise Dialogfelder ("Dieses Dokument speichern?") anzeigt, die das Herunterfahren unbefristet anhalten.
  • Windows-Updates können während des Herunterfahrens 10+ Minuten in Anspruch nehmen.
  • Wenn das Timeout abläuft, erzwingt Unraid ein Bedingung-killing der VM, was möglicherweise in fortlaufende Windows-Updates, ungespeicherte Dokumente, Anwendungsdaten und Dateisysteme im Gastbetriebssystem korruptieren könnte.

Kritische Anforderung: Stellen Sie sicher, dass der QEMU Guest Agent in der VM installiert ist, damit der Ruhezustand ordnungsgemäß funktioniert.

Um den VM-Ruhezustand zu aktivieren:

  1. Laden Sie QEMU Guest Agent herunter:

  2. Installieren Sie in Windows VM:

    • Binden Sie die virtio-win.iso in Ihrer VM ein.
    • Führen Sie den Installer von der eingebundenen ISO aus.
    • Install both VirtIO drivers AND QEMU Guest Agent.
    • Starten Sie die VM neu.
  3. Konfigurieren in Unraid:

    • Gehen Sie zu Ihren VM-Einstellungen im VMs-Tab.
    • Stellen Sie Abschaltaktion auf Ruhezustand ein.
    • Klicken Sie auf Übernehmen.

Zum Verifizieren, dass Ihr Ruhezustand funktioniert, starten Sie Ihre VM und öffnen einige Anwendungen. Beenden Sie es dann von Unraid aus. Wenn Sie es wieder starten, sollte es mit allen Anwendungen weiterhin geöffnet sein.

Guest Agent ist kritisch

Without the QEMU Guest Agent installed, hibernation may not work properly. In that case, the VM will revert to shutdown mode, consuming the full timeout period.


Timeout-Konfiguration

In diesem Abschnitt behandeln wir, wie man Timeouts für verschiedene Systeme und Prozesse konfiguriert. Diese Informationen sind wichtig, um sicherzustellen, dass Ihre VMs und Docker-Container ohne Datenverlust ordnungsgemäß heruntergefahren werden.

EinstellungStandardWann erhöhenWo einstellen
VM Herunterfahren-Zeitüberschreitung60s300s, wenn kein Ruhezustand genutzt wird und VMs abstürzenEinstellungen → VM-Manager → VM-Shutdown (Erweitert)
Docker-Container-Stop-Timeout10s30s, wenn Container beim Stoppen abstürzenEinstellungen → Docker (Erweitert)
Allgemeiner Shutdown-Timeout90s180s bei unsauberen Abschaltungen, 300s+ mit VMsEinstellungen → Laufwerkseinstellungen → Shutdown-Timeout
When um Timeouts zu erhöhen

Wenn Sie nicht saubere Abschaltungen oder abstürzende Container beim Herunterfahren erleben, ziehen Sie in Betracht, den allgemeinen Shutdown-Timeout auf 180 Sekunden (oder 300+ Sekunden, falls Sie mehrere VMs haben) zu erhöhen. Dies gibt den Diensten mehr Zeit, um ordentlich herunterzufahren.

Abschaltsequenz

Beim Herunterfahren erfolgt der Prozess in folgender Reihenfolge:

  1. VM-Abschaltung: Dies umfasst drei Phasen, und jede kann bis zum VM-Timeout dauern:

    • Phase 1: Alle pausierten VMs fortsetzen
    • Phase 2: VMs, die für den Ruhezustand eingerichtet sind, in den Ruhezustand versetzen
    • Phase 3: Alle verbleibenden VMs herunterfahren

    Alle VMs in jeder Phase werden gleichzeitig verarbeitet, was bedeutet, dass die gesamte Abschaltzeit berechnet werden kann als: VM-Timeout × 3.

  2. Docker-Container stoppen gleichzeitig (Gesamtzeit = Docker-Timeout).

  3. Andere Dienste umfassen Aufgaben wie LXC-Container und Drittanbieter-Plugins, die in der Regel nur wenige Sekunden benötigen.

  4. Array-Shutdown: Laufwerke müssen ausgehängt und Daten synchronisiert werden; dies dauert in der Regel 15-30 Sekunden.

Calculate Ihr allgemeines Abschalt-Timeout

Formel: Ihr allgemeines Abschalt-Timeout sollte größer sein als:

(VM timeout × 3) + (Docker timeout) + (Other services) + 15-30 seconds

Beispiel: Wenn wir der Formel folgen, würde es so aussehen: (300 × 3) + 30 + 10 + 30 = 970 Sekunden (über 16 Minuten).

Empfehlung: Mindestens 180 Sekunden (3 Minuten) als Minimum und 300+ Sekunden (5+ Minuten), wenn Sie mehrere VMs oder komplexe Container haben.

Wenn alle Ihre VMs im Ruhezustand anstatt heruntergefahren einzustellen sind, ist die VM-Zeitüberschreitung weniger wichtig, da der Ruhezustand fast sofort erfolgt. Sie könnten eine niedrigere VM-Zeitüberschreitung verwenden (z. B. 60-120 Sekunden) als Sicherung für VMs, die den Ruhezustand nicht unterstützen.


Detaillierte Konfigurationsanleitung

Dieser Abschnitt bietet ausführliche Informationen zur Konfiguration von Timeouts für verschiedene Systemkomponenten. Jede Timeout-Einstellung arbeitet zusammen, um sicherzustellen, dass Ihr Server ohne Datenverlust ordnungsgemäß heruntergefahren wird.

VM-Timeouts

Konfigurieren Sie die VM-Abschaltzeitlimits in Einstellungen → VM-Manager → VM-Abschaltung (erweiterten Ansichtsmodus aktivieren).

Wie es funktioniert:

  • VMs durchlaufen drei Abschaltphasen, die jeweils das vollständige VM-Timeout benötigen
  • Alle VMs in jeder Phase werden gleichzeitig verarbeitet
  • Gesamt-VM-Abschaltzeit = VM-Timeout × 3

Häufige Probleme:

  • Unterbrechungen von Windows-Updates: Updates während des Herunterfahrens können beschädigt werden, wenn das Timeout abläuft.
  • Ungespeicherte Arbeit: Dialogfelder, die zum Speichern von Dokumenten auffordern, können das Herunterfahren unbegrenzt aufhalten.
  • Ruhezustandsfehler: VMs ohne QEMU Guest Agent werden möglicherweise beim Ruhezustand fehlschlagen und das vollständige Timeout verwenden.
VM Zeitempfehlungen
  • Primäre Empfehlung: Konfigurieren Sie VMs so, dass sie in den Ruhezustand versetzt werden, anstatt herunterzufahren (erfordert QEMU Guest Agent).
  • Wenn VMs während des Herunterfahrens abstürzen: Erhöhen Sie das Timeout auf 300 Sekunden (5 Minuten) für Windows-VMs.
  • Windows-Updates: Stellen Sie Windows so ein, dass es Updates beim Starten anstatt beim Herunterfahren installiert.
  • Testen Sie Ihre Einrichtung: Stoppen Sie Ihre VMs manuell, um zu bestätigen, dass sie innerhalb des Timeout-Zeitraums herunterfahren oder in den Ruhezustand versetzt werden.
No Sicherer Timeout ohne Ruhezustand

Ohne Hibernation und QEMU Guest Agent gibt es kein wirklich sicheres Timeout für Windows VMs. Dialogboxen oder laufende Installationen von Updates könnten jedes Timeout unzureichend machen, was zu erzwungenen Abschaltungen und Datenverlust führen könnte.

Docker-Timeouts

Konfigurieren Sie die Timeout-Einstellungen für das Stoppen von Docker-Containern in Einstellungen → Docker (erweiterten Ansichtsmodus aktivieren).

Wie es funktioniert:

  • Container werden parallel gestoppt, daher entspricht die Gesamtzeit dem Docker-Stop-Timeout.
  • Die meisten Container stoppen innerhalb von 10 Sekunden, aber einige benötigen möglicherweise mehr Zeit.
  • Komplexe Container mit großen Datenbanken oder laufenden Vorgängen könnten zusätzliche Zeit benötigen.
  • Wenn der Timer abläuft, werden Container erzwungenermaßen gestoppt.
Docker Zeitempfehlungen
  • Die Standardzeit von 10 Sekunden ist für die meisten Container geeignet.
  • Wenn Container abstürzen, wenn sie gestoppt werden: Erhöhen Sie das Timeout auf 30 Sekunden.
  • Überwachen Sie Ihre Container während der Abschaltung, um diejenigen zu identifizieren, die regelmäßig mehr Zeit benötigen.

Allgemeine Timeouts

Konfigurieren Sie das allgemeine Shutdown-Timeout in Einstellungen → Datenträgereinstellungen → Abschaltzeitlimit.

Berücksichtigungen der USV (kritischster Faktor):

  • Ihre USV muss ausreichende Laufzeit bieten, um die vollständige Abschaltsequenz vor Erschöpfung der Batterie abzuschließen.
  • Für einen manuellen Shutdown können Sie längere Timeouts einstellen, da Sie kontrollieren, wann die Abschaltung beginnt.
  • Bei einem Stromausfall-Shutdown ist Ihr Timeout durch die Batterielaufzeit der USV begrenzt.
  • Testen Sie Ihre USV durch Simulation eines Stromausfalls, um sicherzustellen, dass Ihr Server sauber herunterfährt und genügend Zeit bleibt.
General Zeitempfehlungen
  • Wenn Sie unsaubere Shutdowns erhalten: Erhöhen Sie auf 180 Sekunden (3 Minuten) für Systeme ohne VMs.
  • Für Systeme mit VMs: Verwenden Sie 300+ Sekunden (5+ Minuten), wenn keine Hibernation verwendet wird.
  • Bei Verwendung der Hibernation: 180-300 Sekunden sind normalerweise ausreichend.
  • Stellen Sie sicher, dass Timeouts nicht länger sind als das, was Ihre USV während eines Stromausfalls unterstützen kann.

Drittdienste

LXC-Container: Das LXC-Plugin hat eigene Timeout-Einstellungen zum Stoppen von Containern. Wie Docker-Container stoppen LXC-Container in der Regel innerhalb weniger Sekunden, aber einige könnten mehr Zeit beanspruchen. Überprüfen Sie die LXC-Plugin-Einstellungen für das Container-Stop-Timeout und fügen Sie dieses Timeout zu Ihrer allgemeinen Shutdown-Timeout-Berechnung hinzu.

Andere Dienste: Einige Plugins oder benutzerdefinierte Dienste können eigene Abschaltverfahren haben. Konsultieren Sie die Plugin-Dokumentation für spezifische Timeout-Einstellungen und integrieren Sie sie in Ihre Berechnungen.

Aktualisierte Formel mit Drittdiensten:

(VM timeout × 3) + (Docker timeout) + (LXC/other timeouts) + 15-30 seconds

Dynamix-Stop-Shell-Plugin: Wenn Sie regelmäßig SSH- oder Terminalsitzungen verwenden, können offene Sitzungen saubere Shutdowns verhindern, da Unraid wartet, bis diese geschlossen sind, bevor es fortfährt.

Das Dynamix-Stop-Shell-Plugin hilft, indem es automatisch verbleibende Bash- oder SSH-Sitzungen schließt, wenn das Array gestoppt wird, um einen pünktlichen Shutdown zu gewährleisten.

Sie können es von Community Applications (nach "Dynamix-Stop-Shell" suchen) installieren.

When um das Plugin zu verwenden
  • Wenn Sie regelmäßig Terminalsitzungen geöffnet haben.
  • Um zu verhindern, dass vergessene SSH-Sitzungen die Abschaltung verzögern.
  • Für die automatische Bereinigung während der Abschaltung.
vorsicht
  • Seien Sie vorsichtig, wenn Sie Skripte oder Prozesse in Terminalsitzungen ausführen.
  • Stellen Sie sicher, dass keine kritischen Schreibvorgänge vor der Abschaltung durchgeführt werden.
  • Das Plugin wird Sitzungen gewaltsam schließen, was die Arbeit unterbrechen könnte.