Wir haben eine Gruppe von Consumer-Terminals, auf denen Linux, ein lokaler Webserver und PostgreSQL installiert sind. Wir erhalten Erfahrungsberichte über Maschinen mit Problemen und nach einer Untersuchung scheint es, als ob ein Stromausfall aufgetreten ist und jetzt stimmt etwas mit der Festplatte nicht.
Ich war davon ausgegangen, dass das Problem nur darin besteht, dass die Datenbank beschädigt wird oder dass Dateien mit den letzten Änderungen verschlüsselt werden, aber es gibt auch andere seltsame Berichte.
- Dateien mit den falschen Berechtigungen
- Dateien, die zu Verzeichnissen geworden sind (z. B.
index.php
ist jetzt ein Verzeichnis) - Verzeichnisse, die zu Dateien geworden sind
- Dateien mit verschlüsselten Daten
Es gibt Probleme mit der Datenbank, die beschädigt werden, aber das ist etwas, was ich erwarten könnte. Was mich mehr überrascht, sind die grundlegenderen Probleme mit dem Dateisystem - zum Beispiel Berechtigungen oder das Ändern einer Datei in ein Verzeichnis. Die Probleme treten auch in Dateien auf, die in letzter Zeit nicht geändert wurden (z. B. der Softwarecode und die Konfiguration).
Ist das "normal" für SSD-Korruption? Ursprünglich dachten wir, dass dies bei einigen billigen SSDs der Fall ist, aber wir haben dies bei einer bekannten Marke (Consumer Grade).
FWIW, wir machen kein autofsck beim unsauberen Booten (weiß nicht warum - ich bin neu). Wir haben USVs an einigen Orten installiert, aber manchmal funktioniert das nicht richtig usw. Dies sollte behoben werden, aber selbst dann können die Leute das Terminal unsauber herunterfahren usw. - es ist also nicht narrensicher. Das Dateisystem ist ext4.
Die Frage: Gibt es irgendetwas, was wir tun können, um das Problem auf Systemebene zu mindern?
Ich habe einige Artikel gefunden, die sich auf das Deaktivieren des Hardware-Caches oder das Aktivieren des Laufwerks im Synchronisierungsmodus beziehen, bin mir jedoch nicht sicher, ob dies in diesem Fall hilfreich sein könnte (Beschädigung von Metadaten und nicht zuletzt vorgenommene Änderungen). Ich habe auch eine Referenz zum Mounten des Dateisystems im schreibgeschützten Modus gelesen. Wir können das nicht tun, weil wir schreiben müssen, aber wir könnten eine schreibgeschützte Partition für den Code und die Konfiguration erstellen, wenn das helfen würde.
Dies ist ein Beispiel für ein Laufwerk sudo hdparm -i /dev/sda1
:
Model=KINGSTON RBU-SMS151S364GG, FwRev=S9FM02.5, SerialNo=<deleted>
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=125045424
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
WriteCache=enabled
. Das ist ein großes Problem. Der Schreibcache sollte niemals auf Festplatten mit einer Datenbank aktiviert werden. Einige Hersteller, beispielsweise HP, verhindern aus diesem Grund das Aktivieren des Schreibcaches für Festplatten.