Festplatten-APM spinnt

oder: wenn Festplatten komische Geräusche machen

Bei der Suche nach den optimalen Einstellungen, wie ich meinen Server mit möglichst wenig Zugriffen auf die Festplatten hin bekomme, bin ich über ein eigentlich gravierendes Problem gestoßen. Das APM (AdvancedPowerManagement), das vom Betriebssystem (Ubuntu 8.04) und von der Festplatte selber beeinflusst wird, ist bei einigen Festplattentypen so schlecht eingestellt, dass es eher schadet als nützt.

Das Problem war, dass meine Festplatte, nachdem keinerlei Zugriffe mehr vom System aus erfolgten, bei jeder Schreib- oder Leseoperation erst man “anspringen” musste. Es gab ein hörbares Anlaufgeräusch des Motors. Ich habe in Foren mal danach gesucht, dann mit hdparm und smatrctl ein wenig rum gespielt. Nebenbei: in den meisten Foren wurden Klickergeräusche beschrieben, die auf das gleiche Phänomen hindeuten.

Heraus kam, dass bei mir die Festplatte nach einer Sekunde!!! in den Stromsparmodus versetzt wurde, was bedeutet dass die Umdrehung drastisch reduziert wird und die Köpfe in die Parkposition gefahren werden. Erfolg dann ein Zugriff auf die Platte, wird erst wieder der Motor angeworfen und die Köpfe wieder “ausgeparkt”. Das kostet Zeit, liefert merkwürdige Geräusche, verschleist die Platte schneller und kostet natürlich auch mehr Strom.

Einstellungen prüfen

Um das mal selber zu testen, wie das eigene APM eingestellt ist und was es mit den Festplatten so anstellt muss man folgendes tun (als root):

smartctl -s on /dev/sda;
S.M.A.R.T. für die Festplatte anschalten. Das hat keinerlei Nachteile, weder im Stromverbrauch noch in der Leistung. Die Platte kann einem aber mit aktiviertem SMART aber Fehler melden. Es sollte also eigentlich immer an sein
smartctl -A /dev/sda
Das liefert alle Infos vom SMART als Übersicht.

In der so erzeugten Übersicht findet man unter anderem die Zeilen Load_Cycle_Count und Start_Stop_Count. “Load” ist die Anzahl der Parkoperationen und “Start” die Anzahl der Anschaltvorgänge in der gesamten Lebenszeit der Festplatte. Das wird gezählt, egal ob SMART vorher aktiv war oder nicht.

Je höher die Werte liegen, desto schlechter für die Festplatte. Es gibt wohl keine festen Vorgaben, aber ich habe bei “Load” gelesen, dass Werte über 30.000 als “alte Platte” gelten. Andere Quellen sagten was von 600.000. Bei meiner Platte hat das APM in 2 Wochen, die Platten waren Ladenneu, 13.600 mal “Load” gezählt. In knapp anderthalb Jahren hätte ich die 600.000 also erreicht. Selbst “Start” lag schon bei 376, obwohl der Rechner seit 2 Wochen durch läuft.

Bei mir war es sogar so, dass der Aufruf von smartctl -A /dev/sda den “Load” Wert jeweils um 1 erhöht hat.

APM ein- bzw. abstellen

Folgendes kann man dagagen tun (auch wieder as root):

hdparm -B255 -M254 -S0 /dev/sda

Zur Erklärung:

-B 255
Das stellt das APM aus. Wichtig ist: nicht alle Festplatten unterstützen das Abschalten per 255. Der Befehl hdparm -I /dev/sda muss Advanced power management level: disabled liefern. Ist das nicht so, muss der Wert 254 verwendet werden. Damit wird APM nur extrem runter gedreht, nicht abgeschalten.
-S 0
Stellt das APM-Timeout ab. Nur zur Sicherheit. Das hilft ggf auch, wenn -B nicht auf 255 gesetzt werden kann
-M 254
Das Stelt das “AcousticManagement” auf schnell. Viele stehen auf 128, was “leise” heißt. Bei mir ergab dieser Wert aber sirrende Geräsche alle paar Sekunden. Das war die Kopf-Kalibrierung, die zwar als unbedenklich gilt, aber das Geräusch ist nervig und Geräusche heißen für mich IMMER Verschleiß.

Da man die Optionen bei jedem Systemstart erneut eingeben müsste, kann man auch folgendes machen, damit das beim Start automatisch erfolgt. Einfach in die Datei /etc/hdparm.conf folgendes eintragen (und apm = … ggf durch 254 ersetzen):


command_line {
smartctl -s on /dev/sda
}
/dev/sda {
spindown_time = 0
apm = 255
apm_battery = 255
acoustic_management = 254
}

Der Wert apm_battery = 255 wird seit Ubuntu 12.04 ebenfalls benötigt. Siehe hier

Noch nebenbei: die -B Option wurde öfter mal so beschrieben, dass schon Werte ab 190 sinnvolles Verhalten ergaben, bei mir machen aber ALLE Werte, außer 255, den Murks mit dem Parken. Ab -B 128 parkt er nur alle 30 Sekunden, aber das ist auch nicht Sinnvoll auf Dauer.

Erfahrungen

Folgende Platten habe ich getestet:

Hitachi 30GB IDE, 2,5 Zoll (HTS424030M9AT00 und HTS545025B9A300)
13600 * Load + 376 Start in 2 Wochen. Das APM ist fürchterlich. In Foren liest man oft, dass vor allem Hitachi betroffen ist. Die Platten sind neu und im MiniServer verbaut (2 Stück).

Samsung 250GB SATA, 3,5 Zoll (SAMSUNG SP2504C)
280 * Load + 538 * Start in gut einem Jahr. Bei 3067 Stunden Betrieb und täglichem Ein- und Ausschalten klingt das ok. Das ist mein Arbeitsrechner.

Fujitsu 80GB SATA, 2,5 Zoll (FUJITSU MHY2080BH)
Hier tirtt das Problem unter Ubuntu 8.04 nicht auf. Load und Start steigen nach jedem Systemstart um 1, mehr aber auch nicht. Das ist mein privater Desktop.

Am Betriebssystem liegt es übrigens auch ein wenig, denn unter Apples MacBook ist diese Fujitsu-Platte trotz “nur” 1814 Betriebsstunden auf immerhin 58.869 * Load gekommen. Genau diese Platte stammt nämlich von einem MacBook und hatte diese Werte, als ich sie bekam.

Fazit

Zusammenfassend aus den ganzen Tests kann ich sagen, dass man das APM im Zweifel besser abschaltet. Bei bei Desktop-Rechnern wird sowieso alle paar Sekunden von irgend einem (Desktop-)Programm was auf die Platte geschrieben oder von dort gelesen. Mail, BrowserCache, IM, … uvm, auch ohne das man aktiv am Rechner was macht. Somit ist es nie ein Sinnvoll, die Platte in den Ruhezustand zu setzen, da sie sofort wieder aufwachen muss. Wenn der Wert von Load_Cycle_Count also stark ansteigt oder die Platte Geräusche macht, dann raus mit APM.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert