首先看一下虚拟机有多少种状态:(/nova/compute/vmstates.py)
1 ACTIVE = 'active' # VM is running 2 BUILDING = 'building' # VM only exists in DB 3 PAUSED = 'paused' 4 SUSPENDED = 'suspended' # VM is suspended to disk. 5 STOPPED = 'stopped' # VM is powered off, the disk image is still there. 6 RESCUED = 'rescued' # A rescue image is running with the original VM image 7 # attached. 8 RESIZED = 'resized' # a VM with the new size is active. The user is expected 9 # to manually confirm or revert.10 11 SOFT_DELETED = 'soft-delete' # VM is marked as deleted but the disk images are12 # still available to restore.13 DELETED = 'deleted' # VM is permanently deleted.14 15 ERROR = 'error'16 17 SHELVED = 'shelved' # VM is powered off, resources still on hypervisor18 SHELVED_OFFLOADED = 'shelved_offloaded' # VM and associated resources are19 # not on hypervisor20 21 ALLOW_SOFT_REBOOT = [ACTIVE] # states we can soft reboot from22 ALLOW_HARD_REBOOT = ALLOW_SOFT_REBOOT + [STOPPED, PAUSED, SUSPENDED, ERROR]23 # states we allow hard reboot from24 25 ALLOW_TRIGGER_CRASH_DUMP = [ACTIVE, PAUSED, RESCUED, RESIZED, ERROR]26 # states we allow to trigger crash dump27 28 ALLOW_RESOURCE_REMOVAL = [DELETED, SHELVED_OFFLOADED]29 # states we allow resources to be freed in
在删除虚拟机时,会根据虚拟机状态来进行不同的操作。可以看出deleted和shelved_offloaded两种状态下虚拟机资源完全释放,而shelved