it-swarm.com.de

Versetzen Sie Festplatten nach X Minuten in den Standby-Modus, wenn hdparm nicht funktioniert

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

Ich brauche das RAID nicht sehr oft (etwa einmal pro Tag im Durchschnitt); Es enthält Multimediadaten und einige Sicherungskopien. 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 heruntergefahren werden. Als Beispiel dient hier /dev/sda:

hdparm -S 240 /dev/sda

Die Ausgabe des Befehls bestätigte dies:

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

Das Problem ist jedoch, dass das Laufwerk nach ca. 5 Sekunden (statt 20 Minuten) nach dem letzten Zugriff herunterfährt

hdparm -C /dev/sdb

zeigt an:

/dev/sdb:
 drive state is:  standby

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

Dieses sehr kurze Zeitlimit ist problematisch, da es sich um ein RAID 5 handelt. Wenn ich auf eine Datei zugreife, wird es blockweise auf die vier Laufwerke verteilt. Da Laufwerk 1 beim Lesen von Laufwerk 2 nicht benötigt wird, ging es in den Ruhezustand, wenn es das nächste Mal verwendet wird (nachdem Laufwerk 3 gelesen wurde). Die Laufwerke drehen sich 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 wird kein Problem sein, dass die Laufwerke durchschnittlich einmal am Tag hoch und runter gedreht werden, da ich Energie und Wärme gegenüber der Gesundheit der Laufwerke bevorzuge (ich verwende RAID5 und der Inhalt ist nicht nicht sehr wichtig).

9
leemes

Ist AHCI in Ihrem BIOS aktiviert? Wenn nicht, schalten Sie es ein und versuchen es erneut.

Wenn das immer noch nicht funktioniert, müssen Sie möglicherweise etwas Komplizierteres ausprobieren, da hdparm mit SATA-Laufwerken nicht immer gut funktioniert.

Schauen Sie sich diese Seite für die folgende relativ einfache Lösung an, die crontab verwendet:

Sudo apt-get install sg3-utils
crontab -e

Fügen Sie dies nun unten in Ihre crontab ein (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

Bevor Sie dies versuchen, ist es natürlich sehr ratsam , eine vollständige Sicherung des Inhalts Ihrer Festplatten durchzuführen.

8
SirCharlo

Vielleicht könnte ein besserer Weg sein:

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

Der erste hdparm hat das Gerät sofort in den Standby-Modus versetzt. Mit dem zweiten Befehl wird APM deaktiviert, sodass die Festplatte bis zum nächsten Zugriff auf die Festplatte im Standby-Modus bleibt.

1
mat