SMART hat auf einer meiner Festplatten einen nicht behebbaren Lesefehler festgestellt, zpool status
listet aber alle Festplatten als ONLINE auf (d. h. nicht DEGRADED).
- Wissen Sie, woran das liegen könnte? Ich dachte, ZFS würde über alle Fehler sofort informiert, sobald jemand davon erfährt ...
- Muss ich einen Scrub ausführen, um den Status aller Datenträger erneut zu prüfen?
- Kann ich SMART irgendwie automatisch an ZFS berichten lassen?
Antwort1
- Wissen Sie, woran das liegen könnte? Ich dachte, ZFS würde über alle Fehler sofort informiert, sobald jemand davon erfährt ...
- Muss ich einen Scrub ausführen, um den Status aller Datenträger erneut zu prüfen?
- Kann ich SMART irgendwie automatisch an ZFS berichten lassen?
- Nein, es prüft nicht ständig alle Blöcke, es stellt nur sicher, dass jeder geschriebene Block berücksichtigt (und wiederhergestellt, wenn Redundanz vorhanden ist) werden kann, sobald er benötigt/auf ihn zugegriffen wird. Leerer Speicherplatz wird überhaupt nicht geprüft (weil Sie dort keine wertvollen Daten haben, es wäre also Zeitverschwendung) und normale Daten werden nur geprüft, wenn sie gelesen werden (da das Schreiben nur angehängt werden kann). Wie mmusante richtig sagte, erhalten Sie nur Fehlermeldungen, wenn der Fehler kritisch ist und nicht automatisch behoben werden kann (sonst sehen Sie nur eine Benachrichtigung und die Fehlerzählung erfolgt
zpool status
). - Ja.
Es kann einfacher sein, den Pool regelmäßig (über Cronjob) zu bereinigen. Die empfohlenen Intervalle sind etwa einmal im Monat für Festplatten in Unternehmensqualität und einmal pro Woche für Festplatten auf Verbraucherebene. Andernfalls können Sie ein manuelles Bereinigen mit einemSkript von Smartmontools:
Meistens müssen Sie nur ein Skript in /etc/smartmontools/run.d/ platzieren. Immer wenn smartd einen Bericht senden möchte, führt es smart-runner aus und dieser führt Ihr Skript aus.
Für Ihr Skript stehen Ihnen mehrere Variablen zur Verfügung (siehe auch hier die Manpage von smartd). Diese stammen aus einem Testlauf:
SMARTD_MAILER=/usr/share/smartmontools/smartd-runner SMARTD_SUBJECT=SMART error (EmailTest) detected on host: XXXXX SMARTD_ADDRESS=root SMARTD_TFIRSTEPOCH=1267409738 SMARTD_FAILTYPE=EmailTest SMARTD_TFIRST=Sun Feb 28 21:45:38 2010 VET SMARTD_DEVICE=/dev/sda SMARTD_DEVICETYPE=sat SMARTD_DEVICESTRING=/dev/sda SMARTD_FULLMESSAGE=This email was generated by the smartd daemon running on: SMARTD_MESSAGE=TEST EMAIL from smartd for device: /dev/sda
Ihr Skript stellt auch eine temporäre Kopie des Berichts als „$1“ zur Verfügung. Diese wird nach Abschluss gelöscht, aber derselbe Inhalt wird in /var/log/syslog geschrieben.
Sie müssen dann nur den Gerätenamen Ihrem Pool zuordnen (Sie können ihn analysieren
zpool status
).