ZFS aktiviert den Schreibcache bei Poolgeräten und führt das Cache-Flushing bei einer Unterbrechung der Systemstromversorgung sicher durch. Eine Power-on-Reset-Bedingung kann jedoch potenziell auftreten, während noch keine Daten stabil gespeichert wurden.
Bei einer Umgebung ohne einzelne Fehlerquelle wird diese Situation automatisch erkannt und von ZFS korrigiert, wenn die Daten das nächste Mal gelesen werden. Ein routinemäßiges Scrubbing des Pools kann das Erkennen und Instandsetzen von verlorenen Schreibvorgänge verbessern.
Bei einer Umgebung mit einer einzelnen Fehlerquelle könnte dieses Problem zu einem Datenverlust führen.
Dieses Problem kann auch häufiger auftreten, wenn auf LUNs zugegriffen wird, die aus einer geclusterten Umgebung exportiert werden. Während des Cluster-Failovers können Daten, die von der fehlerhaften Seite gecacht werden, aufgrund eines Power-on-Reset-Ereignisses verloren gehen, das explizit von dem SCSI-Ziel auf der verbleibenden Seite gesendet wird. In diesem Fall können selbst Pools ohne einzelne Fehlerquelle betroffen sein.
Ein Symptom für dieses Problem sind Gruppen von persistenten Prüfsummenfehlern. Anhand der Ausgabe von fmdump –eV können Sie bestimmen, ob die Prüfsummenfehler als persistent diagnostiziert wurden. Der Eintrag zio_txg in der Ausgabe fmdump –eV stellt die Zeit dar, bei der ein Datenblock geschrieben wird. Ein Muster von persistenten Prüfsummenfehlern könnte auch ein Symptom für fehlerhafte Geräte, Software oder Hardware sein.
Problemumgehung: Bei Systemen, die sich auf LUNs verlassen, die aus einem Cluster oder Systemen mit einer einzelnen Fehlerquelle exportiert wurden, sollten Sie den Schreibcache für Geräte auf einem System deaktivieren.
Führen Sie die folgenden Schritte aus, um den Schreibcache zu deaktivieren und das Cache-Flushing für SCSI-(sd)- oder FC-(ssd)-Geräte zu unterdrücken.
Kopieren Sie die Datei /kernel/drv/sd.conf oder die Datei /kernel/drv/ssd.conf in das Verzeichnis /etc/driver/drv, je nach Speichergeräten.
Bearbeiten Sie die Datei /etc/driver/drv/sd.conf oder die Datei /etc/driver/drv/ssd.conf, um den Schreibcache zu deaktivieren und das Cache-Flushing zu unterdrücken.
Fügen Sie Zeilen hinzu, um die VID-, PID- oder SUN COMSTAR-Werte durch die entsprechenden Werte zu ersetzen, die auf der sd (7D) -Manpage beschrieben werden.
SPARC-System:
sd-config-list="SUN COMSTAR","disable-cache-suppress-flush"; disable-cache-suppress-flush=1,0x40010,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1;
x64-System:
sd-config-list="SUN COMSTAR","disable-cache-suppress-flush"; disable-cache-suppress-flush=1,0x40008,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1;
Starten Sie das System neu, und setzen Sie die Fast Reboot-Option außer Kraft.
# reboot -p