Gelöst: Nach Hibernation got timeout

bitboy0

Member
May 20, 2020
62
2
8
56
Eine Maschine mit 64GB RAM wurde mittels Suspend to Disk angehalten.

Ich kann dann die Maschine dann nicht wieder aufwecken, weil ich nach 5 Minuten einen Timeout erhalte.
Ich musste den State aus der config-Datei löschen und die Datei mit dem State.

So wie ich das sehe kann man den Timeout von 300 Sekunden nicht erhöhen? Das ist etwas/sehr unschön.

gruß
 
Ausgangssituation war, dass ich PVE nach einem Kernel-Update neu starten wollte und davor habe ich absichtlich alle Maschinen auf Disk geparkt. Idee war, dass das vielleicht schneller gehen könnte als die Maschinen herunterzufahren und dann wieder hochzufahren.

Schon beim Vorgang des parkens ist mir aufgefallen, dass der Mailserver über 5 Minuten gebraucht hat. Das ist VIEL langsamer als die Kiste herunterzufahren. Auch Schnappschüsse brauchen sehr lange. Sind halt 64GB RAM und keine SSDs zum speichern der Snapshoots/RAW-Files

Zwei kleinere Maschinen ließen sich so nach dem Neustart des PVE auch sofort wieder starten. Allerdings ausgerechnet nicht der Server mit dem UCS/Kopano drauf.

Inwiefern kann mir der Link oben "debian.org" helfen das zu vermeiden?
Wo finde ich sleep.conf und gibt es darin eine Variable, die den Timeout hochsetzen kann?
https://forum.proxmox.com/threads/removing-hibernate-state-of-vm-proxmox-5-4.55861/
Da steht, dass der FIX auf 300 steht und ich konnte nichts weiter dazu finden.
 
Last edited:
Wir hatten ein kleines Missverständnis. Ich dachte, es ginge um Maschine im Sinne von physischer Rechner.

Soweit ich das sehe ist das Timeout weiterhin hardcoded.
Code:
153     if ($is_suspended && $timeout < 300) {
154         $timeout = 300;
155     }
Dies kann (temporär) verändert werden. Dazu muss die Zahl in der Datei
Code:
/usr/share/perl5/PVE/QemuServer/Helpers.pm
geändert werden. Allerdings ist so eine Änderung beim nächsten Upgrade wieder weg. Dafür sollte aber auch
Code:
apt install --reinstall qemu-server
einen Fehler wieder korrigieren.

Das Suspend bzw. Hibernate kann statt im GUI auch in der Befehlszeile gestartet werden. Zum Beispiel so
Code:
sudo qm suspend 101 --todisk 1 --statestorage local
Dabei kann mit statestorage der relevante Speicher angepasst werden. Falls es irgendwelche schnelleren Festplatten gibt, wäre das einen Versuch Wert.
 
  • Like
Reactions: bitboy0 and Moayad
Lösungsweg jetzt auf die Schnelle

Um die Maschine mit dem gespeicherten Zustand auch von einer sehr langsamen Platte zu starten:

in der Datei /usr/share/perl5/PVE/QemuServer/Helpers.pm
Code:
    if ($is_suspended && $timeout < 300) {
        $timeout = 300;
Die 300 jeweils durch eine größere Zahl ersetzen. Die Zahl in Sekunden muss nur größer sein als die tatsächlich Zeit für's zurück lesen.
Danach kann man die VM wieder starten. Das wird aber nach dem nächsten Update von Qemu wieder auf 300 zurückgesetzt.

oder

Akut , unter Verlust des gespeicherten Zustands(Wie nach einem Stromausfall):
Im Verzeichnis /etc/pve/qemu-server die passende conf-Datei finden und dort die Zeile mit "vmstate xxx" finden <- xxx = storage:vm-yyy-state-suspend-year-mm-dd
mit "pvesm free xxx" die Abbild-Datei entfernen, die Zeile in der conf dann löschen und die Datei speichern.
Dann mit "qm unlock yyy" <-yyy = Nummer der VM den lock-Status der VM aufheben, damit man die wieder starten kann.
 
Falls generell VM-Starts per Befehlszeile OK sind: Beim Start-Befehl kann ein Timeout angegeben werden:
Code:
qm start 101 --timeout 5000
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!