Spindown mit M1015 und ZFS

m4rkus

Well-Known Member
Hallo,

in meinem Homeserver habe ich einen IBM M1015 (geflashed auf LSI IT-Mode) und nutze diesen in einem ZFS raidz2.
Leider funktioniert ein Spindown der Platten nur manuell über camcontrol.

Bisher habe ich testweise das paket sysutils/spindown getestet und komme an einer Stelle nicht weiter:
Starte ich das tool im Debugmodus funktioniert das Ganze einwandfrei.

Code:
spindown -D -t 20 -d da0 -d da1 -d da2 -d da3 -d da4 -d da5 -i 10

Wenn ich das Ganze dann als Daemon starte, funktioniert es genau 1 Mal (Kontrolle mit smartctl -n standby /dev/da0)
Sobald der Pool einmal wieder gestartet wird (bspw. TimeMachine-Backup etc...), fährt er danach nicht mehr runter.
Code:
/usr/local/sbin/spindown -p /var/run/spindown.pid -b -i 10 -t 45 -d da0 -d da1 -d da2 -d da3 -d da4 -d da5

Leider ist das Logging bei dem Tool nicht existent - habt ihr eine Idee, was ich versuchen kann?

Bisher behelfe ich mir mit einem Dienst-Restart alle 15 Minuten.
Getestet auf Plattenzugriffe habe ich mit fstat.

Gruß
Markus
 
Bei mir läuft einfach Selbstgefrickeltes:

Code:
#!/usr/local/bin/zsh
PATH=/usr/bin:/usr/sbin:/bin:/sbin

interval=5
timeout=$((60*60))
typeset -A timeouts

iostat -x ${interval} \
| stdbuf -o L egrep '^a?da' \
| while read device rs ws kr kw qlen svct b; do
    if [[ "${kr}" == "0.0" && "${kw}" == "0.0" ]]; then
        timeouts[${device}]=$((timeouts[${device}]+interval))
    else
        timeouts[${device}]=0
    fi

    if [[ ${timeouts[${device}]} -ge ${timeout} ]]; then
        logger -t "${0}[${$}]" "spindown ${device}"
        case ${device} in
            ada*)
                camcontrol standby ${device} >/dev/null
                ;;
            da*)
                camcontrol stop ${device} >/dev/null
                ;;
        esac
    fi
done

Quick'n'dirty.
 
und komme an einer Stelle nicht weiter

ich grabe leider mal die Leiche aus. Wie hast du das seitdem geregelt und vor allem: läuft das stabil bei dir? Ich bin noch am Rausfinden, was meine Abstürze produzieren könnte.

Code:
mps0: <Avago Technologies (LSI) SAS2008> port 0xe000-0xe0ff mem 0xfeab0000-0xfeabffff,0xfeac0000-0xfeafffff irq 28 at device 0.0 on pci1
mps0: Firmware: 20.00.07.00, Driver: 21.02.00.00-fbsd
mps0: IOCCapabilities: 1285c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,HostDisc>
Also gleicher Controller und ich nutze auch das spindown.

Eintrag in der rc.conf:
Code:
spindown_enable="YES"
spindown_flags="-b -t 600 -d da0 -d da1 -d da2 -d da3 -d da4 -d da5 -d da6 -d da7"

So funktioniert das problemlos bei mir. Den Prüf-Intervall brauchst du nicht angeben, der ist standardmäßig auf 60 sec.
 
Oha - lange her :)

Mittlerweile bin ich mehrfach hin und hergesprungen und habe aktuell nur noch ein Synology-NAS. Beim Umzug wird es wohl auf eine OpenZFS-Implementierung in Kombination mit GlusterFS unter Linux hinauslaufen.

FreeBSD nutze ich (leider) nicht mehr - Synergie-Effekte mit CentOS und @work sind einfach höher.

Gruß
Markus
 
Zurück
Oben