NAS4Free Spindown mit SAS Controller

Submitted by admin on So, 11.12.2016 - 11:51

 

In der aktuellen Version von NAS4Free ist das FreeBSD Tool spindown per Default bereits installiert. Dieses Tool kann verwendet werden, um Festplatten, die auch an einem unterstützten SAS Controller (z.B. LSI) angeschlossen sind, nach Ablauf einer definierten Idle-Time runterzufahren, was was durchaus merkbar Strom spart.

/usr/local/etc/rc.d/spindown

Leider hat man es bei NAS4Free versäumt, ein Start/Stop Skript mitzuliefern, was an dieser Stelle nun nachgeholt wird.

#!/bin/sh

. /etc/rc.subr

name="spindown"
start_cmd="${name}_start"
stop_cmd="${name}_stop"

spindown_exec="/usr/local/sbin/spindown"
spindown_pidfile="/var/run/spindown.pid"

spindown_start()
{
	echo "spindown started: $spindown_flags"
	$spindown_exec -p $spindown_pidfile $spindown_flags
}


spindown_stop()
{
	if [ -f "$spindown_pidfile" ]; then
		spindown_pid=`cat $spindown_pidfile`
		if [ ! -z $spindown_pid ]; then
			kill $spindown_pid
			echo "spindown (pid: $spindown_pid) stopped."
		else
			echo "spindown pid is empty, strange..."
		fi
		rm -f "$spindown_pidfile"
	else
		echo "No pid file $spindown_pidfile found"
	fi
}


load_rc_config $name
run_rc_command "$1"

Mit chmod 755 /usr/local/etc/rc.d/spindown wird es ausführbar gemacht.

/etc/rc.conf

Wie bei FreeBSD üblich, wird die Konfiguration in der rc.conf vorgenommen. Es müssen alle Devices angegeben werden, die von spindown überwacht werden sollten. Die Systemplatte darf da nicht eingetragen werden, denn spindown funktioniert da nicht, weil dort immer Zugriffe stattfinden, so dass die idle Time nie erreicht wird.

spindown_enable="YES"
spindown_flags="-b -t 3600 -d da0 -d da1 -d da2 -d da3 -d da4 -d da5 -d da6 -d da7 -d da8 -d da9"

Tests

Bevor man das aktiviert, sollten Tests gemacht werden. Nach den bisherigen Erfahrungen macht Spindown auch mit ZFS keine Probleme. Selbst der Zugriff über einen NFS hat zwar rund 30s gedauert, danach war der NFS Share wieder voll funktionsfähig.