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
140W pro Stunde? Siehe auch hier: https://de.wikipedia.org/wiki/Wattstunde#H.C3.A4ufig_fehlerhafte_Schreibweise. Ein Kilo Watt hat ja laut Otto bekanntlich eintausend Wattwürmer 😉 trotzdem ist das Watt eine Leistungsangabe [J/s]. Angegeben werden muss aber die (zu bezahlende) Arbeit, also z.B. eine Wattstunde (Wh), wie du es dann auch in der Kostenberechnung getan hast.
Warum hast du auch so einen hungrigen Server?
@µme
Der Artikel wurde dementsprechend angepasst, man(n) hört halt nie auf zu lernen.
@Mike
Fleißige Systeme benötigen fleißig Strom. Hätte ich dieses System nicht, hätte ich in den letzten Tagen keinen weiteren interessanten Artikel schreiben können und dabei nichts dazu gelernt! 😉
Also 140 Watt….das ist ja ein echtes Monster. Heizen brauchst du ja dann nicht mehr viel : P
Unser Server braucht bei leichter Belastung (Bittorrent + Musik) 40 Watt.
Was sind denn Modien? Ein Modus, zwei Modi, viele Modien?
Sinngemäß schon, aber grammatisch natürlich falsch. Danke
In dem Zusammenhang wäre vielleicht powernap noch zu erwähnen. Bin ich selbst gestern erst drauf gestoßen…funktioniert aber ganz gut 🙂
ach ja, der link:
http://blog.dustinkirkland.com/2009/07/introducing-powernap.html
@zero
powernap überwacht leider nicht die Netzwerk-Aktivitäten von definierten Hosts.
Oder hab‘ ich dort etwas übersehen??
Hallo
hat jemand erfahrung das Script mit ubuntu 10.04 LTS umzusetzten? Ich denke das hier evtl. einiges anders ist und bin zu sehr Laie um das korrigiern zu können. Wäre Super wenn sich jemand damit auskennt oder evtl. eine Anleitung für 10.04 schreibt.
@Ingo
Also, ich habe das Ganze unter 10.04 LTS 1:1 umsetzten können.
Wo soll das Problem sein? (Ein bischen Linux-Wissen sollte man allerdings schon voraussetzen, allein um des Verständnis Willen…)
@ JoergHH
Danke noch mal für die Bestätigung, hab es mittlerweile auch hinbekommen und bin Fasziniert. Super Sache.
Jetzt müsste man den Rechner noch per IR einschalten können dann wäre das System perfekt für VDR.
@Info
Für IR gibt es LIRC (www.lirc.org). Ich selbst hab‘ aber keine Erfahrung damit.