nova/doc/source/vmstates.rst
Joshua Harlow da7e1ede9e Move create vm states to svg diagram
Change-Id: Ib747b55b6773ded8f6bb484bcbf4394ff46d36e0
2015-10-05 16:02:12 -07:00

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
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.

Sequence of VM states, task states, and power states when a new
VM instance is created.