Hallo Leute!
Ich kämpfe seit eine Woche mit diesem Problem und habe keine Lösung in Sicht...
Folgendes: wir testen gerade auf Arbeit oVirt (http://www.ovirt.org/). Wir haben deswegen einen Server, auf dem der "Engine" läuft und zwei Hosts, auf den die VMs laufen. Alles läuft prima, die Maschine können auch live von einem Host zu den anderen migriert werden, sobald man über die Webschnittstelle oder die REST-Schnittstelle den Host in "maintenance" setzt.
Nun zum Problem: anscheinend verstehen die Leute von oVirt unter den Begriff "Cluster" was anderes als den Rest der Welt, so dass, wenn ein Host verschwindet ist für oVirt kein Grund eine Migration der VMs zu starten...
Gut, Kernel-Panic sind relativ selten, eventuell können wir auch damit leben. Die Hosts sind auch an USV angeschlossen, so dass beim Stromausfall ein sauberes Shutdown möglich ist, also kein Problem! Aber Neustart des Hosts wegen Updates oder ähnliches passiert schon öfter. Was wir wollen ist eine Möglichkeit, dass der Host in "maintenance" gesetzt wird, wenn ein shutdown gestartet wird, ohne dass jemand sich in der Webschnittstelle anmelden muss und das per Hand machen.
Ich habe deswegen ein kleines Python-Skript gebastelt, das genau das macht. Das funktioniert auch gut. Das Problem ist jetzt nur, dieses Skript VOR dem Shutdown automatisch zu starten...
Auf den Hosts läuft CentOS 7, der mit Systemd arbeitet. Das Dreck hasse ich wie die Pest und bisher hat er leider den Kampf gewonnen...
Ich habe ein Skript gebastelt, das in der Theorie nach dem Start des Rechners und vor dem Shutdown aufgerufen werden soll:
[Unit] Description=oVirt interface for managing host After=vdsmd.service vdsm-network.service libvirtd.service
[Service] Type=simple RemainAfterExit=yes ExecStart=/usr/local/bin/ovirt-maintenance.sh active ExecStop=/usr/local/bin/ovirt-maintenance.sh maintenance KillMode=none
[Install] WantedBy=multi-user.target
Nur geht es nicht... Es wird zwar beim Hochfahren aufgerufen (so dass mein Skript ovirt-maintenance.sh mit dem Parameter active aufgerufen wird) und beim Shutdown mit dem Parameter maintenance, aber:
1) es wird zu spät aufgerufen (nachdem libvirt schon gestoppt worden ist) 2) das System wartet überhaupt nicht, dass das Skript fertig ist...
Kann jemand mir helfen und mir sagen, was ich falsch mache?
Danke sehr! Luca Bertoncello (lucabert@lucabert.de)
Am 23.09.2015 um 09:32 schrieb Luca Bertoncello:
Hallo Leute!
Ich kämpfe seit eine Woche mit diesem Problem und habe keine Lösung in Sicht...
Folgendes: wir testen gerade auf Arbeit oVirt (http://www.ovirt.org/). Wir haben deswegen einen Server, auf dem der "Engine" läuft und zwei Hosts, auf den die VMs laufen. Alles läuft prima, die Maschine können auch live von einem Host zu den anderen migriert werden, sobald man über die Webschnittstelle oder die REST-Schnittstelle den Host in "maintenance" setzt.
Nun zum Problem: anscheinend verstehen die Leute von oVirt unter den Begriff "Cluster" was anderes als den Rest der Welt, so dass, wenn ein Host verschwindet ist für oVirt kein Grund eine Migration der VMs zu starten...
naja cluster sind zusammenschluss, du denkst bei cluste woh immer mit an HA haste HA VM Reservation eingeschaltet?
Gut, Kernel-Panic sind relativ selten, eventuell können wir auch damit leben. Die Hosts sind auch an USV angeschlossen, so dass beim Stromausfall ein sauberes Shutdown möglich ist,
möglich aber auch erfolgreich getestet das die events der usv wirklich durch kommen?
mehre netztteile an einer usv? mehrer usvs? wenn mehrer stromkreise was passiert wenn nur ein stromkreis wegfällt (Sicherung) fährt du den Server runter?
also kein Problem! Aber Neustart des Hosts wegen Updates oder ähnliches passiert schon öfter. Was wir wollen ist eine Möglichkeit, dass der Host in "maintenance" gesetzt wird, wenn ein shutdown gestartet wird, ohne dass jemand sich in der Webschnittstelle anmelden muss und das per Hand machen.
Wie bitte? Ich verstehe jetzt nicht genau was du willst? du willst den Host in "maintenance" setzen und das soll ein "herunterfahren" der VM starten ein umzug der VMfände ich in einer HA clusterlösung besser
Ich habe deswegen ein kleines Python-Skript gebastelt, das genau das macht. Das funktioniert auch gut. Das Problem ist jetzt nur, dieses Skript VOR dem Shutdown automatisch zu starten...
Auf den Hosts läuft CentOS 7, der mit Systemd arbeitet. Das Dreck hasse ich wie die Pest und bisher hat er leider den Kampf gewonnen...
Ich habe ein Skript gebastelt, das in der Theorie nach dem Start des Rechners und vor dem Shutdown aufgerufen werden soll:
Wie bitte? verstehe ich dich jetzt richtig du willst einen "dienst" haben der bei booten gestarten wird und bei shutdown gestopt wird
[Unit] Description=oVirt interface for managing host After=vdsmd.service vdsm-network.service libvirtd.service
[Service] Type=simple RemainAfterExit=yes ExecStart=/usr/local/bin/ovirt-maintenance.sh active ExecStop=/usr/local/bin/ovirt-maintenance.sh maintenance KillMode=none
[Install] WantedBy=multi-user.target
Nur geht es nicht... Es wird zwar beim Hochfahren aufgerufen (so dass mein Skript ovirt-maintenance.sh mit dem Parameter active aufgerufen wird) und beim Shutdown mit dem Parameter maintenance, aber:
- es wird zu spät aufgerufen (nachdem libvirt schon gestoppt worden ist)
Abhängigkeiten
- das System wartet überhaupt nicht, dass das Skript fertig ist...
Abhängigkeiten, wenn du keine definierst wieso sollte das system warten es macht vieles nebenher das ist das erklärte Ziel des "Drecks"
Woher soll der Dreck wissen das er auf das Ende warten soll wenn du ihm es nicht sagst. (ja früher ...)
Requires= After=
Andreas
Kann jemand mir helfen und mir sagen, was ich falsch mache?
Danke sehr! Luca Bertoncello (lucabert@lucabert.de)
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Zitat von fridy_lugdd@yahoo.com:
naja cluster sind zusammenschluss, du denkst bei cluste woh immer mit an HA haste HA VM Reservation eingeschaltet?
Ich habe in oVirt alles eingeschaltet, was ich einschalten konnte und was mit HA in dem Namen hat...
Gut, Kernel-Panic sind relativ selten, eventuell können wir auch damit leben. Die Hosts sind auch an USV angeschlossen, so dass beim Stromausfall ein sauberes Shutdown möglich ist,
möglich aber auch erfolgreich getestet das die events der usv wirklich durch kommen?
Die USV ruft ein "shutdown -h +0" auf. Solange ich nicht in der Lage bin, ein System zu basteln, dass beim Shutdown mein Skript startet, wird es wohl nicht klappen...
mehre netztteile an einer usv? mehrer usvs? wenn mehrer stromkreise was passiert wenn nur ein stromkreis wegfällt (Sicherung) fährt du den Server runter?
Also, der Serverraum und die Server sind schon professionell eingerichtet. Wir haben hier etwas mehr als "eine Kiste hinter der Küche" mit ein paar Kabel... :)
also kein Problem! Aber Neustart des Hosts wegen Updates oder ähnliches passiert schon öfter. Was wir wollen ist eine Möglichkeit, dass der Host in "maintenance" gesetzt wird, wenn ein shutdown gestartet wird, ohne dass jemand sich in der Webschnittstelle anmelden muss und das per Hand machen.
Wie bitte? Ich verstehe jetzt nicht genau was du willst? du willst den Host in "maintenance" setzen und das soll ein "herunterfahren" der VM starten ein umzug der VMfände ich in einer HA clusterlösung besser
Ich will den Host in "maintenance" setzen, weil wenn ich das mache, wird oVirt automatisch alle VMs des Hosts auf einen (oder mehreren) anderen Host migrieren.
Ich habe ein Skript gebastelt, das in der Theorie nach dem Start des Rechners und vor dem Shutdown aufgerufen werden soll:
Wie bitte? verstehe ich dich jetzt richtig du willst einen "dienst" haben der bei booten gestarten wird und bei shutdown gestopt wird
Beim booten soll ein Skript mit einem bestimmten Parameter aufgerufen werden, damit oVirt weißt, dass der Host wieder da ist. Beim herunterfahren soll das Skript mit einem anderen Parameter aufgerufen werden, damit oVirt den Host in "maintenance" setzt und die VMs migriert. Die Begriffe habe ich nicht selber überlegt, sondern oVirt. Meiner Meinung nach, sollte so ein Software schon von sich in der Lage sein, so ein Fall zu verwalten, ist aber nicht der Fall...
- es wird zu spät aufgerufen (nachdem libvirt schon gestoppt worden ist)
Abhängigkeiten
- das System wartet überhaupt nicht, dass das Skript fertig ist...
Abhängigkeiten, wenn du keine definierst wieso sollte das system warten es macht vieles nebenher das ist das erklärte Ziel des "Drecks"
Woher soll der Dreck wissen das er auf das Ende warten soll wenn du ihm es nicht sagst. (ja früher ...)
Requires= After=
Die Parameter habe ich auch gesehen und probiert. Kannst du mir sagen, was ich nach "Requires=" und "After=" schreiben soll? Ich habe bisher alles möglichen probiert, aber immer erfolglos...
Danke Luca Bertoncello (lucabert@lucabert.de)
Am 23.09.2015 um 13:58 schrieb Luca Bertoncello:
Zitat von fridy_lugdd@yahoo.com:
naja cluster sind zusammenschluss, du denkst bei cluste woh immer mit an HA haste HA VM Reservation eingeschaltet?
Ich habe in oVirt alles eingeschaltet, was ich einschalten konnte und was mit HA in dem Namen hat...
Gut, Kernel-Panic sind relativ selten, eventuell können wir auch damit leben. Die Hosts sind auch an USV angeschlossen, so dass beim Stromausfall ein sauberes Shutdown möglich ist,
möglich aber auch erfolgreich getestet das die events der usv wirklich durch kommen?
Die USV ruft ein "shutdown -h +0" auf. Solange ich nicht in der Lage bin, ein System zu basteln, dass beim Shutdown mein Skript startet, wird es wohl nicht klappen...
mehre netztteile an einer usv? mehrer usvs? wenn mehrer stromkreise was passiert wenn nur ein stromkreis wegfällt (Sicherung) fährt du den Server runter?
Also, der Serverraum und die Server sind schon professionell eingerichtet. Wir haben hier etwas mehr als "eine Kiste hinter der Küche" mit ein paar Kabel... :)
das will ich nicht bestreiten. Meist muss man sich um die Logik selber kümmern wenn man eine USV hat ist es noch recht einfach bei mehren wird es schon schwieriger. mansche haben nur einen Stromkreis an der USV so eine USV kann auch mal defekt gehen deren Stromkrei kann mal wegen einer Sicherung unterbrochen sein, die Frage fährt dann alles Runter? Wenn man mehrer USV hat ist die Frage Welche der USV hat mehr zu sagen
also kein Problem! Aber Neustart des Hosts wegen Updates oder ähnliches passiert schon öfter. Was wir wollen ist eine Möglichkeit, dass der Host in "maintenance" gesetzt wird, wenn ein shutdown gestartet wird, ohne dass jemand sich in der Webschnittstelle anmelden muss und das per Hand machen.
Wie bitte? Ich verstehe jetzt nicht genau was du willst? du willst den Host in "maintenance" setzen und das soll ein "herunterfahren" der VM starten ein umzug der VMfände ich in einer HA clusterlösung besser
Ich will den Host in "maintenance" setzen, weil wenn ich das mache, wird oVirt automatisch alle VMs des Hosts auf einen (oder mehreren) anderen Host migrieren.
Okay, also willst du das selbe. Willst du wenn ein shutdown an den Host gesetzt wird das eine "migration" gestartet wird in dem der "maintanence" ge
Ich habe ein Skript gebastelt, das in der Theorie nach dem Start des Rechners und vor dem Shutdown aufgerufen werden soll:
Wie bitte? verstehe ich dich jetzt richtig du willst einen "dienst" haben der bei booten gestarten wird und bei shutdown gestopt wird
Beim booten soll ein Skript mit einem bestimmten Parameter aufgerufen werden, damit oVirt weißt, dass der Host wieder da ist. Beim herunterfahren soll das Skript mit einem anderen Parameter aufgerufen werden, damit oVirt den Host in "maintenance" setzt und die VMs migriert. Die Begriffe habe ich nicht selber überlegt, sondern oVirt. Meiner Meinung nach, sollte so ein Software schon von sich in der Lage sein, so ein Fall zu verwalten, ist aber nicht der Fall...
- es wird zu spät aufgerufen (nachdem libvirt schon gestoppt worden
ist)
Abhängigkeiten
- das System wartet überhaupt nicht, dass das Skript fertig ist...
Abhängigkeiten, wenn du keine definierst wieso sollte das system warten es macht vieles nebenher das ist das erklärte Ziel des "Drecks"
Woher soll der Dreck wissen das er auf das Ende warten soll wenn du ihm es nicht sagst. (ja früher ...)
Requires= After=
Die Parameter habe ich auch gesehen und probiert. Kannst du mir sagen, was ich nach "Requires=" und "After=" schreiben soll? Ich habe bisher alles möglichen probiert, aber immer erfolglos...
die dienste die gebraucht werden und netzwerk und so ich kenne jetzt ovirt nicht so gut das ich dir das genau sagen kann müsste man sich anschauen(bin momentan ganz selten in DD)
aber mal vieleicht gibt es eine andere Lösung 1. weil meine systeme die ich so kennen bleiben auch nach einem hochfahren in "maintanence" wenn ich sie vorher in "maintanence" gestellt habe, das ist auch gut so weil ich will sie ja warten :-)
wenn du ein shutdown -h now absetzt dann schreib doch shutdown ein alias sei creativ
dies migriert alle machinen zu dem anderen Host wenn das erfolgreich dann fahre weiter runter(da kann systemd das "verhasste" ja wieder siegen :-) ) möglicherweise brauchste ein force Option für die "USV" Lösung weil ein verschieben auf den anderen Host, der wohl auch runter gefahr werden soll(möglicher weise kennen euren Aufbau nicht )nicht so sinnvoll ist.
Wenn nach dem Hochfahren keine VM auf den hochgefahrenen Host migriert wird, kann das auch ganz normal sein in einen HA Cluster der sich nicht um Last ausgleich kümmert währe das legetim. Ob oVirt lastaugleich kann weiß ich nicht, müsste man nachlesen.
Andreas
Danke Luca Bertoncello (lucabert@lucabert.de)
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
lug-dd@mailman.schlittermann.de