[pve 5.4.5] API laufende Tasks auslesen/Ende feststellen?

fx919

New Member
Mar 19, 2019
13
3
3
48
Hallo,

ich möchte auf meinem Cluster ein evacuate-Script basteln. Vereinfacht verschiebe ich dazu die HA-aktivierten VMs per API-Aufruf auf einen anderen Host, was im Hintergrund abläuft. Ich würde gerne wissen, wie ich sehe, wann die Migration abgeschlossen wurde.

Das ist der Migrationsbefehl:

Code:
pvesh create /nodes/OLDNODE/qemu/101/migrate -target=NEWNODE -online

Damit bekomme ich nun diese Ausgabe mit einer Task-ID, die Aufgabe wird im Hintergrund ausgeführt.

Code:
Requesting HA migration for VM 101 to node NEWNODE
UPID:OLDNODE:00042D5A:001A0190:5CDAD0A6:hamigrate:101:root@pam:

Prüfe ich nun den Status dieses Tasks mittels:

Code:
pvesh get /nodes/OLDNODE/tasks/UPID:OLDNODE:00042D5A:001A0190:5CDAD0A6:hamigrate:101:root@pam:/status --output-format=json

... dann bekomme ich nie einen status vom Typ running. Immer nur stopped:

Code:
{
  "exitstatus": "OK",
  "id": "101",
  "node": "OLDNODE",
  "pid": 273754,
  "pstart": 1704336,
  "starttime": 1557844134,
  "status": "stopped",
  "type": "hamigrate",
  "upid": "UPID:OLDNODE:00042D5A:001A0190:5CDAD0A6:hamigrate:101:root@pam:",
  "user": "root@pam"
}

Wie erhalte ich die Information, wann die Migration abgeschlossen ist(so dass ich einen evakuierten Host neustarten kann, sobald keine VMs mehr darauf laufen)?

Vielen Dank im Voraus,
fx
 
Ok. Ich sehe, dass da ein 2. Task angezeigt wird mit der gleichen ID wie der erste, sobald die Migration abgeschlossen ist. Wie ich die beiden In Verbindung bringe sehe ich allerdings nicht.

Ich kann natürlich einfach die neuesten beiden Tasks mit der gleichen ID und Typ "qmigrate" bzw. "hamigrate" suchen und wenn beide da sind, dann das Ende nehmen. Bin mir aber nicht sicher, ob das zuverlässig und sicher ist.

Nachtrag

Aktuell mache ich am Ende der Migrationen einen qm list. Wenn da nichts mehr läuft, dann warte ich nochmal kurz und initiiere dann den Neustart. Hoffe das ist ausreichend sicher. Freue mich aber trotzdem noch über Rückmeldungen, wie man das ordentlich machen kann.
 
Last edited: