Spin Down einer USB-Festplatte verhindern

H

holgerw

Guest
Hallo,

seit gestern habe ich eine 3 TB große USB-3 Festplatte von Toshiba. Ich habe auf der Platte einen Zpool erstellt, sie dient als Backup-Medium unserer NAS-Daten mittels rsync (Luckybackup).

Die Platte ist flott, nur schaltet sie nach wenigen Minuten Inaktivität in den Ruhemodus. Greife ich dann wieder auf die Platte zu, zeigt zwar die LED Aktivität an, sie fährt aber nich richtig hoch, beim Herunterfahren hängt der Shutdown an dieser Platte, es hagelt IO-Errors und nur ein Hard-Reset beendet diesen Mist (dank zfs zum Glück kein Maleur).

Wie deaktiviere ich diesen blöden Spin Down?

Oder als Alternative: Wie sorge ich dafür, dass die Platte nach einem Spin Down unter FreeBSD wieder ordentlich hochfährt bei Zugriffen?

Viele Grüße,
Holger
 
Das wird schwierig - denn der Spindown hat nichts mit der Festplatte zu tun, sondern vielmehr ist dafür eine Elektronik des Festplattengehäuses verantwortlich - auf die man meisst gar keinen Zugriff hat.

Wenn der Spindown zB nach 20 Min Inaktivität sich einschaltet - könnte ein zyklisch per cron aller 15 min gestartetes winziges Script, mit einem ls oder so diesen verhindern
 
Das wurde mir auch schon beschrieben und zwar sei mit der Platte auch eine CD mit zusätzlicher SW ausgeliefert worden und darüber ließe sie sich steuern und auch dieses Verhalten regeln. Nun kann ich mir vorstellen, dass nicht jeder Hersteller so etwas anbietet und mitliefert und dass es dann wahrscheinlich auch keine OpenSource taugliche SW sein wird.
Das Problem ist aber, wenn man den Spindown tatsächlich verhindert, dass dann die Platte womöglich auch zu warm wird, denn in diesen externen Gehäusen werden oft Platten eingesetzt, die andere Spezifikationen haben und extra kalt gehalten werden.
Deshalb würde ich den Tip von Vril aufgreifen und es eben nur so machen, dass ich die Platte gezielt vorher aufwecke, mounte, sichere und dann umounte und wieder schlafen lasse. Man müsste testen, ob ein Scan am USB-Bus genügt, sie wieder aufwecken zu lassen.
Alternativ (und das würde ich wahrscheinlich machen) würde ich die Platte gar nicht angestöpselt sein lassen, sondern dann, wenn sie erkannt wird, in einem Script mounten und dann automatisch die Sicherung laufen lassen, danach wieder umounten.
Nein, wahrscheinlich wäre ich auch dazu zu faul und würde das einfach manuell machen. Einstecken, mounten, sichern (und dies evtl über ein Script, damit ich nichts vergesse) und dann auch wieder umounten und weg damit. Da braucht es eigentlich keine Automatik.
 
Das Problem ist aber, wenn man den Spindown tatsächlich verhindert, dass dann die Platte womöglich auch zu warm wird
Das ist meiner Meinung nach Quatsch. Sollte eine HDD dies nicht aushalten, ist das ein Zeichen von Qualitätsmangel. Der Spindown ist nur dazu da im Strom zu sparen.

Habe noch das Tool ataidle gefunden [1]. Vielleicht geht das damit.
Code:
ataidle -P 0

Gruss

[1] https://www.freebsd.org/cgi/man.cgi....0-RELEASE+and+Ports&arch=default&format=html
 
Das ist meiner Meinung nach Quatsch. Sollte eine HDD dies nicht aushalten, ist das ein Zeichen von Qualitätsmangel. Der Spindown ist nur dazu da im Strom zu sparen.

In meinem NAS war eine Platte gestorben, ich hatte keine mehr auf Lager und nahm kurzentschlossen eine aus einem externen Gehäuse und baute die ein. Das funktionierte. Die Temperatur war im Vergleich zu den anderen Platten deutlich niedriger, was mir zunächst gefallen wollte, dann fiel diese Platte aber nach wenigen Wochen aus, obwohl sie noch kaum Betriebsstunden hatte.
Als ich damals etwas nachforschte, las ich darüber, dass es eben spezielle Platten für externe Gehäuse gibt, die nicht für einen Server taugen. Sie sind langsamer und nicht auf Dauerbetrieb ausgelegt und arbeiten mit niedrigeren Temperaturen.
Ich möchte das aber nun nicht suchen, nur eine Bestätigung für meine Aussagen zu finden.
Es ist ja denkbar, dass ich damals Mist gelesen habe und es nicht so ist, wie ich glaube. Es ist auch denkbar, dass es nur bei manchen Herstellern eine solche Strategie gibt. Ich will es halt zusätzlich zu bedenken geben.
 
Naja, es gibt durchaus Platten die nicht für 24/7 Betrieb zugelassen sind und die meisten Shops haben dafür einen entsprechenden Such-Filter. Die kosten dann teilweise auch deutlich weniger. Das ist also kein großes Geheimnis, dass Non-24/7 Platten einen Dauerbetrieb nicht lange überleben. Und gerade in externen Gehäusen sind solche Dinger drin.

edit:
Ist im Endeffekt wie mit Lüftern (da ich mir gerade welche gekauft habe, das Beispiel). Der billigste beQuiet Lüfter für <10€ hat 80'000h MTBF und der teure für >20€ hat 300'000h MTBF.

Bei Platten dürften dann so Faktoren wie Wärme und Vibration ein Problem werden, wenn da entsprechende Maßnahmen in den Platten fehlen.
 
Hallo,

danke für Eure Hinweise und Kommentare.

Das wird schwierig - denn der Spindown hat nichts mit der Festplatte zu tun, sondern vielmehr ist dafür eine Elektronik des Festplattengehäuses verantwortlich - auf die man meisst gar keinen Zugriff hat.

Wenn der Spindown zB nach 20 Min Inaktivität sich einschaltet - könnte ein zyklisch per cron aller 15 min gestartetes winziges Script, mit einem ls oder so diesen verhindern
Hmmm, dann kann ich, da die Platte eh nur für Backups mit rsync dient, da drum ein Script basteln mit
- importieren des Pools
- Abarbeiten des rsync
- exportieren des Pools, was einem sauberen unmount entspricht

Wenn danach dann die Platte Heierchen macht, dürfte bei einem späteren Shutdown des PCs ja nix mehr stören.

Habe noch das Tool ataidle gefunden [1]. Vielleicht geht das damit.
Das hatte ich auch schon entdeckt auf der Suche nach einer Lösung, allerdings ist das explizit nur für ata-Festplatten und nicht für USB-Devices:
Code:
ataidle -P 0 /dev/da4
ataidle: the device does not support advanced power management

Deshalb würde ich den Tip von Vril aufgreifen und es eben nur so machen, dass ich die Platte gezielt vorher aufwecke, mounte, sichere und dann umounte und wieder schlafen lasse. Man müsste testen, ob ein Scan am USB-Bus genügt, sie wieder aufwecken zu lassen.
Pit, so ähnlich werde ich das dann machen.

Naja, es gibt durchaus Platten die nicht für 24/7 Betrieb zugelassen sind und die meisten Shops haben dafür einen entsprechenden Such-Filter. Die kosten dann teilweise auch deutlich weniger. Das ist also kein großes Geheimnis, dass Non-24/7 Platten einen Dauerbetrieb nicht lange überleben. Und gerade in externen Gehäusen sind solche Dinger drin.
Daher habe ich mir für das Aufsetzen von FreeBSD auf unserem NAS auch zwei WD Platten aus der Red Reihe gekauft, die explizit für Dauerbetrieb im NAS zugelassen sind, zum Glück sind sie nur etwas teuerer als die entsprechenden aus der Blue Reihe.

Viele Grüße,
Holger
 
Habs gerade getestet:
- ist die Platte im Ruhemodus, kann man per zpool sauber den Pool importieren, die Platte läuft wieder an und ist nach wenigen Sekunden Ready-to-use
- wird der Pool dann wieder exportiert und schaltet die Platte danach in den Ruhemodus, ist ein sauberer Shutdown möglich
- wird der Pool nicht exportiert, und die Platte schaltet in den Ruhemodus, hängt der Shutdown und es hagelt Fehlermeldungen
- wird der Pool nicht exportiert, und die Platte schaltet in den Ruhemodus, wird sie zwar beim erneuten Lese- oder Kopierversuch von Daten wieder aktiviert, aber spinnt auch herum

Ich werde es daher so umsetzen, wie Walter es angeregt hat.

Danke und viele Grüße,
Holger
 
Und hier noch das Script, vielleicht kann ja jemand damit was anfangen :)

Ich bin übrigens kein rsync-Guru, Luckybackup erlaubt es, die rsync Befehlszeilen, die sich über dessen bequeme Mausbedienung ergeben, zur weiteren Verwendung in die Zwischenablage zu kopieren.
 

Anhänge

  • backup-nas.txt
    980 Bytes · Aufrufe: 383
Ich hatte ein aehnliches Problem und habe einfach ein "poking" script geschrieben, das alle 5 Minuten aufgerufen wurde und das aktuelle Datum in eine Datei geschreiben hat. Mit einem sync, um das Schreiben zu erzwingen (was vermutlich nicht bei allen funktionieren wird).

Code:
while [ 1 ]; do
   date > $mount_point/.poking
   sync
   sleep 300;
done

Leider unterstuetzten die meisten USB Controller nicht alle SCSI Kommandos, sonst koennte man mit camcontrol versuchen das Powermanagement abzuschalten. Bei einer SATA Platte hat es bei mir funktioniert, bei der USB Platte nicht. Ist alles nicht schoen, aber da ich die Platte eh nur fuer ein paar Stunden im Monat fuer unterwegs genutzt habe, wirkte sich das kaum aus.
 
Und hier noch das Script, vielleicht kann ja jemand damit was anfangen :)
...

OT: hier rächt es sich aber schon etwas, wenn man sehr sehr wenige datasets im zpool hat - denn sonst könnte man ja viele Dinge die hier auf FileEbene gemacht werden, auf der zfs-Ebene mit Snapshots erledigen und diese dann unter irgendeinen gemounteten Verzeichnis von rsync oder einem einfach zu bedienenden Backupprogramm, das rsync nutzt - sichern.
 
würde ich da spontan ja auch nehmen, ist aber nun meine Frage: braucht ein ZFS-Pool auf der externen Platte das noch? Oder anders gefragt, haben wir das sync bisher genommen, um dem Dateisystem gerecht zu werden, oder weil die Anbindung der HW das verlangte? Ich nehme es auch gelegentlich bei Transfer zu NFS, manchmal da auch als mount-Option.
 
OT: hier rächt es sich aber schon etwas, wenn man sehr sehr wenige datasets im zpool hat - denn sonst könnte man ja viele Dinge die hier auf FileEbene gemacht werden, auf der zfs-Ebene mit Snapshots erledigen und diese dann unter irgendeinen gemounteten Verzeichnis von rsync oder einem einfach zu bedienenden Backupprogramm, das rsync nutzt - sichern.
Was Du anhand des Skriptes siehst, ist ein Backup der Daten unseres NAS-Rechners taschenmaus, auf welchem Debian Linux (ext4) werkelt, da soll ja bald möglichst (hoffentlich bis Mitte dieser Woche) FreeBSD mit zfs drauf. Und dann werde ich mich auch mit weiteren Möglichkeiten von zfs, wie etwa snapshots, befassen. Aber schon hier danke für den Tipp.
 
Ja klar, das hätte ich natürlich im Script sehen müssen, dass von ext4 gesichert wird!
Sorry, wegen meiner Unaufmerksamkeit ;-)
 
Sollte das nicht per camcontrol gehen? Sehe camcontrol idle, standby und sleep.
 
Sollte das nicht per camcontrol gehen? Sehe camcontrol idle, standby und sleep.
Ja und es gibt auch noch camcontrol apm. Aber damit dies funktioniert, muss die HDD advanced power management unterstützen ( Sieht man mit: camcontrol identify <DISK>). Dazu kommt noch das USB Problem.
 
Das ist meistens das Problem, das die billigen USB to SATA Controller nicht den vollen Befehlssatz unterstuetzen/weiterleiten, oder unterstuetzen wollen. Ich hatte das selbe Problem mit meiner externen Platte.
 
Das ist meistens das Problem, das die billigen USB to SATA Controller nicht den vollen Befehlssatz unterstuetzen/weiterleiten, oder unterstuetzen wollen. Ich hatte das selbe Problem mit meiner externen Platte.
Ich habe folgendes Skript (im Internet gefunden) mal auf die Devices losgelassen:
Code:
#!/bin/sh
camcontrol devlist | awk -F\( '{print $2'} | awk -F\, '{print $1}' |while read LINE
do
CM=$(camcontrol cmd $LINE -a "E5 00 00 00 00 00 00 00 00 00 00 00" -r - | awk '{print $10}')
if [ "$CM" = "FF" ] ; then
echo "$LINE: SPINNING"
elif [ "$CM" = "00" ] ; then
echo "$LINE: IDLE"
else
echo "$LINE: UNKNOWN"
fi
done

Die USB-Platte /dev/da4 ist für camcontrol nicht verfügbar:
Code:
pass0: SPINNING
pass1: SPINNING
pass2: SPINNING
cd0: IDLE
cd1: IDLE
camcontrol: error sending command
pass5: UNKNOWN
camcontrol: error sending command
da0: UNKNOWN
camcontrol: error sending command
da1: UNKNOWN
camcontrol: error sending command
da2: UNKNOWN
camcontrol: error sending command
da3: UNKNOWN
camcontrol: error sending command
da4: UNKNOWN
camcontrol: error sending command
da5: UNKNOWN

Viele Grüße,
Holger
 
Zurück
Oben