
Ich habe eine Festplatte, die nach 30 oder 60 Minuten automatisch in den Standby-Modus gehen soll.
Ich habe es versucht (3 Minuten zum Testen):
# hdparm -S 36 /dev/sda
/dev/sda:
setting standby to 36 (3 minutes)
Und es funktionierte nicht, selbst wenn es länger als 5 Minuten keinen Zugriff gab. Jetzt dachte ich an einen Prozess, der auf Daten zugreift, also testete ich
# hdparm -y /dev/sda
/dev/sda:
issuing standby command
Das Laufwerk ging in den Standby-Modus und schlief weiter, wie Sie mit nachschlagen können
# hdparm -C /dev/sda;date
/dev/sda:
drive state is: standby
Das Berühren einer Datei im Einhängepunkt hat diesen wie erwartet aufgeweckt.
Warum funktioniert der automatische Ruhezustand nicht? Soweit ich verstanden habe, sollte er die Festplatte sogar unabhängig vom Betriebssystem abschalten, solange kein Zugriff darauf erfolgt.
Antwort1
ich verwende Ubuntu 18.04 und hatte dasselbe Problem. Dank der Antwort von @allo habe ich herausgefunden, dass dies smartd
tatsächlich die Ursache ist.
standardmäßig /etc/smartd.conf
ist es wie folgt konfiguriert:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
Dadurch werden alle Laufwerke automatisch gescannt und in regelmäßigen Abständen (Standard 30 Minuten, änderbar) abgefragt (dieser Vorgang fährt die Festplatte hoch). Obwohl -n standby
SmartD mit diesem Teil heruntergefahrene Festplatten überspringt, besteht das Problem darin: Wenn das Abfrageintervall von SmartD kürzer ist als die „Herunterfahren nach“-Zeit der Festplatte, fragt SmartD die Festplatte IMMER ab, BEVOR sie die Möglichkeit zum Herunterfahren hat, sodass die Festplatte nie in den Standby-Modus wechselt.
Wenn das „Spindown-Timeout“ der Festplatte kürzer ist als das Abfrageintervall von Smartd, wird die Festplatte vor der Abfrage von Smartd heruntergefahren. Danach überspringt Smartd diese Festplatte und fährt sie nicht hoch. Wenn die Festplatte (manuell) durch andere Tools wie heruntergefahren wird hd-idle
, wird Smartd sie ebenfalls überspringen.
Eine Möglichkeit, das SmartD-Abfrageintervall zu verlängern, besteht darin, diese Zeile zu bearbeiten /etc/default/smartmontools
:
smartd_opts="--interval=1800"
1800 sind 30 Minuten, also beispielsweise 10800 (3 Stunden), das ist lang genug. Und vergessen Sie nicht, sie neu zu starten:
systemctl restart smartd smartmontools
Antwort2
Das eigentliche Problem bestand darin smartd
, dass die Werte des Gerätes regelmäßig überprüft wurden, auch wenn es sich im Standby-Modus befand.
Ich habe es gelöst, indem ich es deaktiviert und von Zeit zu Zeit smartd
Tests damit ausgeführt habe .smartctl
Antwort3
Beachten Sie, dass einige Laufwerke diese Funktion nicht implementieren, selbst wenn der Befehl erfolgreich ist. Möglicherweise müssen Sie auch dieErweitertes EnergiemanagementLevel auf 127 oder weniger mit hdparm -B 127 /dev/sda
. Aus der Manpage:
-B Abrufen/Festlegen der Funktion „Erweiterte Energieverwaltung“ ... Werte von 1 bis 127 (die Spindown zulassen) und Werte von 128 bis 254 (die Spindown nicht zulassen).
Wenn alles fehlschlägt, können Sie ein kleines Skript schreiben, das die Anzahl der Lese-/Schreibvorgänge auf dem Gerät abfragt /proc/diskstats
und /sys/block/sda/stat
das Laufwerk explizit in den Standby-Modus versetzt, wenn sich die Anzahl über mehrere Minuten nicht ändert. Weitere Informationen finden Sie imhd-leerlaufDienstprogramm.