Stromausfall beim Linux-Server – Überprüfung der Datenintegrität und Betriebssystembeschädigung

Stromausfall beim Linux-Server – Überprüfung der Datenintegrität und Betriebssystembeschädigung

Welche Best Practice-Schritte sind erforderlich, um im Falle eines unerwarteten Stromausfalls (oder eines VM-Host-Fehlers) eine mögliche Beschädigung des Linux-Betriebssystems zu prüfen bzw. eine Wiederherstellung durchzuführen?

Natürlich „hängt“ es von der Installation und Einrichtung ab, aber ich suche nach allgemeinen Aktionen/Prüfungen, die für die meisten Linux-Betriebssysteme (Debian, Ubuntu, Mint, andere) und Dateisysteme (XFS, ZFS, EXT4, vfat) durchgeführt werden können.

Dabei geht es nicht darum, unkontrollierte Abschaltungen zu verhindern, sondern darum, mit deren Auftreten umzugehen und zu versuchen, die bestmögliche Wiederherstellung sicherzustellen.

Mir ist bewusst, dass Betriebssysteme dazu neigen, zu erkennen, wenn ein Dateisystem nicht ausgehängt wurde (wie es bei einem ordnungsgemäßen Herunterfahren der Fall wäre) und daher beim Hochfahren automatisch Prüfungen durchführen. Doch was sind das für Prüfungen und wie führe ich sie manuell durch?

Eg e2fsck -fist ein solches Tool, aber für Uneingeweihte: Wann kann/sollte es verwendet werden und wann nicht (oder wird es nicht funktionieren)?

Unter Windows könnten Sie beispielsweise Folgendes tun:

  • chkdskSuchen Sie mit dem alten oder modernen Äquivalent von repair-volume(in PowerShell) nach Beschädigungen des NTFS-Dateisystems.
  • Überprüfen Sie die Integrität der OS-Kernsystemdateien mitsfc.exe /scannow

Anwendungsspezifische Überprüfungs-/Wiederherstellungsschritte wie MySQL databaseoder LDAP directoriesusw. fallen nicht in den Rahmen dieser Frage – es sei denn, es handelt sich um eine sehr allgemeine Sache, wie z. B. eine aptoder mehrere Betriebssystemdatenbanken snap.

Was machst du?

Antwort1

Moderne Dateisysteme führen ein Metadatenjournal, d. h. ein einfacher Stromausfall sollte kein Problem für die Integrität des Dateisystems selbst darstellen: Abgeschlossene, aber noch nicht festgeschriebene Transaktionen werden wiederholt, während teilweise Transaktionen zurückgesetzt werden.

Während der Übertragung oder im Cache gespeicherte Daten können jedochdürfenverloren gehen oder nur teilweise geschrieben werden - wenn eine Anwendung einige Daten an das Betriebssystem für asynchrones Schreiben (d. h. normales Schreiben) weitergibt, aber die Maschine die Stromversorgung verliert, bevor das Betriebssystem sie in den permanenten Speicher zurückschreiben kann, werden die DatenWilleverloren sein.

Aus diesem Grund MyISAMimplementieren kritische Anwendungen wie Datenbanken (mit Ausnahme von ) ihr eigenes Journaling und schreiben Daten mit Synchronisierungssemantik – unter Verwendung fsync()von usw.

Kurz gesagt: Bei einem ungeplanten Herunterfahren ist im Allgemeinen keine Reparatur des Dateisystems erforderlich (außer der automatischen Wiedergabe des Journals). Die Überprüfung von Anwendungen hängt von der Anwendung selbst ab, wobei die meisten Datenbanken von einem plötzlichen Stromausfall nicht betroffen sind - es sei denn, Sie verwenden MyISAM, waserfordertläuftmysqlcheck

verwandte Informationen