Hallo zusammen,
ich habe jetzt mal eine ziemlich komplexe Frage an euch:
Bei mir zuhause läuft derzeit ein Windows Server 2012 R2 als AD-Controller mit Hyper-V Rolle und einigen VM's und 5-7 Clients (Windows Pc's, Smartphones, Mediacenter auf einem Raspberry PI. Da der Server nicht rund um die Uhr benötigt wird, habe ich mit Enviprot AutoShutDown Manager und einem Raspberry Pi mit Debian (welcher 24/7 läuft) ein intelligentes Power-Management erstellt. Das ganze läuft folgendermaßen ab:
1. Der Server wird durch die Clients bzw. VM's aktiv gehalten. Die VM's werden zu einem bestimmten Zeitpunkt bzw. wenn bestimmte Voraussetzungen gegeben sind (Netzwerkauslastung, CPU Last, usw.) heruntergefahren. Wenn die Clients nun ebenfalls aus sind erkennt dies der Server und fährt nach einem vorgegebenen Countdown ebenfalls herunter.
2. Der RaspberryPi scannt jede Minute mittels eines cronjob das Netzwerk nach aktiven IP Adressen, sobald er eine aktive IP erkennt sendet er mit etherwake einen WOL befehl an den Server.
Und da kommt jetzt schon meine erste OffTopic-Frage. Bei dem nachfolgenden Script, welches ich zufällig in einem Forum gefunden habe, sendet der Raspberry Pi ab der ersten aktiven IP zu jeder Minute einen WOL Befehl und das obwohl der Server schon in Betrieb ist. Wie müsste ich jetzt das Script abändern, damit erkannt wird ob der server nun aktiv ist und keine weiteren WOL befehle mehr gesendet werden müssen. Im Gegenzug muss das Script ja dann wieder erkennen wenn der Server aus ist und dann wieder beginnen das Netzwerk nach aktiven IP Adressen zu scannen.
In der pinglist.txt sind nur die IP Adressen eingetragen, die der Raspberry Pi scannen soll.
So viel zum kleinen Problem.
Mein größeres Problem ist jedoch folgendes:
Ich plane den Windows Host mit Hyper-V gegen einen ESXi Host zu ersetzen. Als VM wird dann der Windows Server 2012R2 mit AD und den anderen VM's eingerichtet.
Allerdings soll nun meine Power-Management Lösung für diese Szenario adaptiert werden.
Den ESXi Host mit der Etherwake Lösung zu starten, denke ich, wird kein Problem sein. Jedoch soll der Host herunterfahren wenn keine VM mehr aktiv ist. Eine Zeitgesteuerte Lösung wird allerdings hier nicht funktionieren, da ja die VM des Windows Servers so lange aktiv sein wird wie die anderen VM's bzw. Clients.
Ich habe lange überlegt und bin dann auf die Idee gekommen, den Spieß einfach umzudrehen. D.h. der Raspberry Pi scannt das Netzwerk so lange bis keine vorgegeben IP mehr aktiv verfügbar ist und führt dann auf dem ESXi Host einen Shutdownbefehl durch.
Allerdings habe ich keine Ahnung wie das gehen soll.
Habt ihr da vielleicht Ideen die mir weiterhelfen können?
Vielen Dank im Vorfeld
Grüße
ThommyLee
ich habe jetzt mal eine ziemlich komplexe Frage an euch:
Bei mir zuhause läuft derzeit ein Windows Server 2012 R2 als AD-Controller mit Hyper-V Rolle und einigen VM's und 5-7 Clients (Windows Pc's, Smartphones, Mediacenter auf einem Raspberry PI. Da der Server nicht rund um die Uhr benötigt wird, habe ich mit Enviprot AutoShutDown Manager und einem Raspberry Pi mit Debian (welcher 24/7 läuft) ein intelligentes Power-Management erstellt. Das ganze läuft folgendermaßen ab:
1. Der Server wird durch die Clients bzw. VM's aktiv gehalten. Die VM's werden zu einem bestimmten Zeitpunkt bzw. wenn bestimmte Voraussetzungen gegeben sind (Netzwerkauslastung, CPU Last, usw.) heruntergefahren. Wenn die Clients nun ebenfalls aus sind erkennt dies der Server und fährt nach einem vorgegebenen Countdown ebenfalls herunter.
2. Der RaspberryPi scannt jede Minute mittels eines cronjob das Netzwerk nach aktiven IP Adressen, sobald er eine aktive IP erkennt sendet er mit etherwake einen WOL befehl an den Server.
Und da kommt jetzt schon meine erste OffTopic-Frage. Bei dem nachfolgenden Script, welches ich zufällig in einem Forum gefunden habe, sendet der Raspberry Pi ab der ersten aktiven IP zu jeder Minute einen WOL Befehl und das obwohl der Server schon in Betrieb ist. Wie müsste ich jetzt das Script abändern, damit erkannt wird ob der server nun aktiv ist und keine weiteren WOL befehle mehr gesendet werden müssen. Im Gegenzug muss das Script ja dann wieder erkennen wenn der Server aus ist und dann wieder beginnen das Netzwerk nach aktiven IP Adressen zu scannen.
#!/bin/bash
# Program name: wakeup.sh
date
cat /usr/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:25:90:A5:3F:C1
else
echo "IP $output is down"
fi
done
# Program name: wakeup.sh
date
cat /usr/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:25:90:A5:3F:C1
else
echo "IP $output is down"
fi
done
In der pinglist.txt sind nur die IP Adressen eingetragen, die der Raspberry Pi scannen soll.
So viel zum kleinen Problem.
Mein größeres Problem ist jedoch folgendes:
Ich plane den Windows Host mit Hyper-V gegen einen ESXi Host zu ersetzen. Als VM wird dann der Windows Server 2012R2 mit AD und den anderen VM's eingerichtet.
Allerdings soll nun meine Power-Management Lösung für diese Szenario adaptiert werden.
Den ESXi Host mit der Etherwake Lösung zu starten, denke ich, wird kein Problem sein. Jedoch soll der Host herunterfahren wenn keine VM mehr aktiv ist. Eine Zeitgesteuerte Lösung wird allerdings hier nicht funktionieren, da ja die VM des Windows Servers so lange aktiv sein wird wie die anderen VM's bzw. Clients.
Ich habe lange überlegt und bin dann auf die Idee gekommen, den Spieß einfach umzudrehen. D.h. der Raspberry Pi scannt das Netzwerk so lange bis keine vorgegeben IP mehr aktiv verfügbar ist und führt dann auf dem ESXi Host einen Shutdownbefehl durch.
Allerdings habe ich keine Ahnung wie das gehen soll.
Habt ihr da vielleicht Ideen die mir weiterhelfen können?
Vielen Dank im Vorfeld
Grüße
ThommyLee