Metti gli HDD in standby dopo X minuti usando hdparm non funziona


12

Uso Ubuntu 12.04 su un server di casa. Ci sono 5 dischi rigidi: un SSD con il sistema operativo e 4 HDD (Samsung HD204UI) configurati come RAID5 usando mdadm.

Non ho bisogno del RAID molto spesso (diciamo, una volta al giorno in media); contiene dati multimediali e alcuni backup, quindi ho deciso di mettere le unità in standby per la maggior parte del tempo.

Ho configurato le unità per lo spin-down automatico dopo 20 minuti usando hdparm, qui /dev/sdacome esempio:

hdparm -S 240 /dev/sda

L'output del comando ha confermato questo:

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

Ma il problema è che l'unità si gira dopo circa 5 secondi (anziché 20 minuti) dopo l'ultimo accesso e

hdparm -C /dev/sdb

display:

/dev/sdb:
 drive state is:  standby

Perché l'unità non attende i 20 minuti come configurato? Ha qualcosa a che fare con la configurazione RAID? (Non penso proprio ...)

Questo timeout molto breve è problematico in quanto si tratta di un RAID5 e quando accedo a un file, si sviluppa in blocco su quattro unità. Poiché l'unità 1 non è necessaria quando l'unità 2 viene letta, si è addormentata quando verrà utilizzata la volta successiva (dopo che l'unità 3 è stata letta). In questo modo le unità continuano a girare su e giù per tutto il tempo con un rendimento vicino allo zero.

Per le persone preoccupate per la vita delle mie unità: non sarà un problema che le unità vengano spinte su e giù una volta al giorno in media poiché preferisco risparmiare energia e calore sulla salute delle unità (uso RAID5 e il contenuto non è è molto importante).


3
Sono contento che tu abbia ricevuto la tua risposta qui. Peccato che i ragazzi di ServerFault fossero così esigenti. Avrei pensato che le tecniche di risparmio energetico sarebbero state piuttosto importanti in qualsiasi scenario aziendale lungimirante. Invece ci mancheranno.
tomfanning

1
@tomfanning Bene, presumo che ServerFault sia per server su larga scala come solo in un datacenter. Ma non lo sapevo e mi aspettavo che un server di casa contasse anche come server. Beh, in caso contrario, dovrei mettere il mio server nel mio giardino, quindi non è più in casa mia. Quello che davvero non capisco, è il motivo per cui semplicemente non mi vivono con quello che voglio e rispondono alla domanda solo se hanno risposte costruttive per la mia domanda, ma invece vogliono che io lasci che sia quello che voglio fare. [per altre persone che non sanno di cosa stiamo parlando: serverfault.com/q/389222/116951]
leemes

Risposte:


11

AHCI è abilitato nel tuo BIOS? In caso contrario, provare ad accenderlo e riprovare.

Se il problema persiste, potresti dover provare qualcosa di un po 'più complicato, poiché hdparmnon sempre funziona bene con le unità SATA, che presumo tu abbia.

Dai un'occhiata a questa pagina per la seguente soluzione relativamente semplice che utilizza crontab:

sudo apt-get install sg3-utils
crontab -e

Ora, aggiungi questo nella parte inferiore del tuo crontab (sostituisci sdx con l'unità che desideri mettere in standby):

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

Naturalmente, prima di tentare uno di questi, è consigliabile eseguire un backup completo dei contenuti dei dischi rigidi.


Ha funzionato come un fascino. Ho abilitato AHCI nel BIOS. La modalità SATA era impostata su RAID (la mia scheda madre ha un controller RAID integrato che non uso). Non sapevo che AHCI fosse necessario per un corretto controllo SMART delle unità SATA o per qualsiasi cosa qui stia facendo hdparm. Grazie!
Sembra

Sir @SirCharlo, qual è il comando di base per rendere hdd in modalità standby (usando quello sg3-utils)? È vero /usr/bin/sg_start --stop /dev/sdx?
Oki Erie Rinaldi,

1

Forse un modo migliore potrebbe essere:

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

Il primo hdparm mette immediatamente in standby il dispositivo. Il secondo disattiva APM, quindi il disco rimane in modalità standby fino al successivo accesso al disco.


Un buon suggerimento, sebbene si debba affermare che questi comandi dovrebbero essere usati con uno script che tempi le azioni.
Rucent88,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.