Datenbeschädigung bei aktiviertem Disk-Schreibcache

Datenbeschädigung bei aktiviertem Disk-Schreibcache

Ich habe vor Kurzem erfahren, dass die Aktivierung des Festplatten-Schreibcaches die Systemleistung erheblich verbessern kann. Allerdings mache ich mir Sorgen über das potenzielle Risiko einer Datenbeschädigung oder eines Datenverlusts im Falle eines plötzlichen Stromausfalls.

Hier einige Informationen zu meinem Setup:

Betriebssystem: Windows Server 2012 R2

Festplattentyp: SATA 3.0 HDD

Zweck: Ich überlege, den Schreibcache auf meiner Festplatte zu aktivieren, um die Leistung zu steigern. Meines Wissens nach können Daten beschädigt werden, wenn ein Stromausfall auftritt, während die Daten im Schreibcache noch nicht auf die Festplatte übertragen wurden, wenn das Betriebssystem abstürzt oder wenn eine Anwendung abstürzt, die auf Daten zugreift.

Bei meinen Recherchen fand ich folgende Details in diesemArtikelhaben sie erwähnt: „Datenbeschädigungen treten auf, ohne dass der Benutzer davon Kenntnis hat, wenn der Schreibcache der aktiven Festplatte aktiviert wird und die Festplatte einen Read Look Ahead (RLA) ausführt, der vorzeitig beendet wird.“ Ich konnte die genaue Bedeutung dieser Aussage nicht verstehen.

Kommt es nach der Aktivierung des Schreibcaches zu Daten-/Dateibeschädigungen, auch wenn zum Zeitpunkt des Stromausfalls kein Datenschreibvorgang stattfindet?

Antwort1

Moderne Dateisysteme (XFS, ZFS, JFS, ext4, APFS, NTFS usw.) verwenden alle Journaling. Daher gehen zwar einige Daten verloren (die neuesten Commits und noch nicht committete und im Cache gespeicherte Daten, das ist offensichtlich), es kommt jedoch nicht zu einer Beschädigung der Daten.

Hier ist eine interessante Lektüre mit vielen Diagrammen und ausführlichen Erklärungen zu IBMs JFS. Der gesamte Inhalt des Artikels ist zu 100 % auch für die anderen Journaling-Dateisysteme relevant:

https://www.ibm.com/docs/en/aix/7.2?topic=types-journaled-file-system-jfs

So oder so … Sie müssen Backups durchführen! Dabei sollten Sie die sogenannte „3-2-2-Backup-Regel“ befolgen.

https://www.starwindsoftware.com/blog/3-2-1-backup-strategy-why-your-data-always-survives

Hoffe, das hat geholfen!

Antwort2

Kurzfassung:nein, bei Verwendung einer modernen SATA-Festplatte und eines Journal-Dateisystems ist es nicht möglich, bestätigte (d. h. synchronisierte) Schreibvorgänge zu beschädigen, selbst wenn der Festplattencache aktiviert ist. Auf der anderen Seite können nicht synchronisierte (gepufferte) Schreibvorgänge im Falle eines Stromausfalls verloren gehen/beschädigt werden. Der von Ihnen verlinkte Artikel handelt jedoch von einemSpezifisches Firmware-Problemund spricht nicht über das allgemeine Verhalten bei der Verwendung des Festplattencaches:

Während der Durchführung von erweiterten FestplattentestsEs wurde ein latentes Firmware-Problem entdeckt.

Lange Antwort:Es können zwei Arten von Schreibvorgängen ausgeführt werden:

  • synchrone Schreibvorgänge, die durch die Nutzung von ATA-FLUSHes oder FUAs Persistenz (und Reihenfolge) garantieren;
  • nicht synchronisierte (gepufferte) Schreibvorgänge, die vom Festplatten-DRAM-Cache zwischengespeichert, aggregiert und neu geordnet werden können.

Bei Festplattenlaufwerken und SSDs für Verbraucher sind synchrone Schreibvorgänge sehr langsam: Der Vorgang des Leerens eines einzelnen Schreibvorgangs bedeutet, dass die Latenz pro IO bei jedem einzelnen Schreibvorgang bezahlt wird. Daher sind synchrone Schreibvorgänge im Allgemeinen für die wichtigsten IOs reserviert: Journal-Commit, Datenbanken, E-Mail-Zustellung usw. Alle anderen weniger wichtigen Schreibvorgänge (z. B. eine Kopie einer Benutzerdatei) werden als zwischengespeicherte/gepufferte Schreibvorgänge ausgegeben und Daten gehen verloren, wenn im richtigen Moment ein Stromausfall auftritt (bis zu 30–60 Sekunden nach dem ursprünglichen Schreibvorgang).

Beachten Sie, dass alte PATA- und SATA-Laufwerke das Betriebssystem belogen, indem sie vorgaben, Synchronisierungen zu respektieren, während sie in Wirklichkeit das erforderliche Leerungsverhalten ignorierten. Dies führte zu dem Vorschlag, den DRAM-Cache der Festplatte vollständig zu deaktivieren (oder ihn in den Nur-Lese-Modus zu versetzen), sodass alle geschriebenen Daten tatsächlich auf den (langlebigen) Festplatten gespeichert wurden. Eine Festplatte mit deaktiviertem Cache behandelt jeden Schreibvorgang effektiv als Synchronisierung und bietet maximale Sicherheit bei hohen Leistungseinbußen.

Bitte beachten Sie, dass diesnichtbedeutet, dass gepufferte Schreibvorgänge nicht verloren gehen können: Wenn ein Absturz auftritt, bevor das Betriebssystem seine Puffer geleert hat, gehen alle nicht synchronisierten Daten verloren. Aus diesem Grund und in Anbetracht der Tatsache, dass moderne Festplatten (nach 2008) ATA FLUSHes oder (nach 2015) FUAs akzeptieren, lautet die derzeitige allgemeine Empfehlung, den Festplattencache aktiviert zu lassen und sich darauf zu verlassen, dass das Betriebssystem wichtige Schreibvorgänge löscht.

SSDs und HW-RAID-Karten mit StromausfallschutzVermeiden Sie diesen Kompromiss zwischen Leistung und Sicherheit, indem Sie integrierte Schaltkreise verwenden, umbeliebigSchreibvorgänge (auch synchronisierte). Wie der Festplattencache verwaltet wird, hängt bei Verwendung einer HW-RAID-Karte von der Implementierung ab (z. B.: PERC deaktiviert ihn für SAS-Festplatten, aber nicht für SATA-Festplatten).

verwandte Informationen