Das root-Dateisystem und auch die Datenpartitionen sind redundant, trotzdem bin ich am Zustand der Festplatten interessiert. Die S.M.A.R.T.–Daten sind da hilfreich und ausserdem lassen sich so Selbsttests initieren.
Ob SMART wirklich funktioniert hängt jedoch von einigen Komponenten ab. Mit RAID-Karten ist es besonders schwierig, nur wenige Modelle werden unterstützt. Selbst ohne RAID-Karten gibt es einiges zu beachten:
- SCSI und SAS sollte immer funktioneren
- PATA sowie externe USB-Laufwerke werden funktionieren nicht
- SATA funktioniert, zumindest wenn im BIOS der AHCI-Modus aktiviert ist
Ich benutze SATA-Festplatten an einem AHCI-komptiblen Kontroller und so funktioniert die Abfrage auch tatsächlich. Dies aber auch erst, wenn der zu nutzende Treiber angegeben wird und auch dann gibt es mit jeder Abfrage eine Fehlermeldung im Logfile.
Installation
Nach dem Herunterladen und auspacken der smartmontools-5.39.1 braucht es nur wenige Befehle:
./configure --prefix=/usr/local --sysconfdir=/etc
make -j5
pfexec make install
Testen
$ pfexec /usr/local/sbin/smartctl -a -d sat,12 /dev/rdsk/c6t2d0p0
smartctl 5.39.1 2010-01-28 r3054 [i386-pc-solaris2.11] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: WDC WD20EARS-00MVWB0
Serial Number: WD-WMAZ20118035
Aktivieren von smartd
Für eine ständige Überwachung und regelmässiges Prüfen der HDs ist smartd zuständig. Leider gibt es für Opensolaris kein passendes init-Script, aber für svc ist schnell eine passende Konfiguration vorbereitet.
Diese Datei speichern unter /var/svc/manifest/site/smartd.xml
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <service_bundle type="manifest" name="smartd"> <service name="site/smartd" type="service" version="1"> <single_instance/> <dependency name="filesystem-local" grouping="require_all" restart_on="none" type="service"> <service_fmri value="svc:/system/filesystem/local:default"/> </dependency> <exec_method type="method" name="start" exec="/usr/local/sbin/smartd" timeout_seconds="30"> </exec_method> <exec_method type="method" name="stop" exec=":kill" timeout_seconds="60"> </exec_method> <instance name="default" enabled="false" /> <stability value="Unstable" /> <template> <common_name> <loctext xml:lang="C"> Zabbix monitoring agent </loctext> </common_name> <documentation> <manpage title="smartd" section="1M" manpath="/usr/man"/> </documentation> </template> </service> </service_bundle>
Nun diese Datei importieren und auch gleich den neuen Service aktivieren.
pfexec svccfg -v import /var/svc/manifest/site/smartd.xml
pfexec svcadm enable smartd
Konfiguration
Ich empfehle die Zeile „DEVICESCAN“ in /etc/smartd.conf zu deaktivieren und dafür für jede Festplatte eine entsprechende Zeile einzufügen
/dev/rdsk/c6t0d0p0 -d sat,12 -a -o on -S on -s (S/../.././02|L/../../6/03)
/dev/rdsk/c6t2d0p0 -d sat,12 -a -o on -S on -s (S/../.././02|L/../../6/03)
/dev/rdsk/c6t3d0p0 -d sat,12 -a -o on -S on -s (S/../.././02|L/../../6/03)
/dev/rdsk/c6t4d0p0 -d sat,12 -a -o on -S on -s (S/../.././02|L/../../6/03)
/dev/rdsk/c6t5d0p0 -d sat,12 -a -o on -S on -s (S/../.././02|L/../../6/03)
Durch diese Konfiguration werden regelmässig Selbsttests durchgeführt.