Discussion:
Fragen zu hdparm unter raspbian
(zu alt für eine Antwort)
Andreas Bockelmann
2017-08-18 12:49:15 UTC
Permalink
Raw Message
Hallo liebe Zielgruppe,

ich kenne mich nicht wirklich mit Linux aus, aber der raspi macht was ich will.
Ich hatte eine kleine 2,5" Platte über USB am raspi, merkte jedoch, dass
diese nie in den Spindown ging. hdparm -B 100 /dev/sda wurde damit
beantwortet, dass dieses nicht zur Verfügung stände. Also andere
USB-SATA-Bridge zwischengestöpselt, jetzt tut es prinzipiell.

Ich hätte erwartet, dass ich dauerhaft der Platte einstellen könne, dass sie
nach einer voreingestellten Zeit automatisch in den Spindown geht. Nach
einem powercycle ist dies jedoch vorbei. In meiner Not habe ich mich dann
durchgegooglet und habe die Befehle hdparm -B und hdparm -S nun in die
rc.local eingetragen. Das funktioniert auch.

Frage: Gibt es keine Möglichkeit, einer SATA-Platte dauerhaft klarzumachen,
dass sie nach Zeit x schlafen gehen soll? Der Raspi ist ein Netzwerkgerät,
dass SAMBA, Download-Client und OpenVPN erfüllt. Die Platte wird nur selten
angesprochen. Dateien, die automatisiert aus dem WAN geholt werden, werden
auf die SDCard geholt, dort ausgepackt und anschließend auf die externe
Platte verschoben. Anschließend können sie über Samba-Freigaben abgeholt
werden. Von 24 Stunden darf die Platte durchschnittlich 23 Stunden schlafen.
--
Mit freundlichen Grüßen
Andreas Bockelmann
Marcel Mueller
2017-08-18 17:20:10 UTC
Permalink
Raw Message
Post by Andreas Bockelmann
Ich hätte erwartet, dass ich dauerhaft der Platte einstellen könne, dass
sie nach einer voreingestellten Zeit automatisch in den Spindown geht.
Nach einem powercycle ist dies jedoch vorbei. In meiner Not habe ich
mich dann durchgegooglet und habe die Befehle hdparm -B und hdparm -S
nun in die rc.local eingetragen. Das funktioniert auch.
Frage: Gibt es keine Möglichkeit, einer SATA-Platte dauerhaft
klarzumachen, dass sie nach Zeit x schlafen gehen soll?
AFAIK nein. Wenn der Strom weg ist, ist auch die Information weg. Bei
SCSI/SAS geht das seit Jahrzehnten, aber nicht bei SATA.


Marcel
Kay Martinen
2017-08-18 17:37:54 UTC
Permalink
Raw Message
Post by Marcel Mueller
Post by Andreas Bockelmann
Ich hätte erwartet, dass ich dauerhaft der Platte einstellen könne, dass
sie nach einer voreingestellten Zeit automatisch in den Spindown geht.
Nach einem powercycle ist dies jedoch vorbei. In meiner Not habe ich
mich dann durchgegooglet und habe die Befehle hdparm -B und hdparm -S
nun in die rc.local eingetragen. Das funktioniert auch.
Frage: Gibt es keine Möglichkeit, einer SATA-Platte dauerhaft
klarzumachen, dass sie nach Zeit x schlafen gehen soll?
@Andreas: Doch, so wie du es gemacht hast, in rc.local eintragen. Evtl.
geht es auch mit smartmonctl.
Post by Marcel Mueller
AFAIK nein. Wenn der Strom weg ist, ist auch die Information weg. Bei
SCSI/SAS geht das seit Jahrzehnten, aber nicht bei SATA.
Verwechselst du das nicht mit PATA/IDE Marcel? SAS ist SATA so ähnlich
und beide sind ja im grunde SCSI in Seriell. Und auch bei Parallel-SCSI
ist es im originären Serverbetrieb doch eher unüblich gewesen Platten
schlafen zu legen. Denke ich zumindest. Stell dir ein Raid 5 vor bei dem
die Platten nicht gleichzeitig schlafen gingen oder aufwachten. Peng,
hast du ein Degraded Array und kannst es mit dem Rebuild locker in den
Ruin treiben.

Wenn es geht dann nur über spezielle und evtl. Herstellerspezifische
Befehle. IMHO kann man bei Seagate den Timeout in der Platte
Setzen/verriegeln - mit hdparm. Die Befehle sind IMHO aber teils als
Experimentell gekennzeichnet.

Kay
Marcel Mueller
2017-08-18 18:43:28 UTC
Permalink
Raw Message
Post by Kay Martinen
Post by Marcel Mueller
AFAIK nein. Wenn der Strom weg ist, ist auch die Information weg. Bei
SCSI/SAS geht das seit Jahrzehnten, aber nicht bei SATA.
Verwechselst du das nicht mit PATA/IDE Marcel?
Nein.
Post by Kay Martinen
SAS ist SATA so ähnlich
und beide sind ja im grunde SCSI in Seriell.
Definitiv nein. Sie verwenden nur dieselben elektrischen Transciever.

SATA verwendet den ATA Befehlssatz und SAS den SCSI-Befehlssatz. Die
beiden haben nicht mehr gemein, als dass sie aus Bits und Bytes bestehen.
Post by Kay Martinen
Und auch bei Parallel-SCSI
ist es im originären Serverbetrieb doch eher unüblich gewesen Platten
schlafen zu legen. Denke ich zumindest.
In der Tat. Nur kann man die ganzen SCSI Modepages (und damit auch SAS)
wahlweise temporär oder auch permanent speichern. Das geht bei SATA nicht.
Post by Kay Martinen
Stell dir ein Raid 5 vor bei dem
die Platten nicht gleichzeitig schlafen gingen oder aufwachten. Peng,
hast du ein Degraded Array und kannst es mit dem Rebuild locker in den
Ruin treiben.
SCSI Platten wachen /niemals/ von alleine wieder auf. Sie tun das genau
dann, wenn ihnen der Host den Befehl START UNIT schickt.
Post by Kay Martinen
Wenn es geht dann nur über spezielle und evtl. Herstellerspezifische
Befehle. IMHO kann man bei Seagate den Timeout in der Platte
Setzen/verriegeln - mit hdparm. Die Befehle sind IMHO aber teils als
Experimentell gekennzeichnet.
Ist ehrlich gesagt schon ein Weilchen her, aber als ich noch SCSI im
Heimserver hatte, habe ich die eine Platte durchaus nach einer Stunde
schlafen gelegt. Ich meine mich dunkel zu erinnern, dass man dazu nur
einmalig ein Kommando schicken musste. (Und dann fluchen, um dem alten
Debian-Kernel das Allow-Restart beizubringen.)


Marcel
Andreas Bockelmann
2017-08-18 20:14:37 UTC
Permalink
Raw Message
Post by Marcel Mueller
In der Tat. Nur kann man die ganzen SCSI Modepages (und damit auch SAS)
wahlweise temporär oder auch permanent speichern. Das geht bei SATA nicht.
Danke für die Aufklärung. Technisch wäre das heute ja kein Problem, denn
beide Plattenarten werden ihre Konfiguration auf dem Datenträger vorhalten.
Aber wenn es nicht implementiert wurde....
Post by Marcel Mueller
SCSI Platten wachen /niemals/ von alleine wieder auf. Sie tun das genau
dann, wenn ihnen der Host den Befehl START UNIT schickt.
Stimmt, da war was. Und ich kenne noch spinup-delay in x Sekunden mal
SCSI-ID um Netzteile zu entlasten.
--
Mit freundlichen Grüßen
Andreas Bockelmann
Kay Martinen
2017-08-19 03:09:27 UTC
Permalink
Raw Message
Post by Marcel Mueller
Post by Kay Martinen
SAS ist SATA so ähnlich
und beide sind ja im grunde SCSI in Seriell.
Definitiv nein. Sie verwenden nur dieselben elektrischen Transciever.
SATA verwendet den ATA Befehlssatz und SAS den SCSI-Befehlssatz. Die
beiden haben nicht mehr gemein, als dass sie aus Bits und Bytes bestehen.
Software/Hostseitig mag das kein Großer Unterschied mehr sein. Und, du
kannst oft SATA Platten in SAS Slots stecken - aber nicht umgekehrt.
Post by Marcel Mueller
Post by Kay Martinen
Und auch bei Parallel-SCSI
ist es im originären Serverbetrieb doch eher unüblich gewesen Platten
schlafen zu legen. Denke ich zumindest.
In der Tat. Nur kann man die ganzen SCSI Modepages (und damit auch SAS)
wahlweise temporär oder auch permanent speichern. Das geht bei SATA nicht.
Modepages habe ich wohl mal abgefragt, aber die ganzen Informationen
wegen der Kürzel nicht recht verstanden. Und auch nicht was wofür ist.
Ist ja interessant das man die Speichern kann, in der Platte, auf deren
Datenträger? Vermutlich auch mit sdparm oder?
Post by Marcel Mueller
Post by Kay Martinen
Stell dir ein Raid 5 vor bei dem
Das war nur als heran gezerrtes Beispiel gedacht. Wer will denn ein Raid
das sich selbst schlafen legt.
Post by Marcel Mueller
SCSI Platten wachen /niemals/ von alleine wieder auf. Sie tun das genau
dann, wenn ihnen der Host den Befehl START UNIT schickt.
Serverplatten: Ja. Andere SCSI Platten starten einfach sofort wenn der
Host startet. Aber, aufwachen wenn sie schon an sind/waren: Nie
probiert. Wer braucht das?
Post by Marcel Mueller
Ist ehrlich gesagt schon ein Weilchen her, aber als ich noch SCSI im
Heimserver hatte, habe ich die eine Platte durchaus nach einer Stunde
schlafen gelegt. Ich meine mich dunkel zu erinnern, dass man dazu nur
einmalig ein Kommando schicken musste. (Und dann fluchen, um dem alten
Debian-Kernel das Allow-Restart beizubringen.)
Bus-rescan vergessen?

sdparm -C "stop" und sdparm -C "start" müssten doch reichen. Das hab ich
auf einem Server öfters benutzt als der im Flur stand. Und die 10GB IBM
Platten darin waren bös laut. Allerdings ging es da nicht um stromsparen
oder automatisches Einschlafen. War auch kein Raid - glaube ich.

Kay
Marcel Mueller
2017-08-19 13:28:42 UTC
Permalink
Raw Message
Post by Kay Martinen
Post by Marcel Mueller
Post by Kay Martinen
SAS ist SATA so ähnlich
und beide sind ja im grunde SCSI in Seriell.
Definitiv nein. Sie verwenden nur dieselben elektrischen Transciever.
SATA verwendet den ATA Befehlssatz und SAS den SCSI-Befehlssatz. Die
beiden haben nicht mehr gemein, als dass sie aus Bits und Bytes bestehen.
Software/Hostseitig mag das kein Großer Unterschied mehr sein. Und, du
kannst oft SATA Platten in SAS Slots stecken - aber nicht umgekehrt.
Das genau genau deshalb, weil SAS Controller gleichzeitig auch SATA
Controller sind und automatisch in diesen Betriebszustand wechseln.
Allerdings drängen sich mir die Motive, das zu tun, kaum auf. SAS
Controller sind sündig teuer. Warum sollte man die teuren Ports mit
SATA-Platten blockieren wollen. Oder anders herum: wenn man keinen
SAS-Controller braucht, kauft man auch keinen. Außer in Ausnahmefällen
ergibt das wenig Sinn.
Post by Kay Martinen
Post by Marcel Mueller
Post by Kay Martinen
Und auch bei Parallel-SCSI
ist es im originären Serverbetrieb doch eher unüblich gewesen Platten
schlafen zu legen. Denke ich zumindest.
In der Tat. Nur kann man die ganzen SCSI Modepages (und damit auch
SAS) wahlweise temporär oder auch permanent speichern. Das geht bei
SATA nicht.
Modepages habe ich wohl mal abgefragt, aber die ganzen Informationen
wegen der Kürzel nicht recht verstanden. Und auch nicht was wofür ist.
Sollte in der SCSI-Spec stehen - von den Herstellerspezifischen Seiten
mal abgesehen.
Post by Kay Martinen
Ist ja interessant das man die Speichern kann, in der Platte, auf deren
Datenträger? Vermutlich auch mit sdparm oder?
Yep, -S ist Dein Freund.
Post by Kay Martinen
Post by Marcel Mueller
SCSI Platten wachen /niemals/ von alleine wieder auf. Sie tun das
genau dann, wenn ihnen der Host den Befehl START UNIT schickt.
Serverplatten: Ja. Andere SCSI Platten starten einfach sofort wenn der
Host startet.
Auto-Spin-Up kann man i.a. auch konfigurieren. Bei kleineren Servern mit
nicht mehr als zwei, drei Platten, kann man das schon machen. Dann kommt
der Server schneller hoch.
Post by Kay Martinen
Aber, aufwachen wenn sie schon an sind/waren: Nie
probiert. Wer braucht das?
Jeder, der sie schlafen legt. ;-)

Nein, das macht der Kernel.
Post by Kay Martinen
Post by Marcel Mueller
Ist ehrlich gesagt schon ein Weilchen her, aber als ich noch SCSI im
Heimserver hatte, habe ich die eine Platte durchaus nach einer Stunde
schlafen gelegt. Ich meine mich dunkel zu erinnern, dass man dazu nur
einmalig ein Kommando schicken musste. (Und dann fluchen, um dem alten
Debian-Kernel das Allow-Restart beizubringen.)
Bus-rescan vergessen?
Nein, ich hatte das Problem, dass der Kernel nach dem Spin-Down auf NOT
READY mit einem I/O-Fehler auf Anwendungsebene reagiert hat, anstatt
START UNIT zu senden. /sys/class/scsi... gab es da zwar schon, aber man
musste das allow_restart nach jedem Reboot wieder neu setzten. Und das
ist eine Kunst für sich, zumal die Controller bei jedem Boot eine andere
Nummer haben. Ich war dann glaube ich damit geendet, es einfach überall
zu setzen, kann ja nicht schaden.
Post by Kay Martinen
sdparm -C "stop" und sdparm -C "start" müssten doch reichen.
Ja klar, das geht schon. Wenn aber ein Client über Samba doch mal eine
Datei von der selten benötigten Platte anfordert, ist es dafür zu spät.
Der hat sich da längst seinen I/O-Fehler abgeholt. Und jedes mal den
Admin beizerren, um das Start-Kommando zu senden, ist halt nicht eben
Benutzerfreundlich.


Marcel

Andreas Bockelmann
2017-08-18 20:10:29 UTC
Permalink
Raw Message
Post by Kay Martinen
Post by Andreas Bockelmann
Frage: Gibt es keine Möglichkeit, einer SATA-Platte dauerhaft
klarzumachen, dass sie nach Zeit x schlafen gehen soll?
@Andreas: Doch, so wie du es gemacht hast, in rc.local eintragen. Evtl.
geht es auch mit smartmonctl.
Ich habe Marcel schon richtig verstanden. Meine SATA-Platte behält die
Einstellungen ja nicht, sondern mit jedem boot des Raspi bekommt sie nun die
Einstellungen wieder erneut "vor den Latz geknallt"
Post by Kay Martinen
Verwechselst du das nicht mit PATA/IDE Marcel? SAS ist SATA so ähnlich
und beide sind ja im grunde SCSI in Seriell.
Ich bin da nicht wiklich up to date, aber SATA hat zwar ein paar Kommandos
von SCSI übernommen, abe rin erster Linie basiert die Logik erst mal auf
ATA. Ich würde sogar sagen SAS ging von SCSI in Richtugn ATA herunter. Aber
das ist bei mir nicht belastbar.
Post by Kay Martinen
Und auch bei Parallel-SCSI
ist es im originären Serverbetrieb doch eher unüblich gewesen Platten
schlafen zu legen. Denke ich zumindest. Stell dir ein Raid 5 vor bei dem
die Platten nicht gleichzeitig schlafen gingen oder aufwachten. Peng,
hast du ein Degraded Array und kannst es mit dem Rebuild locker in den
Ruin treiben.
SCSI wurde ja nicht nur im RAID betrieben. Mangels Alternativen hatte man so
was auch einzeln in Computern, die man heute Workstations nennt. Im Amiga,
MAC, diverse Unix-Maschinen. Spindown-Zeiten konnte man einstellen und
Spinup-delays auch. Allerdings kenne ich das von den Seagate Elite-Platten
noch über Jumper.
--
Mit freundlichen Grüßen
Andreas Bockelmann
Loading...