ZFS Disk Spindown Watchdog für Debian 13
Dieses Projekt löst das Problem, dass Festplatten in einem ZFS-Pool (insbesondere Enterprise-Platten wie die Western Digital Gold Serie) wegen des permanenten Metadaten-Grundrauschens von ZFS nicht automatisch in den Stromsparmodus (Spindown) wechseln.
Anstatt auf den unzuverlässigen, internen Hardware-Timer der Festplatten zu setzen, überwacht das Watchdog-Script die tatsächlichen Lese- und Schreibsektoren über den Linux-Kernel (/proc/diskstats). Herrscht 10 Minuten lang absolute Funkstille auf einer Platte, wird der Standby-Befehl aktiv erzwungen.
Features
- Massive Stromersparnis: Senkt den Idle-Verbrauch (z.B. bei 5 x WD Gold von ~55W auf ~27W).
- Sicherer Lese-/Schreibschutz: Jede echte Aktivität (egal ob Daten gelesen oder geschrieben werden) setzt den Timer sofort zurück. Kein verfrühtes Einschlafen während Daten fließen!
- Volle Transparenz: Alle Aktivitäten und Spindown-Befehle werden direkt in das System-Journal (
journalctl) geloggt. - Hardware-Optimiert: Deaktiviert die fehleranfälligen Hardware-Timer der Festplatten beim Booten, um Konflikte zu vermeiden.
Installation & Einrichtung
Befolge diese Schritte nacheinander auf deinem Debian 13 Server. Alle Befehle müssen als root oder mit sudo ausgeführt werden.
1. Scripte platzieren und ausführbar machen
Kopiere die beiden Bash-Scripte in das Verzeichnis für lokale Binärdateien und setze die Ausführungsrechte:
# Kopieren
sudo cp set-hdd-power.sh /usr/local/bin/
sudo cp zfs-spindown.sh /usr/local/bin/
# Ausführbar machen
sudo chmod +x /usr/local/bin/set-hdd-power.sh
sudo chmod +x /usr/local/bin/zfs-spindown.sh
(Hinweis: Prüfe vorab in der zfs-spindown.sh, ob die Festplatten-Buchstaben und die IDLE_TIME für dein System passen.)
2. systemd-Service einrichten
Kopiere die Service-Konfigurationsdatei in das systemd-Verzeichnis:
sudo cp zfs-spindown.service /etc/systemd/system/
(Der Service führt das Boot-Script set-hdd-power.sh automatisch vor dem eigentlichen Watchdog-Script aus.)
Dienst starten & Überwachen
Lade den systemd-Manager neu, aktiviere den Dienst für den automatischen Start bei jedem Boot und starte ihn jetzt:
sudo systemctl daemon-reload
sudo systemctl enable zfs-spindown.service
sudo systemctl start zfs-spindown.service
Live-Logs einsehen
Um zu beobachten, was der Watchdog tut und welche Festplatte eventuell gerade geweckt oder schlafen gelegt wurde, nutze diesen Befehl:
sudo journalctl -u zfs-spindown.service -f
Passiver Status-Check
Wenn du wissen willst, welche Platten aktuell schlafen, ohne sie durch die Abfrage aufzuwecken:
sudo hdparm -C /dev/sd[a-e]
Wichtige Zusatzkonfiguration für ZFS (smartd)
Sollte eine Festplatte trotz des Scripts alle 30 Minuten grundlos aufwachen, liegt das meist an den Standardabfragen des SMART-Daemons.
/etc/smartd.conföffnen:sudo nano /etc/smartd.conf- Die Zeile
DEVICESCANsuchen und um den Parameter-n standby,qergänzen:
DEVICESCAN -d removable -n standby,q -m root -M exec /usr/share/smartmontools/smartd-runner
- SMART-Daemon neu starten:
sudo systemctl restart smartmontools
Lizenz: Do What The Fuck You Want To Public License (WTFPL) – Viel Spaß beim Stromsparen! 🪙📉 / Wenn deine Festplatten explodieren wegen dem Script, sorry!