WDSaver
Inviato: domenica 14 novembre 2010, 17:41
Apro questa topic per continuare in modo più ordinato il discorso iniziato nella discussione Notebook serie Dv-5 sull'utilizzo e la configurazione di wdsaver, un'interessante applet (si può chiamare così?) per trovare un giusto compromesso tra temperatura e numero di cicli (parcheggio della testina) nei dischi Western Digital su computer portatili.
Molti, come il sottoscritto, hanno notato che con un disco WD utilizzando ubuntu senza modifiche, in particolare usando il pc a batteria il disco iniziava inesorabilmente a ciclare. Scoprii che l'eccessivo parcheggio della testina del disco non va bene, il rischio è di rottura o di logoramento prematuro, in quanto ogni hd ha un numero di cicli medio nel corso della propria vita.
All'inizio si puntava, per cercare di risolvere il problema, sul settaggio di certi valori di risparmio energetico, e in particolare il valore di APM (advanced power management), che in ubuntu è rappresentato dal comando hdparm -B.
Quest'ultimo setta un valore numerico che va da 0 a 255. A 0 risparmio energetico massimo, a 255 risparmio energetico disattivato. La soglia teorica per il parcheggio delle testine dovrebbe essere il valore 128. Nei nostri dischi WD però la situazione (almeno nel mio) è che solo con 254 o 255 il disco non cicla, con qualsiasi altro valore il disco parcheggia all'impazzata.
Prima ho detto che il problema del parcheggio si verificava a batteria, in quanto, di default ubuntu imposta i valori di hdparm -B a 254 attaccato alla corrente e 128 per il pc a batteria.
Un'altro problema, riscontrato in particolare dai possessori di HP serie dv-5, è la temperatura eccessiva del disco e dell'intero computer.
In particolare con un valore di 254 (per evitare parcheggi) il disco tende a scaldarsi.
Un buon compromesso (e qui arrivo al dunque dopo questo riassunto mal fatto) è l'utilizzo di wdsaver!
Wdsaver effettua delle letture e delle scritture sul disco, in modo da non mandare la testina in parcheggio, quindi si possono abbassare i valori di APM, mantenendo il disco più fresco.
Wdsaver è reperibile qui. Una volta scaricato il pacchetto bz2 ed estratto vi troverete con vari file di testo, aprite il readme (mal scritto) e seguite le istruzioni:
1. Compilazione dei sorgenti di wdsaver: Aprire un terminale, recarsi nella cartella in cui si trova il file wdsaver.c, e dare il camando cc wdsaver.c -o wdsaver, es:
2. Test:
(qui nel readme c'è un errore sostanziale, scrivono wdparm invece di wdsaver)
In un'altro terminale controllare se il disco parcheggia con
il quale controlla il numero di cicli del disco, aspetta 5 min e ricontrolla il valore, se resta invariato, il disco non ha parcheggiato la testina, se aumenta, con la differenza si può capire quanti cicli ha effettuato in 5 min.
Tutta questa procedura è da affiancare ad un valore noto di APM, in quanto, arrivati a questo punto abbiamo 2 variabili che possiamo cambiare: il timeout (che non ho ben capito a cosa si riferisce) di wdsaver, rappresentato nell'esempio sopra dal valore 40 e il valore di hdparm -B (APM).
Una volta soddisfatti dei valori sperimentati, si passa al test in live mode (non chiedetemi cosa cambia) dando
(qui ho mantenuto sempre il valore 40 di esempio)
Anche in questo caso sono da controllare gli eventuali cicli.
3. Mettere wdsaver all'avvio del sistema: trovati i valori più consoni dare
dall'editor di testo aperto con l'ultimo comando aggiungere una riga subito prima di "exit 0" e incollarci
dove al posto del 40 mettete il valore di timeout trovato dai test. Salvate, riavviate e il gioco è fatto.
Aggiungo due precisazioni non fatte nel settaggio dell'APM: esso può essere modificato temporaneamente con il comando al posto di XXX mettere il valore numerico desiderato.
Per sapere su che valore è impostato dare
Per modificare i valori di APM di default del sistema andare a modificare il file /etc/hdparm.conf
ed aggiungere alla fine
Dove XXX è il valore di APM a corrente e YYY a batteria.
Scusate se sono stato prolisso ma credo che una visione d'insieme era dovuta per cercare di capirci qualcosa.
Molti, come il sottoscritto, hanno notato che con un disco WD utilizzando ubuntu senza modifiche, in particolare usando il pc a batteria il disco iniziava inesorabilmente a ciclare. Scoprii che l'eccessivo parcheggio della testina del disco non va bene, il rischio è di rottura o di logoramento prematuro, in quanto ogni hd ha un numero di cicli medio nel corso della propria vita.
All'inizio si puntava, per cercare di risolvere il problema, sul settaggio di certi valori di risparmio energetico, e in particolare il valore di APM (advanced power management), che in ubuntu è rappresentato dal comando hdparm -B.
Quest'ultimo setta un valore numerico che va da 0 a 255. A 0 risparmio energetico massimo, a 255 risparmio energetico disattivato. La soglia teorica per il parcheggio delle testine dovrebbe essere il valore 128. Nei nostri dischi WD però la situazione (almeno nel mio) è che solo con 254 o 255 il disco non cicla, con qualsiasi altro valore il disco parcheggia all'impazzata.
Prima ho detto che il problema del parcheggio si verificava a batteria, in quanto, di default ubuntu imposta i valori di hdparm -B a 254 attaccato alla corrente e 128 per il pc a batteria.
Un'altro problema, riscontrato in particolare dai possessori di HP serie dv-5, è la temperatura eccessiva del disco e dell'intero computer.
In particolare con un valore di 254 (per evitare parcheggi) il disco tende a scaldarsi.
Un buon compromesso (e qui arrivo al dunque dopo questo riassunto mal fatto) è l'utilizzo di wdsaver!
Wdsaver effettua delle letture e delle scritture sul disco, in modo da non mandare la testina in parcheggio, quindi si possono abbassare i valori di APM, mantenendo il disco più fresco.
Wdsaver è reperibile qui. Una volta scaricato il pacchetto bz2 ed estratto vi troverete con vari file di testo, aprite il readme (mal scritto) e seguite le istruzioni:
1. Compilazione dei sorgenti di wdsaver: Aprire un terminale, recarsi nella cartella in cui si trova il file wdsaver.c, e dare il camando cc wdsaver.c -o wdsaver, es:
Codice: Seleziona tutto
cd Scaricati
cd wdsaver-v1.0
cc wdsaver.c -o wdsaverCodice: Seleziona tutto
sudo ./wdsaver -t 40 -vIn un'altro terminale controllare se il disco parcheggia con
Codice: Seleziona tutto
sudo smartctl -a /dev/sda | grep Load_Cycle_Count && sleep 300 && sudo smartctl -a /dev/sda | grep Load_Cycle_Count
Tutta questa procedura è da affiancare ad un valore noto di APM, in quanto, arrivati a questo punto abbiamo 2 variabili che possiamo cambiare: il timeout (che non ho ben capito a cosa si riferisce) di wdsaver, rappresentato nell'esempio sopra dal valore 40 e il valore di hdparm -B (APM).
Una volta soddisfatti dei valori sperimentati, si passa al test in live mode (non chiedetemi cosa cambia) dando
Codice: Seleziona tutto
sudo ./wdsaver -t 40 -v -lAnche in questo caso sono da controllare gli eventuali cicli.
3. Mettere wdsaver all'avvio del sistema: trovati i valori più consoni dare
Codice: Seleziona tutto
sudo cp -i ./wdsaver /usr/bin
sudo chmod 700 /usr/bin/wdsaver
poi
sudo gedit /etc/rc.localCodice: Seleziona tutto
/usr/bin/wdsaver -t 40 -l -bdove al posto del 40 mettete il valore di timeout trovato dai test. Salvate, riavviate e il gioco è fatto.
Aggiungo due precisazioni non fatte nel settaggio dell'APM: esso può essere modificato temporaneamente con il comando
Codice: Seleziona tutto
sudo hdparm -B XXX /dev/sdaPer sapere su che valore è impostato dare
Codice: Seleziona tutto
sudo hdparm -I /dev/sda |grep AdvancedCodice: Seleziona tutto
sudo gedit /etc/hdparm.confCodice: Seleziona tutto
/dev/sda {
apm = XXX
apm_battery = YYY
}Scusate se sono stato prolisso ma credo che una visione d'insieme era dovuta per cercare di capirci qualcosa.