README.md hinzugefügt
This commit is contained in:
@@ -0,0 +1,88 @@
|
|||||||
|
# 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!
|
||||||
Reference in New Issue
Block a user