Festplatte in Standby nach einer Zeit stellen

bywizard

Lieutenant
Registriert
Okt. 2018
Beiträge
537
Moin ich hab in meinem kleinen Linux Debian NAS Server zwei 8TB HDD's drinnen [Seagate Ironwolf] und eine kleine SSD fürs Betriebssystem.

Ich hab nach einer Zeit gemerkt, dass sich die 2 HDD's 24/7 drehen auch wenn ich sie mal nicht brauche und habe ein bisschen gegoogelt wie ich sie in den Standby setzen könnte. Ich hab rausgefunden dass das mit hdparm geht und tlp. Jedoch wenn ich ein paar commands ausführe um mein APM_Level zu sehen und auch zu sehen in welchem "Zustand" sich die Platte befindet kriege ich folgende Probleme
Screenshot_68.png

Meine Frage ist nun: Mache ich etwas falsch, was ich persönlich auch selber glaube oder unterstützen die Platten wirklich das nicht?

EDIT: ich habe gerade den hdparm -Y command getestet welcher funktioniert und die platte sofort in den standby schickt
 
Zuletzt bearbeitet:
Kurze Antwort: Seachest Info

Manche Seagate Platten nutzen noch das alte Powersaving, und manche des neue EPS.
Seagate biete das Tool Seachest_Info an mit dem man alle EPS Parameter einstellen kann.
 
Der relevanten Parameter bei hdparm sind diesbezüglich
Code:
-S
und
Code:
-B
Ich verwende z.b.

Code:
hdparm -S 180 -B 127 /dev/sda

um die Platte nach 15 Minuten (180 Sekunden * 5) Inaktivität Schlafen zu schicken, 127 bei B sollte den Spindown ermöglichen.
hdparm ist allerdings etwas tricky, wenn man per hdparm Werte ausliest kann es sein daß die Platten wieder in die Aktivität geschickt werden. Prinzipiell führe ich das Kommando oben mehrmals am Tag via crontab aus, die Platten vergessen gerne mal die Settings.
 
Altes APM:
Code:
SeaChest_PowerControl --showAPMLevel -d /dev/sda
==========================================================================================
 SeaChest_PowerControl - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2019 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_PowerControl Version: 1.10.0-1_19_23 X86_64
 Build Date: Jun 10 2019
 Today: Sat Nov  7 16:10:35 2020
==========================================================================================

/dev/sda - ST4000VN008-2DR166 - XXXXXXXXX - ATA
Current APM Level is 128 (Minimum power consumption without Standby mode)

Neues EPC:
Code:
SeaChest_PowerControl --showEPCSettings -d /dev/sde
==========================================================================================
 SeaChest_PowerControl - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2019 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_PowerControl Version: 1.10.0-1_19_23 X86_64
 Build Date: Jun 10 2019
 Today: Sat Nov  7 16:12:24 2020
==========================================================================================

/dev/sde - ST10000NM0016-1TT101 - XXXXXXXXX - ATA
.

===EPC Settings===
    * = timer is enabled
    C column = Changeable
    S column = Saveable
    All times are in 100 milliseconds

Name       Current Timer Default Timer Saved Timer   Recovery Time C S
Idle A     *1            *1            *1            1             Y Y
Idle B     *6000         *1200         *6000         4             Y Y
Idle C      0             6000          6000         50            Y Y
Standby Z   0             9000          9000         120           Y Y
 
gaelic schrieb:
Der relevanten Parameter bei hdparm sind diesbezüglich
Code:
-S
und
Code:
-B
Ich verwende z.b.

Code:
hdparm -S 180 -B 127 /dev/sda

um die Platte nach 15 Minuten (180 Sekunden * 5) Inaktivität Schlafen zu schicken, 127 bei B sollte den Spindown ermöglichen.
hdparm ist allerdings etwas tricky, wenn man per hdparm Werte ausliest kann es sein daß die Platten wieder in die Aktivität geschickt werden. Prinzipiell führe ich das Kommando oben mehrmals am Tag via crontab aus, die Platten vergessen gerne mal die Settings.
ich kriege hierbei diesen fehler
Screenshot_69.png

gibts andere programme außer hdparm auch noch?
 
Dann würde ich wie von @cgs erwähnt mal das seachest info versuchen. Hier strickt Seagate anscheinend irgend eine eigene Lösung in der Firmware die nicht von hdparm abgedeckt wird.
 
kriege ich die software vom debian repo her oder muss ich die manuell installieren
 
hdparm unterstützt wohl nur APM, aber kein EPC.

Code:
# SeaChest_PowerControl -i -d /dev/sda | grep -i apm
        APM [Enabled]

# SeaChest_PowerControl -i -d /dev/sde | grep -i epc
        EPC [Enabled]

??? schrieb:
Gibt es eventuell ein Programm, das im Hintergrund immer wieder auf die Platten zugreift
Ja das kommt noch dazu. Dennoch sollte man aber erstmal Kontrolle über das HDD Powermanagement bekommen.
Ergänzung ()

Technische Details: https://www.seagate.com/files/docs/pdf/en-GB/whitepaper/tp608-powerchoice-tech-provides-gb.pdf
 
Zuletzt bearbeitet von einem Moderator:
Bei smartd gibt es mehrere Möglichkeiten/Strategien.
man smartd.conf

Code:
-n POWERMODE[,N][,q]
              [ATA only] This 'nocheck' Directive is used to prevent a disk from being spun-up when it is periodically polled by smartd.

              ATA disks have five different power states.  In order of increasing power consumption they are: 'OFF', 'SLEEP', 'STANDBY', 'IDLE', and 'ACTIVE'.  Typically in the OFF, SLEEP, and STANDBY modes the disk's platters are not
              spinning.  But usually, in response to SMART commands issued by smartd, the disk platters are spun up.  So if this option is not used, then a disk which is in a low-power mode may be spun up and put into  a  higher-power
              mode when it is periodically polled by smartd.

              Note  that  if the disk is in SLEEP mode when smartd is started, then it won't respond to smartd commands, and so the disk won't be registered as a device for smartd to monitor.  If a disk is in any other low-power mode,
              then the commands issued by smartd to register the disk will probably cause it to spin-up.

              The '-n' (nocheck) Directive specifies if smartd's periodic checks should still be carried out when the device is in a low-power mode.  It may be used to prevent a disk from being spun-up by periodic smartd polling.  The
              allowed values of POWERMODE are:

              never - smartd will poll (check) the device regardless of its power mode.  This may cause a disk which is spun-down to be spun-up when smartd checks it.  This is the default behavior if the '-n' Directive is not given.

              sleep - check the device unless it is in SLEEP mode.

              standby  -  check the device unless it is in SLEEP or STANDBY mode.  In these modes most disks are not spinning, so if you want to prevent a laptop disk from spinning up each time that smartd polls, this is probably what
              you want.

              idle - check the device unless it is in SLEEP, STANDBY or IDLE mode.  In the IDLE state, most disks are still spinning, so this is probably not what you want.

              Maximum number of skipped checks (in a row) can be specified by appending positive number ',N' to POWERMODE (like '-n standby,15').  After N checks are skipped in a row, powermode is ignored and the  check  is  performed
              anyway.

              When  a periodic test is skipped, smartd normally writes an informal log message.  The message can be suppressed by appending the option ',q' to POWERMODE (like '-n standby,q').  This prevents a laptop disk from spinning
              up due to this message.

              Both ',N' and ',q' can be specified together.

Ich verwende -n idle,6,q
Ergänzung ()

Man würde eigentlich denken -n sleep oder -n standby tut was man will. Aber man sollte da sehr vorsichtig mit dem IDLE_B Status der HDDs sein. IDLE_B ist head parking. Viele Platten sterben, wenn sie über x00.000 mal head parking hatten.

Also ich mache nur eine smart check wenn die Platte aktiv ist, aber spätenstens beim 6.ten mal (3 h)
 
Zuletzt bearbeitet von einem Moderator:
Ich hab dasselbe Thema gehabt...

Bei Seagate ist tatsächlich Standby_Z deaktiviert gewesen.

Lässt sich so aktivieren:

Code:
SeaChest_PowerControl -d /dev/sdc --standby_z enable

Aktueller Powermode kann so angezeigt werden:
Code:
./SeaChest_PowerControl -d /dev/sdb --checkPowerMode
 
Zurück
Oben