# 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: ```bash # 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: ```bash 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: ```bash 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: ```bash sudo journalctl -u zfs-spindown.service -f ``` ### Passiver Status-Check Wenn du wissen willst, welche Platten aktuell schlafen, ohne sie durch die Abfrage aufzuwecken: ```bash 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. 1. `/etc/smartd.conf` öffnen: ```bash sudo nano /etc/smartd.conf ``` 2. Die Zeile `DEVICESCAN` suchen und um den Parameter `-n standby,q` ergänzen: ```text DEVICESCAN -d removable -n standby,q -m root -M exec /usr/share/smartmontools/smartd-runner ``` 3. SMART-Daemon neu starten: ```bash 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!