[gelöst] Harddisk - Standby oder Sleepmode?

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
TomL

[gelöst] Harddisk - Standby oder Sleepmode?

Beitrag von TomL » 12.06.2016 10:57:14

Moin

Irgendwann und irgendwo im Web habe ich mal gelesen, dass die Abschalt-Zeiten der HD bis zum Standby oder Sleepmode nicht zu kurz sein dürfen, weil ansonsten die HD zu oft die Spindel abschaltet, was wiederrum für irgendwas (???) schädlich ist. Früher habe ich deshalb versucht (mehr oder weniger erfolglos), das mit hdparm zu beeinflussen. Erfolglos deshalb, weil es mir eigentlich mit keiner meiner 3 Festplatten gelungen ist, irgendwelche nachprüfbaren oder sichtbaren Effekte oder Ergebnisse zu bekommen. Bei allen Platten hatte ich den Eindruck, dass sie die hdparm-Parameter entweder ignorierten oder sehr eigenwillig interpretierten. Aus diesem Grund habe ich bei meinem jetzigen Server-Setup einfach auf hdparm verzichtet.

Tja... und jetzt läuft der Server mit den Platten ohne hdparm. Wo ist das Problem? Nur ein Gefühl.... irgendwie habe ich den Eindruck, dass die Platten heute von sich aus sehr schnell abschalten. Wenn es da keine alten Einstellungen von früher mehr gibt (?), machen die Platten das jetzt von alleine, so wie sie meinen. Aber wenn das zu häufige Abschalten der Spindel wirklich schädlich ist, würde ich dem sehr gerne mal nachgehen...ich weiss nur nicht, wo ich anfangen soll. Mein erster Gedanke war, ein kleines Script zu schreiben, was z.B. 30 Mini-Files auf die Platte "echo't", mit einem Anfangs-Abstand von 30 Minuten, dann kontinuirlich um 1 Minute reduziert. Wenn ich jeweils vorher und hinterher die Uhrzeit sichere, hatte ich gedacht, vielleicht darüber einen Hinweis zu bekommen, ob die Platte beim Schreiben abgeschaltet war oder nicht. Und wenn irgendwann zwischen 2 Schreibvorgängen keine Wartezeit war, war die Platte bereit und ich kenne die Abschaltzeit, wenn die Zeiten bei den vorherigen echo's länger war. Aber irgendwie scheint mir dieser Ansatz doch ein wenig stümperhaft.

Wie komme ich dem Problem am besten auf die Spur.... oder wie bekomme ich Erkenntnisse, ob alles gut ist oder ob ich was unternehmen muss? :roll: Ich habe mich auch mal den man-pages der smartmontools beschäftigt, aber das scheint mir hier das falsche Werkzeug zu sein. Die Platten sind ja erst mal ok, zumindest habe ich noch keine Ausfälle oder Unregelmäßigkeiten beobachtet oder festgestellt. Im Moment gehts eher darum, ob präventive Maßnahmen notwendig sind, oder ob ich einfach alles lassen kann, wie es ist.
Zuletzt geändert von TomL am 14.06.2016 17:57:31, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: Harddisk - Standby oder Sleepmode?

Beitrag von DeletedUserReAsG » 12.06.2016 11:06:14

Man kann doch mit hdparm auslesen, in welchem Zustand die Platte ist:
hdparm --help hat geschrieben:

Code: Alles auswählen

-C   Check drive power mode status
.
Beispiel:

Code: Alles auswählen

# hdparm -C /dev/sda

/dev/sda:
 drive state is:  active/idle
# hdparm -y /dev/sda

/dev/sda:
 issuing standby command
# hdparm -C /dev/sda

/dev/sda:
 drive state is:  standby
Wenn du den Verdacht hast, dass es übermäßig häufige Spindowns gibt, könntest du mit smartctl nachschauen.

TomL

Re: Harddisk - Standby oder Sleepmode?

Beitrag von TomL » 14.06.2016 12:10:08

Moin

Um erstmal überhaupt an ein paar Erkenntnisse zu gelangen, habe ich jetzt hdparm und die smartmontools installiert. Und hdparm hat mir eine Überraschung präsentiert.... nämlich die, dass die Platte überhaupt nicht abschaltet. Wie habe ich das herausgefunden....?... kleiner Job, um 3 Uhr gestartet, 90 Minuten lang jede Minute einmal auf die beiden Platten schauen. Das war das Script dazu:

Code: Alles auswählen

#!/bin/bash

logfile="/tmp/hd_chk"

d=`date +%H:%M:%S`
echo "Start test at $d" >$logfile

sda=$(/sbin/hdparm -C /dev/sda1 | grep state)
sdb=$(/sbin/hdparm -C /dev/sdb1 | grep state)
echo "$d sda=$sda   sdb=$sdb" >>$logfile

echo "Aktiviere HD, schreibe auf sda und sdb" >>$logfile
echo "$d sda=$sda   sdb=$sdb" >/media/HD_1/init.txt
echo "$d sda=$sda   sdb=$sdb" >/media/HD_2/init.txt

for ((x=0;x<90;x++))
do
    d=`date +%H:%M:%S`
    sda=$(/sbin/hdparm -C /dev/sda1 | grep state)
    sdb=$(/sbin/hdparm -C /dev/sdb1 | grep state)
    echo "$d sda=$sda   sdb=$sdb" >>$logfile

    sleep 1m
done

exit 1
Ich war natürlich einigermaßen frustriert, weil die Platte eigentlich einen Auto-Sleep-Mode hat.... der aber offensichtlich nicht funktioniert. Aus anderem Grund musste ich gestern das Maschinchen neu aufsetzen.... und habe dafür erstmalig das Jessi-Lite-Image gewählt. Sieht gut aus. Und ich habe erneut hdparm installiert..... und nun eine weitere Überraschung.... auf einmal schaltet die Platte doch ab..... zumindest hat sie es heute am zweiten Testtag mit der neuen Installation getan. Ich weiss aber nicht, ob jetzt dafür hdparm verantwortlich ist, denn vorher hatte ich das nicht installiert.... in der hdparm.conf habe ich noch nichts verändert.... oder liegt es vielleicht auch am neuen Image? :roll:

Code: Alles auswählen

Start test at 03:00:01
03:00:01 sda= drive state is:  standby   sdb= drive state is:  standby
Aktiviere HD, schreibe auf sda und sdb
03:00:19 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:01:19 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:02:19 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:03:19 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:04:20 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:05:20 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:06:20 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:07:20 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:08:20 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:09:20 sda= drive state is:  active/idle   sdb= drive state is:  active/idle
03:10:20 sda= drive state is:  active/idle   sdb= drive state is:  standby
03:11:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:12:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:13:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:14:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:15:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:16:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:17:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:18:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:19:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:20:20 sda= drive state is:  standby   sdb= drive state is:  standby
03:21:20 sda= drive state is:  standby   sdb= drive state is:  standby
Ich werde das jetzt mal 2-3 Tage um 3:00 Uhr laufen lassen, und wenn sich dieses Verhalten als zuverlässig erweist, würde ich nichts weiter ändern. Wäre das Deiner Meinung nach ok?

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Harddisk - Standby oder Sleepmode?

Beitrag von hikaru » 14.06.2016 13:04:10

Das SMART der Platte zählt, wie oft der Spindelmotor bisher eingeschaltet wurde. Der entsprechende Parameter nennt sich "Load Cycle Count". Den solltest du überwachen!

Dein Script halte ich aus zwei Gründen nicht für geeignet, die Abschaltungen zu überwachen:
1. Falls die Platten runterfahren, weißt du bisher nicht in welchen Abständen das passiert. Das Schreiben auf die Platte setzt aber in jedem Fall einen möglichen Countdown zurück. Zyklen >= 1 Minute kannst du so also aktuell gar nicht erkennen. Das Script selbst verhindert möglicherweise genau das Phänomen, das du mit seiner Hilfe beobachten möchtest.
2. Ich weiß nicht ob ich deine Gedanken mit der Zeiterfassung richtig verstehe, aber du ermittelst im Script den Timestamp unabhängig vom Abfragen der HDDs. Auf diese Art wird weder date, noch die Aktualisierungszeit der Logdatei eine sinnvolle Auskunft geben, denn Letztere sagt nur aus, wann die Änderung im Dateisystem angekommen ist. Da das für gewöhnlich asynchron gemountet ist, ist dieser Zeitpunkt aber nicht identisch mit dem Zeitpunkt, an dem die Änderung physisch auf die HDD geschrieben wird.

Die einzige Möglichkeit die ich sehe, wie das Script eine Verzögerung der HDDs erfassen kann ist die Differenz zwischen den theoretischen 90 Minuten und der tatsächlich benötigten Zeit. Das ist aber nicht eindeutig, da die Verzögerung auch anders entstehen kann. Als Ursache kommt im Grunde alles in Frage was Load erzeugt.

Edit:
1. ist wohl gegenstandslos, da /tmp vermutlich nicht auf einerr der fraglichen HDDs liegt.

TomL

Re: Harddisk - Standby oder Sleepmode?

Beitrag von TomL » 14.06.2016 14:16:58

hikaru hat geschrieben:Edit:
1. ist wohl gegenstandslos, da /tmp vermutlich nicht auf einerr der fraglichen HDDs liegt.
Ja, richtig, das wurde nach tmpfs geschrieben. Und man kann auch die Abschaltzeit sehen. Man sieht, dass bei Jobstart beide Platten "standby" waren, dann habe ich auf beide einmal geschrieben und dann sieht man die Abschaltzeit = sdb nach 10 Minuten, sda nach 11 Minuten. Bezogen auf unsere gefühlten Nutzungs-Gewohnheiten scheint das meines Erachtens ok zu sein....

Eine Zeiterfassung ist es eigentlich nicht.... das Script macht nichts anderes, als 90 Minuten lang jede Minute einmal den Status der HDs zu prüfen, OHNE sie zum Schreiben oder Lesen zu öffnen. Jetzt weiss ich, dass 90 Minuten gar nicht notwendig sind, 20 Min. enthält ausreichende Reserve, beide Platten sind vorher "aus". BTW, das Script soll nicht permanent laufen, sondern jetzt nur (erstmalig) während der Anlaufphase des neuen Server-Setups. Mit der jetzigen Cron-Einstellung würde das auch erst wieder in 1 Jahr erneut laufen.... ich muss das also von Fall zu Fall bei Bedarf aktivieren. Mich hat halt nur interessiert, ob und wann die Platten abschalten. Und das ist im Moment das einzige, was wohl klar ist.... wie man in meinem Vorposting sieht, sie schalten jetzt (neuerdings) ab, nach je einem (!) Schreibvorgang auf der Platte, und dann nach 10 bzw. 11 Minuten schlafen sie.

Als nächstes bin ich mal dem Hinweis smartctl gefolgt..

Code: Alles auswählen

  4 Start_Stop_Count        0x0032   088   088   020    Old_age   Always       -       13047
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       157
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       13
193 Load_Cycle_Count        0x0032   067   067   000    Old_age   Always       -       66308
Ich lese die Zahlen und denke "wow, von 67 auf 66308 ist ja ganz schön viel, aber vielleicht wäre noch mehr noch besser, oder vielleicht auch schlechter".... ich habe keine Vorstellung über die Bedeutung.... ist ganz ähnlich, als wenn Mr. Spock eine Distanz mit 10 Parsec bezeichnet. Da weiss ich auch nicht, ob das Armeslänge bedeutet, oder von hier bis mindestens hinter Jupiter :mrgreen: Gibt es denn Grenz- oder Referenzwerte, an denen man sich orientieren kann...?... nur ne Zahl ohne Referenz hat doch gar keinen Informationsgehalt.

Ich habe das smartctl-log mal hochgeladen.... vielleicht kann da mal hilfreich jemand drüber schauen, ob da was besorgniserregendes notiert ist. :?
http://nopaste.debianforum.de/39365

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Harddisk - Standby oder Sleepmode?

Beitrag von hikaru » 14.06.2016 14:45:30

Korrektur:
"Load Cycle Count" sagt nichts über den Spindelmotor aus (das wäre "Start/Stop Count"), sondern über die Parkvorgänge des Lesekopfarmes. [1]
TomL hat geschrieben:Ich lese die Zahlen und denke "wow, von 67 auf 66308 ist ja ganz schön viel, aber vielleicht wäre noch mehr noch besser, oder vielleicht auch schlechter"....
Die 067 ist ein normalisierter Wert. Ohne dessen Bezugspunkt zu kennen, kann man daran gar nichts ablesen. Auf jeden Fall ist es kein Ausgangspunkt hin zu den 66308 (über welchen Zeitraum auch immer), welche aller Wahrscheinlichkeit nach die wahre Anzahl der Load Cycles angibt (ganz sicher kann man sich da bei SMART nie sein).
In Anbetracht dessen, dass die HDD in Summe wohl schon etwa ein Jahr gelaufen ist, finde ich den Wert nicht sonderlich hoch. Allein eine meiner Backup-HDDs, die nur zu Backupzwecken überhaupt lief, also entweder gar nicht oder unter ständigem Zugriff, hatte nach zwei Jahren (Lebenszeit, nicht Laufzeit) einen Load Cycle Count von rund 160000.


[1] https://de.wikipedia.org/wiki/Self-Moni ... _Parameter

TomL

Re: Harddisk - Standby oder Sleepmode?

Beitrag von TomL » 14.06.2016 15:38:21

hikaru hat geschrieben:....hatte nach zwei Jahren (Lebenszeit, nicht Laufzeit) einen Load Cycle Count von rund 160000.
Dann scheint der Wert meiner Platte ja ein guter Wert zu sein... und das vor dem Hintergrund "produktive Platte für den täglichen Betrieb".

Der Wert

Code: Alles auswählen

 9 Power_On_Hours          0x0032   082   082   000    Old_age   Always       -       15862
stimmt in etwa mit meiner Erinnerung überein.... knapp 2 Jahre ist sie alt.... und beim Schreiben hier erinnere ich mich.... wir haben schon mal drüber gesprochen: viewtopic.php?f=15&t=150902#p1002480

Ich glaube, jetzt mit Deinem Hinweis auf den Wiki-Artikel habe ich das verstanden. Die Werte Value, Worst und Tresh sind die massgeblichen..... die fangen (anscheinend) bei 100 an und werden dann immer niedriger. Der (erlaubte) Niedrigstwert ist dabei Tresh - ist dieser Wert mit Value oder Worst erreicht, ist die Platte im 7. Himmel, oder in der Hölle, oder im Schrott, alles darüber ist jedoch gut. Das heisst, irgendwann bin ich mit 100 angefangen und jetzt nach 2 Jahren Betrieb bei 67. Das bedeutet, 33 "Lebenspunkte" von anfänglichen 100 habe ich bisher verbraucht. Damit kann ich prima leben....also kann ich im Grunde genommen jetzt zu dem Fazit kommen: Im Moment ist alles im grünen Bereich. :roll:

Aus dem Wiki-Artikel:... in dem dort aufgeführten Beispiel sind diese Werte auf 100. Der Hinweis "zählt rückwärts" passt dann zu meinem Wert.
Value ist ein normalisierter Messwert, der zumeist rückwärts zählt (je niedriger, desto schlechter).
Worst der bisher schlechteste Wert.
Threshold die Grenze, unter die der Wert nicht fallen darf.

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Harddisk - Standby oder Sleepmode?

Beitrag von hikaru » 14.06.2016 16:14:25

TomL hat geschrieben:Ich glaube, jetzt mit Deinem Hinweis auf den Wiki-Artikel habe ich das verstanden. Die Werte Value, Worst und Tresh sind die massgeblichen..... die fangen (anscheinend) bei 100 an und werden dann immer niedriger. Der (erlaubte) Niedrigstwert ist dabei Tresh - ist dieser Wert mit Value oder Worst erreicht, ist die Platte im 7. Himmel, oder in der Hölle, oder im Schrott, alles darüber ist jedoch gut. Das heisst, irgendwann bin ich mit 100 angefangen und jetzt nach 2 Jahren Betrieb bei 67. Das bedeutet, 33 "Lebenspunkte" von anfänglichen 100 habe ich bisher verbraucht. Damit kann ich prima leben....also kann ich im Grunde genommen jetzt zu dem Fazit kommen: Im Moment ist alles im grünen Bereich. :roll:
So in etwa. 100 ist ein gebräuchlicher Startwert, hängt aber letztendlich vom Hersteller ab. Auch 200 ist wohl relativ verbreitet. Theoretisch gingen auch 255 als Startwert und letztendlich kann jeder Hersteller anfangen, wo er will.
Wenn der Threshold erreicht ist, fällt die Platte nicht plötzlich aus (das kann früher oder auch später passieren), aber man sollte sich dann nach Ersatz umsehen.
Auch würde ich nicht unbedingt davon ausgehen, dass die normalisierten Werte linear skaliert sind.

TomL

Re: Harddisk - Standby oder Sleepmode?

Beitrag von TomL » 14.06.2016 16:28:35

Ok, verwertbare Erkenntnisse kann man also aus einer einmaligen/erstmaligen Auswertung nicht herauslesen.... die 67 muss ich jetzt erst mal nur zur Kenntnis nehmen, da ich nicht weiss, wie der Anfangswert war. Wenn der bei 255 gewesen wäre, ist die 67 echt mies. Wars aber 100 ist die 67 nach 2 Jahren noch ganz gut. Das heisst, ich muss dieses Log einfach mit nem Erstellungsdatum versehen, sichern und nach einer gewissen Zeit (6 oder 12 Monate) einfach mal mit dem dann aktuellen Stand vergleichen. Und dann ergeben sich vielleicht auch schon Hinweise für eine vorsichtige Prognose. :roll:

TomL

Re: Harddisk - Standby oder Sleepmode?

Beitrag von TomL » 04.10.2016 11:40:33

TomL hat geschrieben:Ok, verwertbare Erkenntnisse kann man also aus einer einmaligen/erstmaligen Auswertung nicht herauslesen.... die 67 muss ich jetzt erst mal nur zur Kenntnis nehmen, da ich nicht weiss, wie der Anfangswert war.
Das war der Stand im Juni. Ich kram diesen Thread jetzt noch mal raus, weil ich nun nach 4 Monaten ein paar Vergleichswerte habe. Ich weiss nur noch nicht so recht, das einzuschätzen und hoffe, jemand hier im Forum hat mehr Kenntnisse, wie man die Zahlen verstehen muss.... @hikaru :lol:

2016-06-14

Code: Alles auswählen

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   118   099   006    Pre-fail  Always       -       187695376
  3 Spin_Up_Time            0x0003   091   091   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   088   088   020    Old_age   Always       -       13047
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   060   030    Pre-fail  Always       -       12547670
  9 Power_On_Hours          0x0032   082   082   000    Old_age   Always       -       15862
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       157
193 Load_Cycle_Count        0x0032   067   067   000    Old_age   Always       -       66308
2016-10-04

Code: Alles auswählen

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   110   099   006    Pre-fail  Always       -       27715032
  3 Spin_Up_Time            0x0003   092   091   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   086   086   020    Old_age   Always       -       15168
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   071   060   030    Pre-fail  Always       -       13920071
  9 Power_On_Hours          0x0032   079   079   000    Old_age   Always       -       18541
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       165
193 Load_Cycle_Count        0x0032   066   066   000    Old_age   Always       -       68445 
Meine Überlegungen zum Thema "4 Start_Stop_Count":
171 Tage Laufzeit
2121 Starts und Stops
12,4 durchschnittliche Starts am Tag

Die Lebenspunkte (?) sind von 88 auf verbleibende 86 (% (?)) gefallen. Die Zeit bis zur Ruheabschaltung der Platte scheint eigentlich für unsere Verhältnisse ganz gut gesetzt zu sein. Scheint alles also nichts zu sein, was einen beunruhigen muss.

Zum Thema "193 Load_Cycle_Count":
von 67 auf 66 gefallen.... *hmmm* ... ist doch nix...oder?

Antworten