Energieverwaltung - Sleep / Wake-up-Server beim Zugriff


9

Ich habe einen kopflosen HP Proliant Microserver mit Ubuntu installiert. Diese Maschine hat Samba-Freigaben, die Medien bedienen, und ich rdp oder ssh in sie normalerweise hinein. Jetzt ist mein Problem, dass ich möchte, dass die Maschine in den Ruhemodus wechselt (damit der Status vom RAM auf die Festplatte gespeichert wird) und dass sie nach einer Stunde Leerlauf ausgeschaltet zu sein scheint.

Wenn versucht wird, über LAN auf die Samba-Freigabe zuzugreifen, möchte ich, dass sie aktiviert wird. Jetzt unterstützt mein Motherboard diese Funktion. Kann mich jemand in die richtige Richtung weisen, um dies einfach zu erreichen?

Vielen Dank

Antworten:


3

Die beste Anleitung, die ich im Web gefunden habe, war das XBMC-Wiki für WOL . Kurzum (mehr Infos im Link):

  1. Sie müssen WOL auf Ihrem Motherboard aktivieren.
  2. Ethtool installieren : sudo apt-get install ethtool;
  3. Festlegen der Wake-on-LAN-Optionen : sudo ethtool -s eth0 wol g;
  4. Aktivieren Sie es beim Systemstart mit einem Init-Skript. Es gibt ein Init-Skript im Wiki-Link.

Ungetestet; Infos vom Wiki-Link


2

Neben dem Ruhemodus suchen Sie den Ruhezustand, da Sie Ihren Status auf Ihrer Festplatte speichern und den Server vollständig herunterfahren möchten.

Wie viele darauf hingewiesen haben, ist die Antwort WOL (Wake On Lan). Es gibt viele Tutorials dazu, aber hauptsächlich müssen Sie Folgendes einrichten:

  • Ihr Router muss das magische Paket (wie das WOL-Paket genannt wird) an Ihren Server umgehen, sodass Sie die Portweiterleitung durchführen müssen. Es befindet sich normalerweise im LAN-Bereich. Die Standardports sind 7 und 9.
  • Ihr Motherboard muss beim Ausschalten den LAN-Anschluss abhören. Die meisten modernen MBs bieten diese Funktion, sind jedoch standardmäßig deaktiviert. Prüfen Sie! In meinem Fall heißt es "Power on by Ring on Lan".

Der Server benötigt nicht mehr Einstellungen als die geeignete Energieverwaltungskonfiguration, um das System nach einer Stunde Inaktivität herunterzufahren (dies kann über System> Administration> Energieverwaltung erfolgen).

Natürlich müssen Sie nach dem Senden des WOL-Pakets eine Weile warten, da Ihr System den Ruhezustand deaktivieren muss und dies einige Zeit dauern kann.

Viel Glück


2

Ich entschied mich für eine Lösung, mit der mein Medienserver beim Zugriff automatisch aktiviert wird, ohne von dd-wrt abhängig zu sein.

Ich habe ein Himbeer-Pi, also habe ich es verwendet, weil es wenig Strom hat und es mir nichts ausmacht, es die ganze Zeit eingeschaltet zu lassen. Natürlich kann es von jedem Linux-Rechner ausgeführt werden.

Die endgültige Lösung, die ich für mich gefunden habe, war das Schreiben eines kleinen Bash-Skripts. Die Himbeer-Pi-Abhängigkeiten sind Etherwake und TCPDump. Beide sind standardmäßig nicht auf Rasbian installiert. Auch auf dem Server muss Wake On Lan aktiviert sein, wie in den anderen Beiträgen erwähnt.

sudo apt-get install etherwake
sudo apt-get install tcpdump

Das Wake-Skript lautet wie folgt:

nano ~/wol.sh

Dann:

#!/bin/bash

pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x  #WOL target ip address
targetMAC=00:11:22:33:44:55  #WOL target MAC

wake () {
    tcpdump -i eth0 -c 1 -p host $target
    etherwake $targetMAC
    #echo WOL sent to $target at $targetMAC
return
}

while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
    if [ $varPing -eq 0 ]; then
        #echo ping success
    else
        #echo ping fail
        wake
    fi
done

Die Hauptidee ist, dass es von meinem Himbeer-Pi ausgeführt wird, der den Server weckt, wenn er eine einzelne Arp-Anfrage für den Server bemerkt. Wenn der Server wach ist, wartet er nicht auf eine Arp-Anfrage, sondern sendet ab und zu ein paar Pings, um sicherzustellen, dass er noch wach ist.

Ich habe die Datei wol.sh benannt und ausführbar gemacht. Legen Sie es dann in die sudo crontab, um @reboot als root zu starten. Dies ist für tcpdump, das einen erhöhten Zugriff benötigt, um eth0 und etherwake zu hören.

sudo chmod +x /home/pi/wol.sh
sudo crontab -e

füge dies unten hinzu

@reboot sh /home/pi/wol.sh > /dev/null

0

Wenn WoL auf Ihrem Server aktiviert ist, damit es mit einem bestimmten Protokollverkehr aufwacht, benötigen Sie so etwas wie ein Skript, das auf Ihrem Router ausgeführt wird, das Paketregeln enthält und das WoL-Magic-Paket senden kann, wenn es die Anforderung empfängt.

Beispiel für das Aufwecken des Webservers


0

Wake On Lan ist der Schlüssel, fast alle Karten unterstützen heute alle Modi (aber nicht unter Linux :().

Die einfachste Lösung ist eine Karte mit einem funktionierenden Linux-Treiber, der den Wake On Lan-Modus unterstützt: pumbgIn ethtoolmöchten Sie so etwas wie einen Unicast-Modus. Ihr Computer startet also, sobald Sie auf seine Netzwerkadresse zugreifen. Es ist jedoch noch schwieriger, eine Liste der Karten zu erhalten, die von Linux unterstützt werden. Eine, die ich gefunden habe, ist Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Eine Problemumgehung ist, wenn Sie eine Karte haben, die nicht alle Modi unterstützt: Fast alle Linux-Treiber unterstützen das magische Paket g mode =>. Sie müssen Ihren Server also explizit einschalten, bevor Sie ihn verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.