Tausende von Servern laufen ohne irgendeine Aktivität 24 Stunden am Tag, 7 Tage die Woche und 365 Tage im Jahr. Aber wenn kein Client im Netzwerk aktiv ist muss in den meisten Netzwerken auch kein Server mehr aktiv sein. In meinem Fall läuft der Server auch 24 Stunden am Tag, obwohl dieser auch nur laufen müsste wenn ein anderen Client im Netzwerk aktiv ist. Mein System (NAS, Backup, VDR-Stream und Virtualisierung) hat eine Leistungsaufnahme von 140 W, das entspricht 3,4 kWh am Tag, 100,8 kWh im Monat. Bei 20 Cent pro Kilowattstunde ergibt das umgerechnet 20,16 € im Monat.
Da kommt der c’t-Artikel in der 25. Ausgabe 09 auf Seite 190 gerade richtig.
Flexibler Ladenschluss
Wake on LAN und Schlaf bei Bedarf für Server und NAS
Linux-Server laufen meist den ganzen Tag, was reichlich Strom vergeudet. Ein Skript legt sie immer dann schlafen, wenn niemand mehr im LAN ist, der ihre Dienste braucht.
Der Autor Reik Kaps hat einen sehr interessanten Artikel geschrieben, das aktuelle Skript kann von einem Mercurial-Repository bei Intuxication heruntergeladen werden. (server-sleepd)
Kurz und knapp meine Zusammenfassung
ACHTUNG! – Debian vs. Ubuntu Server – Suspend to RAM
Zuerst installieren wir benötigte Software.
aptitude install ethtool mercurial
Danach aktivieren wir Wake On Lan (pre-down ethtool -s eth0 wol g) in der /etc/network/interfaces,…
vi /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.168.0.1 pre-down ethtool -s eth0 wol g
…mit diesem Befehl testen wir welche Schlafmodien unser System unterstützt.
echo; for i in --suspend --hibernate --suspend-hybrid; do pm-is-supported $i && echo "$(echo $i | tr [:lower:] [:upper:] | tr -d -) is supported"; done; echo
Nun zum Skript, ich bevorzuge lieber den Namen „sleepmed“ an Stelle von „server-sleepd“,…
cd /usr/src hg clone cp /usr/src/server-sleepd/server-sleepd /etc/init.d/sleepmed
Jetzt passen wir das Skript noch an, es müssen die jeweiligen IPs der Clients und die gewünschte Aktion festgelegt werden.
vi /etc/init.d/sleepmed
Ein paar Codeschnipsel als Beispiel.
# Liste der zu testenden Adressen # nicht zu überprüfende lassen # sich auskommentieren HOSTS=`grep -v ^# <<! #192.168.0.1 >> Router #192.168.0.100 >> ...das NAS selber! 192.168.0.100 192.168.0.101 192.168.0.102 192.168.0.200 !`
# shutdown- oder sleep-Befehl samt Parameter # *BITTE anpassen* /bin/true ist zum testen gedacht! # # CMD="/sbin/shutdown -h" # CMD="/sbin/halt" # CMD="/usr/sbin/pm-suspend" # CMD="/usr/sbin/pm-powersave" CMD="/usr/sbin/pm-suspend"
Das Skript kann dann mit folgenden Optionen gefüttert werden.
/etc/init.d/sleepmed run #Starte Skript im Vordergrund /etc/init.d/sleepmed start #Start als Daemon /etc/init.d/sleepmed stop #Stopt den Daemon /etc/init.d/sleepmed restart #Neustart des Daemons /etc/init.d/sleepmed status #Statusabfrage
Ab jetzt wird fleißig Geld gespart.
Links:
pm-utils
Schlafmodi
server-sleepd
Flexibler Ladenschluss c’t-Artikel
Update:
Nach dem Suspend to RAM kann das System per Magic Packet (Wake On Lan), von einem beliebigen Client im Netzwerk, wieder aufgeweckt werden.
Linux: wakeonlan 12:23:45:67:89:0a
Windows: Wake.exe 12-23-45-67-89-0a xxx.xxx.xxx.255
Schreibe einen Kommentar zu g3rn1.de » Lesenswert! Antworten abbrechen