Rebuilding a SHUTOFF instance keeps it in SHUTOFF [1]. The doc incorrectly states that rebuilding always results in an ACTIVE state. This patch corrects this. [1] https://github.com/openstack/nova/blob/stable/rocky/nova/compute/manager.py#L3271-L3278 Change-Id: I1af725ec0d6db861e5aaac6f3338c2276e2dad5f
5.1 KiB
Virtual Machine States and Transitions
The following diagrams and tables show the required virtual machine (VM) states and task states for various commands issued by the user.
Allowed State Transitions
- digraph states {
-
graph [pad=".35", ranksep="0.65", nodesep="0.55", concentrate=true]; node [fontsize=10 fontname="Monospace"]; edge [arrowhead="normal", arrowsize="0.8"]; label="All states are allowed to transition to DELETED and ERROR."; forcelabels=true; labelloc=bottom; labeljust=left;
/* states */ building [label="BUILDING"] active [label="ACTIVE"] paused [label="PAUSED"] suspended [label="SUSPENDED"] stopped [label="STOPPED"] rescued [label="RESCUED"] resized [label="RESIZED"] soft_deleted [label="SOFT_DELETED"] shelved [label="SHELVED"] shelved_offloaded [label="SHELVED_OFFLOADED"] deleted [label="DELETED", color="red"] error [label="ERROR", color="red"]
/* transitions [action] */ building -> active
active -> active [headport=nw, tailport=ne] // manual layout active -> soft_deleted [tailport=e] // prevent arrowhead overlap active -> suspended active -> paused [tailport=w] // prevent arrowhead overlap active -> stopped active -> shelved active -> shelved_offloaded active -> rescued active -> resized
soft_deleted -> active [headport=e] // prevent arrowhead overlap
suspended -> active suspended -> shelved suspended -> shelved_offloaded
paused -> active paused -> shelved paused -> shelved_offloaded
stopped -> active stopped -> stopped [headport=nw, tailport=ne] // manual layout stopped -> resized stopped -> rescued stopped -> shelved stopped -> shelved_offloaded
resized -> active
rescued -> active
shelved -> shelved_offloaded shelved -> active
shelved_offloaded -> active
}
Requirements for Commands
Command | Req'd VM States | Req'd Task States | Target State |
---|---|---|---|
pause |
Active, Shutoff, Rescued |
Resize Verify, unset |
Paused |
unpause | Paused | N/A | Active |
suspend | Active, Shutoff | N/A | Suspended |
resume | Suspended | N/A | Active |
rescue | Active, Shutoff | Resize Verify, unset | Rescued |
unrescue | Rescued | N/A | Active |
set admin password | Active | N/A | Active |
rebuild | Active, Shutoff | Resize Verify, unset | Active, Shutoff |
force delete | Soft Deleted | N/A | Deleted |
restore | Soft Deleted | N/A | Active |
soft delete |
Active, Shutoff, Error |
N/A |
Soft Deleted |
delete |
Active, Shutoff, Building, Rescued, Error |
N/A |
Deleted |
backup | Active, Shutoff | N/A | Active, Shutoff |
snapshot | Active, Shutoff | N/A | Active, Shutoff |
start | Shutoff, Stopped | N/A | Active |
stop |
Active, Shutoff, Rescued |
Resize Verify, unset |
Stopped |
reboot |
Active, Shutoff, Rescued |
Resize Verify, unset |
Active |
resize | Active, Shutoff | Resize Verify, unset | Resized |
revert resize | Active, Shutoff | Resize Verify, unset | Active |
confirm resize | Active, Shutoff | Resize Verify, unset | Active |
VM states and Possible Commands
VM State | Commands |
---|---|
Paused | unpause |
Suspended | resume |
Active |
set admin password, suspend, pause, rescue, rebuild, soft delete, delete, backup, snapshot, stop, reboot, resize, revert resize, confirm resize |
Shutoff |
suspend, pause, rescue, rebuild, soft delete, delete, backup, start, snapshot, stop, reboot, resize, revert resize, confirm resize |
Rescued | unrescue, pause |
Stopped | rescue, delete, start |
Soft Deleted | force delete, restore |
Error | soft delete, delete |
Building | delete |
Rescued | delete, stop, reboot |
Create Instance States
The following diagram shows the sequence of VM states, task states, and power states when a new VM instance is created.