FreeNAS: Automatisch aufwecken mit Raspberry Pi

Wer einen FreeNAS-Server zuhause hat will diese vielleicht passend zu den jeweiligen anderen Rechnern im Netzwerk an- und ausschalten. Mit zwei Scripts und einem Raspberry Pi ist sowohl automatisch Wake-on-LAN als auch automatischer Shutdown für FreeNAS möglich.

Grundvoraussetzung ist, dass Wake-on-LAN mit FreeNAS funktioniert. Außerdem sollte sich FreeNAS automatisch abschalten. Das ist der Fall, wenn keine anderen Geräte im Netzwerk mehr online sind, die eine Datenanfrage an FreeNAS stellen können. Außerdem benötigt man einen Rasberry Pi: dieser scannt in diesem Setup das Netzwerk nach aktiven Geräten und sendet das WOL-Packet an FreeNAS, sobald ein Rechner gefunden wird.

Schritt 1: FreeNAS automatisch ausschalten & Wake-on-LAN aktivieren
Wie in meiner Anleitung beschrieben muss FreeNAS so konfiguriert werden, dass es automatisch herunterfährt wenn keine Rechner mehr online sind. Dabei muss darauf geachtet werden, dass die Wake-on-LAN-Unterstützung aktiviert wird. Die für beide Punkte nötigen Schritte habe ich in anderen Blog-Beiträgen beschrieben:

Schritt 2: Raspberry Pi vorbereiten
Damit der Raspberry Pi das „Magic Packet“ verschicken kann, welches den FreeNAS-Server aufweckt, ist es nötig das die entsprechende Software installiert wird. Ich beschreibe dies hier anhand von Raspbian, bei anderen Distributionen funktioniert es aber entsprechend.

~# sudo apt-get install etherwake

Etherwake dient dazu, den Befehl zum Aufwachen an die MAC-Adresse des FreeNAS-Servers zu schicken. Ausprobieren kann man dies mit folgenden Befehl, das NAS sollte dann starten:

~# etherwake 00:11:22:33:44:55
Wenn jetzt der FreeNAS-Server startet hat dieser Teil der Konfiguration geklappt: der Raspberry Pi kann via Wake-On-LAN den FreeNAS-Server starten.

Schritt 3: Wake-on-LAN automatisieren
Diese Anleitung geht davon aus, dass alle Rechner im Netzwerk, die auf den FreeNAS-Server zugreifen, eine feste IP-Adresse haben. Ansonsten müsste eine bestimmte IP-Range gescannt werden, die Grundidee bleibt die selbe: der Raspberry Pi überprüft alle 5 Minuten, ob eine der IP-Adressen auf einen Ping antwortet. Gibt es eine Antwort, wird das Magic-Packet zum Aufwecken des FreeNAS geschickt. Die maximale Wartezeit zwischen Starten des Clients und möglichem Datenzugriff sind also 5 Minuten + Bootzeit des NAS.

Folgendes Script prüft, ob die IP-Adressen die in „pinglist.txt“ hinterlegt sind, antworten:

#!/bin/bash
# Program name: wakeup.sh
date
cat /verzeichnis/zur/pinglist.txt | while read output
do
    ping -c 1 "$output" > /dev/null
    if [ $? -eq 0 ]; then
    echo "IP $output is up".
    /usr/sbin/etherwake 00:11:22:33:44:55
    else
    echo "IP $output is down"
    fi
done

Der Output sollte dann wie folgt aussehen, wenn man das Script mit chmod 777 ausführbar gemacht hat. Ein Gerät ist online, deswegen wird ein Wake-Up-Signal an FreeNAS geschickt:

Sun Sep  7 16:37:18 CEST 2014
IP 192.168.0.60 is down
IP 192.168.0.61 is down
IP 192.168.0.68 is up
IP 192.168.0.65 is down
IP 192.168.0.73 is down

Fazit

Im Zusammenspiel mit dem automatischen Herunterfahren macht das automatische Starten noch einmal mehr Sinn. Das NAS ist somit wirklich nur aktiv, wenn es gebraucht wird – das spart Strom und schon die Festplatten. Mit einem Raspberry Pi ergeben sich weitere spannende Steuerungsmöglichkeiten, z.B. der gezielte Start des FreeNAS nachts um das Backup durchzuführen.

[amazon box=“B07P7TNND4″]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.