Hallo Forum, ich habe hier einen Linux-Server Ubuntu 22.04.3 LTS laufen. Darin werkeln 4 Festplatten welche aus Stromspargründen und Wärme in Standby oder Sleep geschickt werden sollen. Das habe ich bislang mit hdparm gemacht. Einfach beim starten mit -S die Spindownzeit eingestellt. Das ganze hat super funktioniert bis ich letztens die grafische Oberfläche brauchte. Zuvor habe ich alles über die Konsole erledigen können. Deshalb habe ich lightdm, ubuntu-desktop, kde-plasma-desktop und konqueror installiert. Hat auch funktioniert, bis auf das Schlafen der Festplatten. Also hab ich dann kurzerhand alles wieder deinstalliert. Das Verhalten ist leider immer noch nicht zum Ursprung zurückgekehrt. Und zwar ist das jetzt so: wenn ich die Platten per Hand (hdparm -y) herunterfahre, bleiben sie auch aus, bis jemand wirklich darauf zu greift. Allerdings gehen sie nach der eingestellten Spindownzeit nicht von allein wieder aus. Auch mehrfaches schreiben der Zeit (hdparm -S 60) hat keinen Effekt. Was könnte das sein? Wie kann ich rausfallen, wer hier das Schlafen verhindert? Gibt es andere Tools außer hdparm?
Linux Server mit grafischer Oberfläche? Sowas gibt es doch eigentlich nur bei den Windows-Power-Administratoren 😂😂😂
Falls systemd direkt auf /sys/block/sda schreibt, brauchst du einen Hellseher mit magischen Fähigkeiten. Ein normaler Mensch blickt da nicht mehr durch.
Also hab ich dann kurzerhand alles wieder deinstalliert. Das Verhalten ist leider immer noch nicht zum Ursprung zurückgekehrt.
Weil damit leider nicht alles weg ist. Du hast Dir damit ein paar Updates und systemd Services eingefangen.
Hast du mit "apt-get remove" oder mit "apt-get purge", bzw. "apt-get autoremove" / "apt-get autopurge" deinstalliert?
Nur die purge varianten entfernen auch die Configs, vielleicht geistert da noch eine rum. Im Internet findet man das hier zum endgültig purgen:
1 |
|
Es gibt auch irgend einen speziellen Query den man "apt-get purge" direkt mitgeben könnte, aber den hab ich vergessen.
Vielleicht findest du auch in /usr/lib/udev/rules.d/ oder /etc/udev/rules.d/ noch was.
Vielleicht kannst du auch mit Powertop noch was einstellen / analysieren.
Hast du mit "apt-get remove" oder mit "apt-get purge", bzw. "apt-get autoremove"
Ja, mit purge und hinterher autoremove.
wenn ich mir alles mit "lsof | grep /mnt/backup" ansehe, ist hier keine Datei offen. Ist ja auch komisch, das die Platten nicht von alleine anspringen, was ja der Fall wäre, wenn irgendwer hier zyklisch zugreifen würden. Irgendwer oder was verhindert den Timer, der runterzählt. Ist dieser Timer eigentlich in Software im Linux oder läuft der in der jeweiligen Platte?
Daniel A. schrieb:
Hast du mit "apt-get remove" oder mit "apt-get purge", bzw. "apt-get autoremove"
Ja, mit purge und hinterher autoremove.
Hm, autoremove statt autopurge...
Ist dieser Timer eigentlich in Software im Linux oder läuft der in der jeweiligen Platte?
Es gibt Powersave Einstellungen im Kernel. z.B. /sys/block/sda/power/* so Sachen gibts für so ziemlich alles "find /sys -iname power". Darum auch der Verweis auf udev, damit kann man die auch setzen. Und Vermutlich kann man die auch mit sysctl (/etc/sysctl.d/) setzen.
Unter Umständen änderte ein Skript Eintragungen in einer Konfigurationsdatei, z.B. /boot/config-*-generic. Warning keep maintainers config y/n usw. wären Hinweise auf solche nicht so gängigen Herausforderungen.
Im Gnome Desktop von Debian gibt es das Programm "Laufwerke (Disks), da kann man so etwas einstellen. Funktioniert bei mir auch.
Vielleicht gibt es dieses Programm auch in Ubuntu.
z.B. /boot/config-*-generic
Ubuntu liefert normalerweise vorkompilierte Kernels.
Man kann sich natürlich die Sourcen runterladen, die /boot/config mit make oldconfig kopieren, den Kernel neu bauen und installieren, und das System neu starten, um Einstellungen zu ändern, und man kann das auch mit einem Skript automatisieren.
Aber die Wahrscheinlichkeit, das hier soetwas gemacht wurde, dürfte ziemlich genau 0 betragen.
Schau dir das mal an, vielleicht ist das bei dir da konfiguriert:
Falls systemd direkt auf /sys/block/sda schreibt, brauchst du einen Hellseher mit magischen Fähigkeiten. Ein normaler Mensch blickt da nicht mehr durch.
Naja, Du vielleicht nicht... :-)
Es gibt Powersave Einstellungen im Kernel. z.B. /sys/block/sda/power/*
Es gibt hier tatsächlich eine passende Einstellung: autosuspend_delay_ms Ich wollte das mal für eine Platte testen. Allerdings kann ich hier nicht lesen und auch nicht schreiben. sudo echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: /sys/block/sde/power/autosuspend_delay_ms: Permission denied
Was könnte das sein? Wie kann ich rausfallen, wer hier das Schlafen verhindert? Gibt es andere Tools außer hdparm?
blktrace fatrace
Schau dir das mal an, vielleicht ist das bei dir da konfiguriert:
Hier steht was, dass tatsächlich passen könnte:
5.3 Broken standby timer The udisks daemon polls S.M.A.R.T. data from drives regularly. Hard drives with a longer standby timeout than the polling interval may fail to enter standby. Drives that are already spun down are usually not affected. There seems no way to disable polling or change the interval as for udisks2 by now. See [6], [7]. However, Standby timeout applied by udisks2 seems to be unaffected. To set standby timeout via udisks, see #Apply ATA settings. Other possible workarounds could be setting the timeout below the polling interval (10 minutes)
Allerding funktioniert der Workaround leider nicht. Selbst bei 5 Sekunden Spindown macht die Platte keinen Anzeichen eines Abschaltens.
Allerdings kann ich hier nicht lesen und auch nicht schreiben. sudo echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: /sys/block/sde/power/autosuspend_delay_ms: Permission denied
sudo bezieht sich immer nur auf einen Befehl.
Du wendest sudo auf "echo 60000" an. Das Echo braucht aber keine Root-Rechte. Die Umleitung in das sysfs-device läuft mit Userrechten, bräuchte aber root.
Entweder mit "sudo -i" gleich eine root-shell starten, oder
1 |
|
Auch das funktioniert leider nicht: sudo sh -c 'echo 10000 > /sys/block/sde/power/autosuspend_delay_ms' sh: 1: echo: echo: I/O error
Entweder mit "sudo -i" gleich eine root-shell starten
root@wallie:~# echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: echo: write error: Input/output error
nee, sorry, geht auch nicht
nee, sorry, geht auch nicht
Ja, gut möglich dass das Attribut für SATA-Platten nicht existiert. Lässt sich evtl. auch nicht auslesen. Aber dann liegt's wenigstens nicht an fehlenden Root-Rechten.
root@wallie:~# echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: echo: write error: Input/output error
Dann wird die Option dort wohl einfach nicht unterstützt. Irgendwo gibt es noch Ordner für usb / sata / etc. Controller, die auch jeweils solche Einstellungen haben, vielleicht geht es da.
Mit "realpath /sys/block/sde siehst du den ganzen Pfad, mit allen Bussen un Controlern usw. drin."
Steht power/control auf auto? https://www.kernel.org/doc/Documentation/usb/power-management.txt
/sys/block/sde/power/autosuspend_delay_ms
Versuche mit sudo nano /sys/.... ob Du die Zahl über editieren ändern kannst.
Versuche mit sudo nano sys.... ob Du die Zahl über editieren ändern kannst.
Nein, geht auch nicht, kann nicht lesen und nicht schreiben.
Nein, geht auch nicht, kann nicht lesen und nicht schreiben.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
Stimmt. Das geht so nicht mehr zuzugreifen.
hd-idle funktioniert bei mir unter Kubuntu prima.
https://sourceforge.net/projects/hd-idle/
herby
Das Tool scheint zu funktionieren, habs mir mit -d Debug angesehen, zählt artig runter, wenn es keine Zugriffe gibt und schaltet dann die Platten aus. Mir ist noch nicht so ganz klar, wie man es verwendet. Läuft es automatisch im Hintergrund? Ohne root-rechte geht es nicht? Wo hast du es gestartet?
Ich habs so installiert:
apt install hd-idle /etc/default/hd-idle editieren Zeile unten einfügen: HD_IDLE_OPTS="-a /dev/sdb1 -i 900 -a /dev/sdc1 -i 900 -l /var/log/hd-idle.log systemctl start hd-idle.service systemctl enable hd-idle.service
Ab hier läuft alles im Hintergrung, auch nach Neustart.
Meine Conf-Datei hänge ich an.
Das sollte bei Ubuntu 22.04 als Paket installierbar sein. Konfiguration über /etc/default/hd-idle.
Gruß, f
ja, apt-get hab ich verwendet
Meine Conf-Datei hänge ich an.
Vielen Dank Herbert, ich werde mich da mal dransetzen und das noch eintragen. Ich hab ich versucht, die symlinks (/dev/disk/by-partuuid etc.) zu verwenden. Funktioniert auch auf Anhieb.
Danke für die Hilfe
Danke für die Rückmeldung. Freut mich, dass ich helfen konnte.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
