Legen Sie Festplatten in den Standby-Modus nach X Minuten mit hdparm funktioniert nicht

9

Ich benutze Ubuntu 12.04 auf einem Heimserver. Es gibt 5 Festplatten: eine SSD mit dem Betriebssystem und 4 HDDs (Samsung HD204UI), die mit mdadm als RAID5 konfiguriert sind.

Ich brauche das RAID nicht sehr oft (ungefähr einmal pro Tag im Durchschnitt); Es enthält Multimediadaten und einige Backups. Daher habe ich beschlossen, die Laufwerke die meiste Zeit in den Standby-Modus zu versetzen.

Ich habe die Laufwerke so konfiguriert, dass sie nach 20 Minuten automatisch mit hdparm herunterfahren, hier als Beispiel /dev/sda :

hdparm -S 240 /dev/sda

Die Ausgabe des Befehls bestätigte dies:

/dev/sdb:
 setting standby to 240 (20 minutes)

Das Problem besteht jedoch darin, dass das Laufwerk nach etwa 5 Sekunden (statt 20 Minuten) nach dem letzten Zugriff und

herunterfährt
hdparm -C /dev/sdb

wird angezeigt:

/dev/sdb:
 drive state is:  standby

Warum wartet das Laufwerk nicht wie konfiguriert die 20 Minuten? Hat es etwas mit dem RAID-Setup zu tun? (Ich glaube nicht ...)

Dieses sehr kurze Timeout ist problematisch, da es sich um ein RAID5 handelt und wenn ich auf eine Datei zugreife, wird es blockweise um die vier Laufwerke herum verteilt. Da Laufwerk 1 nicht benötigt wird, wenn Laufwerk 2 gelesen wird, ist es eingeschlafen, wenn es das nächste Mal verwendet wird (nachdem Laufwerk 3 gelesen wurde). Die Laufwerke laufen also die ganze Zeit auf und ab, was zu einem Durchsatz nahe Null führt.

Für die Leute, die sich Sorgen um das Leben meiner Laufwerke machen: Es ist kein Problem, dass die Laufwerke im Durchschnitt einmal täglich auf und ab gedreht werden, da ich Energie und Wärme lieber über die Gesundheit der Laufwerke spare (ich benutze RAID5 und der Inhalt ist nicht sehr wichtig).

    
leemes 15.05.2012, 23:32

2 Antworten

8

Ist AHCI in Ihrem BIOS aktiviert? Wenn nicht, versuche es einzuschalten und versuche es erneut.

Wenn das immer noch nicht funktioniert, dann müssen Sie vielleicht etwas komplizierteres versuchen, da hdparm nicht immer gut mit SATA-Laufwerken spielt, was ich vermutet habe.

Schau dir an Diese Seite für die folgende relativ einfache Lösung, die crontab verwendet:

sudo apt-get install sg3-utils
crontab -e

Fügen Sie das nun an den unteren Rand Ihrer Crontab an (ersetzen Sie sdx durch das Laufwerk, das Sie in den Standby-Modus versetzen möchten):

0-59/15 * * * * ( if [ ! -f /dev/shm/1 ] ; then touch /dev/shm/1 /dev/shm/2; fi ; mv /dev/shm/1 /dev/shm/2; cat /proc/diskstats > /dev/shm/1 ) >/dev/null 2>&1
0-59/15 * * * * ( export HD="sdx "; if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $HD )" =  "" ] ; then /usr/bin/sg_start --stop /dev/$HD; fi ) >/dev/null 2>&1

Natürlich ist es äußerst ratsam , bevor Sie einen dieser Schritte durchführen, eine vollständige Sicherung des Inhalts Ihrer Festplatten durchzuführen.

    
SirCharlo 15.05.2012, 23:54
1

Vielleicht könnte ein besserer Weg sein:

hdparm -B 1 -Y / dev / device
hdparm -B 255 / dev / device

Der erste hdparm setzt das Gerät sofort in den Standby-Modus. Der zweite schaltet APM aus, so dass der Datenträger im Standby-Modus bleibt, bis der nächste Datenträgerzugriff erfolgt.

    
mat 15.03.2013 18:49