Festplatte in Standby schicken mit TLP und hdparm

Aktive Festplatten benötigen Energie, erzeugen Wärme, lassen den Lüfter laufen, verbrauchen dadurch noch mehr Energie und das meist völlig sinnlos, weil sie die meiste Zeit sowieso nicht benötigt werden. Daher sollte man Festplatten nach Möglichkeit bei Nichtgebrauch in den Standby schicken.

In heutigen NAS-Systemen arbeiten oft 2 und mehr große HDDs. Proprietäre Lösungen wie Synology oder QNAP haben daher längst Standby-Lösungen integriert. Ein normales Linux-Betriebssystem lässt die Festplatten allerdings 24/7 rotieren und erzeugt dadurch sinnlosen Energiebedarf. Nicht benötigte Festplatten sollten daher abgeschaltet werden

Voraussetzung ist dass das eigentliche System nicht auf einer der Festplatten liegt, da diese dann beständig wieder aufgeweckt werden würde und die Festplatte dadurch unnötigen Belastungen ausgesetzt wäre. Je nach Hardware kann man das eigentliche System z. B. auf eine kleine SSD installieren oder auch auf einen USB 3-Stick, der immer angeschlossen ist.

Grundsätzlich kann Linux mittels hdparm Festplatten bei Nicht-gebrauch in den Standby-Modus schicken. Hierzu ist lediglich eine Anpassung der Konfigurationsdatei /etc/hdparm.conf notwendig. Leider haben viele Distributoren die Situation verschlimmbessert indem sie die hdparm.conf ignorieren oder mit Skripten umgehen. Ubuntu und openSUSE sind hier unrühmliche Beispiele.

Eine einfache Möglichkeit das Problem zu beheben besteht in der Nutzung von TLP. Eigentlich handelt es sich dabei um eine Lösung zum Energiesparen auf Notebooks (ursprünglich sogar nur Thinkpads). Es lässt sich aber auch hervorragend auf Server- und Desktopsystemen nutzen.

Die Installation erfolgt bei vielen Distributionen direkt aus den Paketquellen. Bei openSUSE beispielsweise via:

# zypper in tlpCode-Sprache: PHP (php)

Anschließend muss die Konfiguration angepasst werden. Dies geschieht abhängig von der Distribution über über die Datei /etc/default/tlp oder /etc/tlp.conf

Folgender Abschnitt ist dabei von Interesse:

# Disk devices; separate multiple devices with spaces. 
# Devices can be specified by disk ID also (lookup with: tlp diskid). 
# Note: DISK parameters below are effective only when this option is configured. 
# Default: "nvme0n1 sda" 
 
#DISK_DEVICES="nvme0n1 sda" 
 
# Disk advanced power management level: 1..254, 255 (max saving, min, off). 
# Levels 1..127 may spin down the disk; 255 allowable on most drives. 
# Separate values for multiple disks with spaces. Use the special value 'keep' 
# to keep the hardware default for the particular disk. 
# Default: 254 (AC), 128 (BAT) 
 
#DISK_APM_LEVEL_ON_AC="254 254" 
#DISK_APM_LEVEL_ON_BAT="128 128" 
 
# Hard disk spin down timeout: 
#   0:        spin down disabled 
#   1..240:   timeouts from 5s to 20min (in units of 5s) 
#   241..251: timeouts from 30min to 5.5 hours (in units of 30min) 
# See 'man hdparm' for details. 
# Separate values for multiple disks with spaces. Use the special value 'keep' 
# to keep the hardware default for the particular disk. 
# Default: <none> 
 
#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0" 
#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"Code-Sprache: PHP (php)

Unter DISK_DEVICES legt man fest welche Festplatten betroffen sein sollten. Im obigen Beispiel lediglich sda. Man könnte hier aber auch mehre Festplatten mit Leerzeichen getrennt angegeben.

Im zweiten Abschnitt legt man den APM-Level fest. Bei mehr als einer angegebenen Festplatte müssen die Werte nun ebenfalls für jede Platte angegeben und mit Leerzeichen getrennt werden. Viele Distributionen nehmen hier 254, was aber ein Abschalten verhindert. Hier muss man ein bisschen experimentieren, da das Verhalten je nach Festplatten-Modell unterschiedlich sein kann. Bei 128 (was oft auch für Notebooks verwendet wird) habe ich bei meinen WD Red Modellen gute Erfahrungen gemacht.

Der dritte Abschnitte steuert die Zeit, nach der die Festplatte ohne Zugriffe abgeschaltet werden. Die im Beispiel aufgeführten 120 bedeutet 10 Minuten. Der Wert ist ebenfalls für jede Platte anzugeben.

Abschließend aktiviert und startet man den Dienst:

# systemctl enable tlp
# systemctl start tlpCode-Sprache: PHP (php)

Mittels des folgenden Kommandos kann man überprüfen ob die Festplatte wie gewünscht in den Standby geht.

# hdparm -C /dev/sdaCode-Sprache: PHP (php)

Folgende Ausgabe erscheint wenn die Festplatte korrekt in den Standby geht:

/dev/sda:  drive state is:  standby

Kommt hingegen folgende Ausgabe ist die Festplatte aktiv:

/dev/sda:  drive state is:  active/id
Cruiz
Cruizhttps://curius.de
Moin, meine Name ist Gerrit und ich betreibe diesen Blog seit 2014. Der Schutz der digitalen Identität, die einen immer größeren Raum unseres Ichs einnimmt ist mir ein Herzensanliegen, das ich versuche tagtäglich im Spannungsfeld digitaler Teilhabe und Sicherheit umzusetzen. Die Tipps, Anleitungen, Kommentare und Gedanken hier entspringen den alltäglichen Erfahrungen.

Kommentieren Sie den Artikel

Ergänzungen dienen der Diskussion über die Inhalte des Artikels. Nachfragen, Anmerkungen und Ergänzungen sind dezidiert erwünscht. Ergänzungen werden vor der Veröffentlichung moderiert. Wir behalten uns vor Kommentare ohne inhaltlichen Bezug oder abseitige Diskussionen nicht zu veröffentlichen.

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Weitere Artikel