Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!
APC-USV über USB ansprechen und ESX herunterfahren
APC-USV über USB ansprechen und ESX herunterfahren
Hallo Zusammen,
ich habe eine USV, die leider keine Möglichkeit bietet diese mit dem Netzwerk zu verbinden, sprich ich kann nur über USB mit ihr sprechen.
Jetzt ist mein Vorhaben, dass die USV ab einem bestimmten %-Satz die VMs herunterfährt und zum Schluss den ESX abschaltet. Ein Hochfahren ist nicht wichtig. Das soll manuell gemacht werden.
Was sind da die besten Methoden?
ich habe eine USV, die leider keine Möglichkeit bietet diese mit dem Netzwerk zu verbinden, sprich ich kann nur über USB mit ihr sprechen.
Jetzt ist mein Vorhaben, dass die USV ab einem bestimmten %-Satz die VMs herunterfährt und zum Schluss den ESX abschaltet. Ein Hochfahren ist nicht wichtig. Das soll manuell gemacht werden.
Was sind da die besten Methoden?
-
- Experte
- Beiträge: 1006
- Registriert: 30.10.2004, 12:41
Ich habe das schon öfters gemacht, eine APC-USV per USB durchreichen und dann über eine VM den eigenen ESXI herunterfahren.
Man muss auch nicht die einzelnen VM's herunterfahren.Es reicht, dem ESXI einen "halt" Befehl zu geben. Dann fährt er die VM's vor dem Abschalten herunter, so wie sie in der Konfiguration unter "VM starten/herunterfahren" eingestellt sind.
Man muss auch nicht die einzelnen VM's herunterfahren.Es reicht, dem ESXI einen "halt" Befehl zu geben. Dann fährt er die VM's vor dem Abschalten herunter, so wie sie in der Konfiguration unter "VM starten/herunterfahren" eingestellt sind.
-
- Experte
- Beiträge: 1006
- Registriert: 30.10.2004, 12:41
Re: APC-USV über USB ansprechen und ESX herunterfahren
Fachixx hat geschrieben:Hallo Zusammen,
ich habe eine USV, die leider keine Möglichkeit bietet diese mit dem Netzwerk zu verbinden, sprich ich kann nur über USB mit ihr sprechen.
Jetzt ist mein Vorhaben, dass die USV ab einem bestimmten %-Satz die VMs herunterfährt und zum Schluss den ESX abschaltet. Ein Hochfahren ist nicht wichtig. Das soll manuell gemacht werden.
Was sind da die besten Methoden?
Beim einem Kunden haben wir das so gelöst das ein kleines Debian-Gastsystem die USV für den ESX-Host ausliest und den "APC-Server" spielt. Alle anderen Gäste auf dem Host pollen diesen Gast mit den passenden Tools regelmässig an und fahren bei Bedarf runter.
Zusätzlich schreibt das Debain-System eine Steuerdatei per ssh auf den Host. Findet der ESX-Host diese Datei fährt er nach 10 Minuten runter.
Klappt hier sowohl mit seriellen als auch mit Netzwerk-USVen da der APCD unter Linux sehr flexibel ist.
Nachteil:
- Manuelles Timing zwischen Host und Gästen. Wenn die Gäste mehr als 10 Minuten brauchen wird es hakelig.
- Die Gäste können nicht mal eben auf einen anderen Host umziehen ohne die USV-Konfiguration pro Gast anzupassen
das geht mit ssh auch mit einer freien Lizenz:
192.168.3.4 ist der ESXI-Host, welcher heruntergefahren werden soll, kann auch der eigene Host sein, auf welchem die VM läuft
plink ist in Debian im Paket putty-tools enthalten
Code: Alles auswählen
echo y | plink root@192.168.3.4 -pw xyz halt >> /var/log/doshutdown 2>&1
192.168.3.4 ist der ESXI-Host, welcher heruntergefahren werden soll, kann auch der eigene Host sein, auf welchem die VM läuft
plink ist in Debian im Paket putty-tools enthalten
auf Debian APC über USB einbinden und damit den ESXI-Host herunterfahren:
apt-get install apcupsd
apt-get install putty-tools
/etc/apcupsd/apcupsd.conf:
neue Datei anlegen /etc/apcupsd/doshutdown:
chmod 755 doshutdown
/etc/apcupsd/killpower am Ende ändern:
service apcupsd restart
apt-get install apcupsd
apt-get install putty-tools
/etc/apcupsd/apcupsd.conf:
Code: Alles auswählen
UPSCABLE usb
UPSTYPE usb
DEVICE
neue Datei anlegen /etc/apcupsd/doshutdown:
Code: Alles auswählen
#!/bin/sh
echo y | plink root@192.168.3.4 -pw xyz halt >> /var/log/doshutdown 2>&1
exit 99
chmod 755 doshutdown
/etc/apcupsd/killpower am Ende ändern:
Code: Alles auswählen
#!/bin/sh
#
# This shell script if placed in /etc/apcupsd
# will be called by /etc/apcupsd/apccontrol before
# apcupsd kills the power in the UPS. You probably
# need to edit this to mount read-only /usr and /var,
# otherwise apcupsd will not run.
# Choose one of this solution
#mount -n -o ro /usr
#mount -n -o ro /var
#
#mount | awk '/ext2/ { print $3 }' | while read line; do
# mount -n -o ro,remount $line
#done
#mount | awk '/ext3/ { print $3 }' | while read line; do
# mount -n -o ro,remount $line
#done
#mount | awk '/reiserfs/ { print $3 }' | while read line; do
# mount -n -o ro,remount $line
#done
# exit 0
# exit-code geaendert auf 99, um poweroff zu deaktivieren
exit 99
service apcupsd restart
Ich muss jetzt nochmal darauf zurück kommen, da ich mehrere Fragen habe ...
1.
Hier muss ich die IP ändern und das "xyz" in das root-Passwort, richtig?
2.
Was genau muss ich in dem zweiten Code abändern? Verstehe den nicht so ganz.
1.
Code: Alles auswählen
#!/bin/sh
echo y | plink root@192.168.3.4 -pw xyz halt >> /var/log/doshutdown 2>&1
exit 99
Hier muss ich die IP ändern und das "xyz" in das root-Passwort, richtig?
2.
Was genau muss ich in dem zweiten Code abändern? Verstehe den nicht so ganz.
1. genau, die IP von dem ESXI-Host und das root-Passwort eintragen
der ESXI-Host muss den SSH-Zugang freigeschaltet haben
am besten vorher testen:
ping 192.168.3.4 -> ist das Netzwerk richtig konfiguriert?
ssh 192.168.3.4 -> kann man sich mit root + passwort einloggen?
2. nur das Ende abändern (exit 99), die Datei ist schon vorhanden
der ESXI-Host muss den SSH-Zugang freigeschaltet haben
am besten vorher testen:
ping 192.168.3.4 -> ist das Netzwerk richtig konfiguriert?
ssh 192.168.3.4 -> kann man sich mit root + passwort einloggen?
2. nur das Ende abändern (exit 99), die Datei ist schon vorhanden
exit 99 ist ein Signal an das apcupsd, dass es kein poweroff durchführen soll, ansonsten schaltet die UPS nach 90 sec den Strom ab und das ist für ESXI zu wenig. Bei USB kann man das nicht verlängern, das geht nur mit einer seriellen Verbindung, deswegen wird das poweroff hier mit 99 komplett deaktiviert.
Ändern musst du die BATTERYLEVEL in /etc/apcupsd/apcupsd.conf:
BATTERYLEVEL percent of battery
If BATTERYLEVEL is specified, during a power failure, apcupsd will halt the system when the remaining battery charge falls below the specified percentage. The default is 5 percent.
Ändern musst du die BATTERYLEVEL in /etc/apcupsd/apcupsd.conf:
BATTERYLEVEL percent of battery
If BATTERYLEVEL is specified, during a power failure, apcupsd will halt the system when the remaining battery charge falls below the specified percentage. The default is 5 percent.
Gut das hab ich nun verstanden. Ich fass jetzt einfach mal zusammen, wäre super wenn du mich bestätigen oder korrigieren könntest.
Debian installieren
apcupsd installieren
putty-tools installieren (wofür sind die, überhaupt?)
Unter /etc/default/apcupsd
Dann in der apcupsd.conf meine Daten einfügen.
neue Datei anlegen /etc/apcupsd/doshutdown:
chmod 755 doshutdown (wofür ist das?)
etc/apcupsd/killpower am Ende das exit 99 auskommentieren, damit die USV nicht herunterfährt.
Debian installieren
apcupsd installieren
putty-tools installieren (wofür sind die, überhaupt?)
Unter /etc/default/apcupsd
Code: Alles auswählen
# Defaults for apcupsd initscript
# Apcupsd-devel internal configuration
APCACCESS=/sbin/apcaccess
ISCONFIGURED=yes
Dann in der apcupsd.conf meine Daten einfügen.
neue Datei anlegen /etc/apcupsd/doshutdown:
Code: Alles auswählen
#!/bin/sh
echo y | plink root@192.168.xx.xx -pw ROOT-PW halt >> /var/log/doshutdown 2>&1
exit 99
chmod 755 doshutdown (wofür ist das?)
etc/apcupsd/killpower am Ende das exit 99 auskommentieren, damit die USV nicht herunterfährt.
Ja, so sieht es gut aus, am Ende exit 0 auskommentieren und exit 99 hinzufügen
Wenn apcupsd eine Datei mit dem Namen doshutdown findet, so wird diese anstelle der Standard-Prozedur für das shutdown ausgeführt. So kann man einen eigenen Script einbinden, welcher mit chmod 755 ausführbar gemacht sein muss.
putty-tools ist für plink.
Wenn apcupsd eine Datei mit dem Namen doshutdown findet, so wird diese anstelle der Standard-Prozedur für das shutdown ausgeführt. So kann man einen eigenen Script einbinden, welcher mit chmod 755 ausführbar gemacht sein muss.
putty-tools ist für plink.
So ich hab das nun alles eingestellt. Habe die Verbindung über ssh mit dem ESX geprüft und konnte mich verbinden. Nun bekomme ich folgendes Ergebnis:
Wenn ich den Stecker ziehe und unter meine Grenze komme schaltet der ESX-Host sofort aus ohne irgendwas herunterzufahren. Vom Verhalten her so, als wenn ich ihm einfach den Strom abziehe, so schnell fährt er runter.
Folgendes finde ich in den Logs
Wenn ich den Stecker ziehe und unter meine Grenze komme schaltet der ESX-Host sofort aus ohne irgendwas herunterzufahren. Vom Verhalten her so, als wenn ich ihm einfach den Strom abziehe, so schnell fährt er runter.
Folgendes finde ich in den Logs
Das ist OK, dafür ist das echo y vor dem Befehl, um diese Meldung zu bestätigen. Es gibt keine weitere Fehlermeldung?
Kommt der Halt-Befehl beim ESXI an? Das kann man im Vmware Vsphere Client beobachten.
Und ist im killpower am Ende ein exit 99?
/etc/apcupsd/killpower:
Kommt der Halt-Befehl beim ESXI an? Das kann man im Vmware Vsphere Client beobachten.
Und ist im killpower am Ende ein exit 99?
/etc/apcupsd/killpower:
Code: Alles auswählen
#!/bin/sh
exit 99
Wo genau sollte ich das unter dem vSphere Client sehen? Unter "Task & Events" sehe ich leider kein Befehl. Ich konnte mich aber vorher mit ssh auf dem root einloggen.
Am Ende der killdown steht exit 99.
Edit:
Hier mal meine Einstellungen /etc/apcupsd/apcupsd.conf
UPSNAME TESTNAME
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
BATTERYLEVEL 80
MINUTES 4
ANNOY 0
ANNOYDELAY 0
NOLOGON disable
KILLDELAY 260
Edit2:
Muss auf dem ESX-Host noch etwas installiert werden? PerlToolkit oder sowas? Der ESX-Host von mir ist Standart installiert, sonst nichts.
Am Ende der killdown steht exit 99.
Edit:
Hier mal meine Einstellungen /etc/apcupsd/apcupsd.conf
UPSNAME TESTNAME
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
BATTERYLEVEL 80
MINUTES 4
ANNOY 0
ANNOYDELAY 0
NOLOGON disable
KILLDELAY 260
Edit2:
Muss auf dem ESX-Host noch etwas installiert werden? PerlToolkit oder sowas? Der ESX-Host von mir ist Standart installiert, sonst nichts.
Auf dem ESXI-Host muss nichts installiert werden, nur der ssh-Zugang muss freigeschaltet sein.
Um das Herunterfahren zu testen, kannst du dich mit ssh auf dem ESXI einloggen und dann "halt" eingeben. Dann kann man im vSphere Client unten in der Statuszeile sehen, wie zuerst die VM's und dann der Host heruntergefahren wird, vorausgesetzt das die VM's so eingestellt sind, dass sie automatisch starten und stoppen.
Dann das gleiche nochmals von der Linux-Shell aus testen:
plink root@192.168.xx.xx -pw ROOT-PW halt
Als 3. Schritt dann mit apcupsd testen und dabei den vSphere Client beobachten, was passiert, parallel auch in der Linux-Shell die Log-Dateien.
Um das Herunterfahren zu testen, kannst du dich mit ssh auf dem ESXI einloggen und dann "halt" eingeben. Dann kann man im vSphere Client unten in der Statuszeile sehen, wie zuerst die VM's und dann der Host heruntergefahren wird, vorausgesetzt das die VM's so eingestellt sind, dass sie automatisch starten und stoppen.
Dann das gleiche nochmals von der Linux-Shell aus testen:
plink root@192.168.xx.xx -pw ROOT-PW halt
Als 3. Schritt dann mit apcupsd testen und dabei den vSphere Client beobachten, was passiert, parallel auch in der Linux-Shell die Log-Dateien.
So ich nochmal. Es hapert jetzt nur noch an einem kleinen Punkt, und zwar scheint er das "echo y" nicht zu machen. Denn wenn ich den doshutdown-Befehl über das Debian-Terminal mache, dann kommt die Frage mit dem Key die ich mit [y/n] bestätigen kann. Sobald ich bestätige führt er aus.
Also entweder wird das Skript gar nicht ausgelöst, oder er bestätigt nicht mit [y].
Beim letzten Test hat er nur die Debian-Maschine runter gefahren...
Also entweder wird das Skript gar nicht ausgelöst, oder er bestätigt nicht mit [y].
Beim letzten Test hat er nur die Debian-Maschine runter gefahren...
Zurück zu „vSphere 5.5 / ESXi 5.5“
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste