Datenschutz im digitalen Alltag

Damit Privates privat bleibt

Festplatte

Festplatten 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 tlp

Anschließend muss die Konfiguration angepasst werden. Dies geschieht über die Datei /etc/default/tlp.

Folgender Abschnitt ist dabei von Interesse:

# Disk devices; separate multiple devices with spaces (default: sda).
# Devices can be specified by disk ID also (lookup with: tlp diskid).
DISK_DEVICES="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.
DISK_APM_LEVEL_ON_AC="128"
DISK_APM_LEVEL_ON_BAT="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.
DISK_SPINDOWN_TIMEOUT_ON_AC="120"
DISK_SPINDOWN_TIMEOUT_ON_BAT="120"

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 tlp

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

# hdparm -C /dev/sda

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

Bilder:

Einleitungs- und Beitragsbild von FreePhotosART via pixabay

"

Tags: Linux, Ubuntu, openSUSE, Home Server, Energiesparen, hdparm, TLP

Ergänzungen zum Artikel

Weitere Informationen können den Nutzungsbedingungen entnommen werden.

Hi,
du schreibst: "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."

Weißt du zufällig auf welche bzw. ab welcher Ubuntu-Version dies zutrifft? Ich nutze auf einem Rechner die 16.04. Hier scheinen die Einstellungen aus hdparm.conf noch zu greifen.

MfG
Tronde

Gerrit
Konkret getestet habe ich mit Ubuntu 18.04. "Irgendwo" stellt Ubuntu einen APM-Level von 254 ein, was den Standby blockiert. Die hdparm.conf enthält die Einstellung nicht. Eine Recherche ergab nur, dass das wohl ein bekanntes Problem ist. Ubuntu wollte damit vor Jahren mal den "Festplatten-Bug" beheben.
Tom
Hallo!
Wird tlp nach einem Reboot auch wieder gestartet? Oder muss man
# systemctl enable tlp
# systemctl start tlp
immer neu ausführen?

Ach ja, statt /dev/sda wäre es wahrscheinlich besser die Festplatten mit /dev/disk/by-uuid/
oder ähnlichem anzusprechen. Denn die Zuordnung sdX kann sich ändern.

Gruß
Tom

Gerrit
Es ist ein systemd-Service. Wenn man die aktiviert werden die natürlich immer gestartet.

Wieso sollte sich die Zuordnung ändern?

Tom
Hallo,
Wenn man mal was umsteckt oder bei einem BIOS Update. Es kommt selten vor, aber mit der UUID ist man auf der sicheren Seite.
Auch die fstab verwendet ja schon länger die UUIDs statt sdX.

linrunner
> Man könnte hier aber auch mehre Festplatten mit Kommata getrennt angegeben.

Könnte man. Aber in deinem Ausschnitt der Konfiguration steht, dass man mit Leerzeichen trennen muss.

> systemctl enable tlp
> systemctl start tlp
Falsch. Die offizielle Dokumentation erwähnt nirgend diese Befehle. Vielmehr ist tlp start der richtige Weg um neue Einstellungen zu aktivieren.


Gerrit
Zitat :
Könnte man. Aber in deinem Ausschnitt der Konfiguration steht, dass man mit Leerzeichen trennen muss.

Stimmt, da war ich gedanklich woanders.

Zitat :
Falsch. Die offizielle Dokumentation erwähnt nirgend diese Befehle. Vielmehr ist tlp start der richtige Weg um neue Einstellungen zu aktivieren.

Also ich kann das finden: https://linrunner.de/en/tlp/docs/tlp-developer-documentation.html

linrunner
Das ist keine Endbenutzerdoku, die Befehle finden sich auch dort nicht in der angegebenen Form und der Zweck um den es dort geht ist ein anderer (Installation aus den Quellen).

Wie es geht steht u.a. hier:
* https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html#tlp
* https://linrunner.de/en/tlp/docs/tlp-configuration.html
In der deutschen Dok analog.

Sorry, wenn es kleinlich klingt. Es ist mir als Autor wichtig, dass im WWW falsche Lösungennicht noch weitergegeben werden.

5000 Buchstaben übrig


  • Betriebssystem wählen

    Das Betriebssystem mit dem Desktoprechner, Notebooks und Mobilgeräte wie Smartphones und Tablets betrieben werden, dient einerseits als Grundlage jeder weiteren Weiterlesen
  • Daten verschlüsseln

    Verschlüsselung von Daten ist eine der wichtigen Erstmaßnahmen um Datenabfluss zu vermeiden. Externe Festplatten oder Speichermedien kann man verlieren, Notebooks Weiterlesen
  • Kommunikation schützen

    Im Zuge der Digitalisierung haben sich auch die Kommunikations-Kanäle vervielfältigt. Videotelefonie, Instant Messenger, sowohl für den Desktop, als auch im Weiterlesen
  • Anonymisierung

    Anonymität gehört im Zeitalter von Werbetracking und Bestandsdatenabfragen der Vergangenheit an. Mit einigen speziellen Programmen wie TOR oder spezialisierten Systemen Weiterlesen
  • 1