Die Maschine fährt nicht herunter: eine Anfrage ist kein Netzschalter
Herunterfahren fragt; Stoppen zieht den Stecker. Alles Verwirrende an einer Maschine, die sich weigert herunterzufahren, kommt aus dieser einen Unterscheidung, und daraus, dass eine Anfrage jemanden drinnen braucht, der zuhört.
AtlasPVE ·
Dieser Eintrag beantwortet
- proxmox vm fährt nicht herunter
- proxmox stop oder shutdown
- proxmox sauberes herunterfahren
- proxmox usv herunterfahren
- proxmox vm won't shut down
Sie drücken Herunterfahren. Die Aufgabe startet, das Rädchen dreht sich, und drei Minuten später läuft die Maschine immer noch. Irgendwann drücken Sie Stoppen, und sie stirbt sofort, was eine naheliegende Frage aufwirft: Warum hat das Erste nicht funktioniert, wenn das Zweite es offensichtlich kann?
Das sind nicht zwei Stärkegrade derselben Handlung. Es sind zwei völlig verschiedene Dinge.
Die Unterscheidung, an der alles hängt
Herunterfahren ist eine Anfrage. Die Virtualisierungsschicht bittet den Gast, sich selbst herunterzufahren, so wie das Drücken des Netzschalters an einer physischen Maschine ein Betriebssystem bittet, sauber zu schließen. Was mit dieser Anfrage geschieht, entscheidet der Gast.
Stoppen ist ein Stromausfall. Es nimmt der virtuellen Maschine sofort den Strom, ohne jedes Gespräch. Die Dokumentation warnt davor in klarer Sprache: Stoppen kann Datenverlust verursachen, also mit Vorsicht verwenden.
Sobald Sie beides auseinanderhalten, hört eine Maschine, die nicht herunterfährt, auf rätselhaft zu sein. Sie verweigert sich nicht. Drinnen hat niemand die Anfrage gehört.
Wer eigentlich zuhören soll
Es gibt zwei mögliche Zuhörer, und eine gesunde Maschine hat mindestens einen.
Die Netzschalterbehandlung des Betriebssystems. Auf einem Linuxgast ist sie normalerweise vorhanden. Auf einem minimalen Abbild, einer containerartigen Appliance oder einem System, das in einer frühen Startphase oder einer Rettungsumgebung steckt, kann sie fehlen.
Der Gastagent. Wenn er aktiviert ist und tatsächlich läuft, gibt er der Virtualisierungsschicht einen direkten Kanal nach innen, und die Anfrage nimmt diesen Weg.
Ist der Agent aus und die Netzschalterbehandlung fehlt oder antwortet nicht, geht die Anfrage hinaus und kommt nirgends an. Der Virtualisierungsschicht wird kein "Nein" gesagt. Ihr wird gar nichts gesagt, was von außen genau gleich aussieht und der Grund ist, warum die Aufgabe zu hängen statt zu scheitern scheint.
Wenn Ihre Maschinen regelmäßig zu lange zum Herunterfahren brauchen, ist die Frage, ob der Agent wirklich funktioniert, ein besserer erster Schritt als das Verkürzen von Zeitüberschreitungen.
Dann die Zeitüberschreitung, dann die Gewalt
Das Warten ist begrenzt. Je Gast beträgt die vorgegebene Zeitüberschreitung beim Herunterfahren 180 Sekunden; läuft sie ab, wird die Maschine zwangsweise gestoppt.
Ein Sammelstopp aller Gäste eines Knotens hat sein eigenes Budget: Er versucht ein sauberes Herunterfahren, wartet standardmäßig bis zu drei Minuten und stoppt dann hart, was noch läuft.
Die ehrliche Beschreibung eines unbeaufsichtigten Herunterfahrens lautet also: höflich fragen, eine feste Zeit warten, dann den Stecker ziehen. Wenn Ihre Datenbank vier Minuten zum Wegschreiben braucht, haben die Vorgaben bereits entschieden, dass sie drei bekommt.
Erhöhen Sie die Zahl, überspringen Sie nicht die Frage
Es ist verlockend, die Zeitüberschreitung als die zu justierende Stellschraube zu behandeln. Für eine Maschine, die wirklich länger braucht, ist das Erhöhen richtig.
Aber eine Maschine, die nie herunterfährt, egal wie lange Sie warten, hat kein Zeitüberschreitungsproblem, und ihr zehn Minuten zu geben heißt nur, dass Sie zehn Minuten bis zum selben erzwungenen Stopp warten. Klären Sie zuerst, ob überhaupt jemand zuhört.
Wenn eine Herunterfahraufgabe bereits feststeckt
Hängt eine Herunterfahraufgabe fest und die Maschine muss jetzt weg, gibt es einen ausdrücklichen Weg, sie zu stoppen und die laufende Herunterfahraufgabe zu übergehen, statt sich dahinter einzureihen. Den gibt es genau deshalb, weil der Fall der feststeckenden Aufgabe häufig genug ist, um eine Antwort zu brauchen.
Nutzen Sie ihn im Wissen, was er ist: immer noch ein Stromausfall, mit derselben Warnung daran.
Der Fall, der die Leute erwischt: Stromausfall
Hier hört der ganze Text auf, akademisch zu sein.
Ein Skript, das bei Stromausfall die Gäste herunterfährt, bevor die Batterien leer sind, erbt jede oben genannte Eigenschaft. Es schickt Anfragen. Gäste, die nicht zuhören, ignorieren sie. Die Zeitüberschreitung läuft. Dann wird alles noch Laufende hart gestoppt, möglicherweise bei bereits schwacher Batterie und möglicherweise alles auf einmal.
Zwei Dinge lohnen sich zu prüfen, bevor Sie sich auf so etwas verlassen, und beide sind billig:
Antworten die Gäste tatsächlich auf eine Herunterfahranfrage? Testen Sie einen, mit der Stoppuhr, an einem gewöhnlichen Nachmittag.
Passt das Gesamtbudget zur Batterie? Gäste fahren nacheinander herunter, und die Zeitüberschreitungen summieren sich. Eine Reihe von Maschinen, die je zwei Minuten brauchen, ist kein Zweiminutenherunterfahren.
Ein Stromausfallplan, der nie geprobt wurde, ist ein Plan, der genau einmal geprobt wird: im Dunkeln, unter Zeitdruck.
Was Atlas tut
Atlas erfindet keine dritte Art des Herunterfahrens. Fragen und Strom abschalten sind die beiden Dinge, die es gibt, und etwas anderes vorzugeben wäre eine Lüge mit Folgen.
Was es tut, ist sich zu weigern, beides zu verwischen. Eine zerstörerische Handlung sagt, dass sie zerstörerisch ist, bevor Sie sie bestätigen, damit "Stoppen" nie als etwas entschlosseneres "Herunterfahren" verkleidet auftritt. Diese Unterscheidung ist das ganze Thema dieses Textes, und eine Oberfläche, die beides als benachbarte Schaltflächen gleichen Gewichts zeigt, hat sie bereits verloren.
Die Tageszusammenfassung trägt die andere Hälfte: ein ungeplanter Neustart wird als Tatsache gemeldet. Eine Maschine, die nach misslungenem sauberem Herunterfahren zwangsgestoppt wurde, sieht am nächsten Morgen genauso aus wie eine abgestürzte. Beide verdienen es, bemerkt zu werden.
Quellen
Die eigene Dokumentation von Proxmox. Auf Englisch, und sie hat in dieser Sache das letzte Wort.