Monthly Archives: March 2011

Western Digital aggressive head parking

Ho da qualche giorno acquistato due Western Digital Caviar Green da 2TB (modello EARS) da montare in un MicroServer (non mio, io ho due Seagate Barracuda LP).
Ho subito notato che non è possibile tramite hdparm gestire l’APM (advanced power management) e che il disco effettua spessissimo il parcheggio delle testine.
Il controllo con smartctl ha subito evidenziato un notevole aumento del valore load_cycle_count. Se il contatore raggiunge valori molto alti viene meno l’affidabilità del disco (sono garantiti 300.000 cicli, ma meno sono e meglio è).

Cercando con google ho scoperto che tali dischi hanno impostato a livello di firmware un timeout per il parcheggio di soli 8 secondi! Non mi è stato possibile effettuare l’override delle impostazioni con hdparm: se il parametro -B255 da errore (vedi sopra) il parametro -S240 (che imposta il timeout a 20 minuti) non sortisce effetti.

Ho scoperto che anche l’unità dell’HP Mini (sempre un WD, ma un Scorpio Blu) è soggetta allo stesso problema (qui addirittura ogni 4 secondi!): in questo caso mi ero accorto del comportamento troppo aggressivo del firmware, ma ero riuscito ad arginare il problema disabilitando l’APM con

hdparm -B255 /dev/sda

Sempre grazie a google ho trovato la soluzione definitiva sia per i Green che per lo Scorpio: si tratta dell’utility WDidle 3.1 che ufficialmente è per altri modelli sempre WD, ma che almeno con i miei esemplari funziona a meraviglia. Continue reading

MicroServer GPT support

Con mia piacevole sorpresa ho scoperto che l’HP MicroServer, pur non avendo EFI, supporta il boot da dischi partizionati con struttura GPT invece che MBR. Con Fedora 14 è stato sufficiente preparare i dischi formattati con gdisk; anaconda, l’installer, li riconosce correttamente; è quindi possibile utilizzare il disco.

I vantaggi di GPT sono molti, a partire dall’assenza di problemi di allineamento (soprattutto con dischi a settori di 4k) passando per il supporto a più di 4 partizioni primarie.

Riferimenti

https://wiki.archlinux.org/index.php/Advanced_Format

awstats on lighttpd

Ecco una semplice e veloce configurazione di lighttpd per l’esecuzione di awstats:

server.modules  += ( "mod_cgi", "mod_alias" )
 
$HTTP["host"] =~ "awstats.mydomain.tld" {
        alias.url += (
                "/awstats/"      => "/usr/share/awstats/wwwroot/cgi-bin/",
                "/awstatsicons/" => "/usr/share/awstats/wwwroot/icon/",
        )
 
        cgi.assign = (
                ".pl" => "/usr/bin/perl",
                ".cgi" => "/usr/bin/perl"
        )
        server.document-root = "/usr/share/awstats/wwwroot/"
}

La configurazione è consigliato salvarla in un file .conf (es. awstats.conf) in /etc/lighttpd/conf.d/ in modo da rendere la configurazione il più modulare possibile.

Disks hot-swap

Sebbene ufficialmente l’HP ProLiant Microserver non supporti l’hotswap dei dischi è possibile con un kernel Linux recente eseguire la sostituzione (o la sola rimozione) di un’unità; ecco come:

Per prima cosa è ovviamente necessario smontare l’unità tramite il comando di base umount; supponendo che il disco da disconnettere sia sdc il comando è

sync && umount /dev/sdc

A questo punto è necessario mandare offline l’unità da rimuovere; è possibile farlo attraverso l’interfaccia kernel in /sys con il comando

echo 1 > /sys/block/sdc/device/delete

Una volta eseguito il comando l’unità verà rimossa dal subsystem scsi (sata) e spenta; il disco effettuerà lo spin-down.

E’ ora possibile rimuovere l’unità, operazione che sul MicroServer risulta molto semplice e rapida.

Per l’inserimento di una nuova unità è sufficiente connetterla al sistema. Linux provvederà in modo autonomo al riconoscimento del disco e alla connessione dello stesso al subsystem scsi. Sarà possibile ora montare l’unità od effettuare altre operazioni sul disco (partizionamento, etc.); se non si è sicuri del device associato alla nuova unità collegata è possibile controllare gli ultimi messaggi del kernel attraverso il comando dmesg.

Questa tecnica risulta estremamente comoda in caso di fault di un’unità disco parte di una catena RAID di mirroring.

UPDATE 29/03/2011

Per poter effetture tali operazioni di hot-swap il controller deve essere settato in modalità “AHCI”. L’opzione è modificabile, dove supportata, attraverso il BIOS.

HP Micro: GPU al risparmio

Ecco il primo trucco per ridurre al minimo i consumi del già parco HP MicroServer:

con un kernel ≥ 2.6.34 (ma è consigliato almeno il 2.6.35) è possibile controllare il power management dell’AMD Radeon Mobility HD4200 integrata nel server.

Vista la natura di server e quindi l’impiego per lo più headless, o comunque in modalità testuale, è possibile intervenire impostando la GPU al massimo livello di risparmio energetico (e di conseguenza il minimo livello prestazionale).

Per attivarlo è sufficiente verificare che il metodo di gestione del power management sia settato su “profile” (e così dovrebbe essere di default)

cat /sys/class/drm/card0/device/power_method

Se fosse settato su “dynpm” eseguire il comando

echo profile > /sys/class/drm/card0/device/power_method

Infine forzare il profilo “low” per portare al minimo il clock della GPU e quindi abbassare drasticamente i consumi

echo low > /sys/class/drm/card0/device/power_profile

E’ possibile copiare i comandi 2. e 3. nel file /etc/rc.local in modo che che vengano eseguiti ad ogni riavvio del server. Su Fedora 14 è necessario solo il comando 3. Di default power_profile è impostato su “default”.

Riferimenti

https://wiki.archlinux.org/index.php/ATI#With_KMS_enabled
http://www.phoronix.com/scan.php?page=news_item&px=ODIyOA

SVG e SVGZ con lighttpd

Per fornire correttamente contenuti SVG e SVG compressi (.svgz) attraverso un server lighttpd è necessario aggiungere alcune righe alla configurazione di default.

Attivare il supporto al modulo compress nel file /etc/lighttpd/lighttpd.conf de-commentando la relativa riga in server.modules oppure aggiungendo il comando

server.modules  += ( "mod_compress" )

Aggiungere al gruppo

mimetype.assign   = ( [...] )

Il MIME corretto per SVG (image/svg+xml)

  ".svg"          =>      "image/svg+xml",
  ".svgz"         =>      "image/svg+xml",

E in ultimo aggiungere il supporto all’SVG compresso (e in questo caso anche anche al javascript compresso)

$HTTP["url"] =~ "\.(svg|js)z$" {
    setenv.add-response-header = (
    "Content-Encoding" => "x-gzip" ), compress.filetype = ("")
}

Per comodità è possibile salvare la configurazione in un nuovo file in /etc/lighttpd/conf.d/ (es. /etc/lighttpd/conf.d/svg.conf)

Riferimenti:

http://redmine.lighttpd.net/projects/lighttpd/wiki#Documentation

Two finger scroll su Fedora 14 con xfce

Il touchpad dell’HP Mini 110-3100 non supporta nativamente il multitouch e quindi nemmeno il comodissimo scroll a due dita. Può tuttavia emularlo. Ecco come attivare l’emulazione su Fedora 14 con xfce:

Editare (da root) il file /usr/share/X11/xorg.conf.d/50-synaptics.conf e nella sezione

1
2
3
4
5
6
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
EndSection

aggiungere le seguenti righe:

1
2
3
Option "EmulateTwoFingerMinZ" "30"
Option "EmulateTwoFingerMinW" "10"
Option "VertTwoFingerScroll" "on"

E’ possibile effettuare il tunning delle impostazioni relative allo scroll (soprattutto per altri modelli di touchpad) aggiungendo l’opzione

1
Option "SHMConfig" "on"

e utilizzando il comando

synclient -m 300

Le colonne Z e W contengono i valori che, quando sono appoggiate le due dita sul touchpad, vanno riportati (abbassandoli leggermente per migliorare la sensibilità) nelle opzioni EmulateTwoFingerMinZ e EmulateTwoFingerMinW.

Scarica il file 50-synaptics.conf

Riferimenti:

http://guide.debianizzati.org/index.php/Synaptics_touchpad#Multitouch