虚拟机的launch,shut off,start,reboot,terminate都是通过nova-api发送消息到消息队列,然后nova-compute接收到消息后直接执行操作。
重点强调:lock
虚拟机被当前用户lock锁定后,当前用户下如果nova-api发送一些请求后,检索到虚拟机被锁定,一些操作是不能执行的,如果想执行操作,需要先解锁。此过程不需要nova-compute参与,直接有nova-api进行操作。
如在锁定状态下,超级管理员用户admin,通过nova-api发送一些操作指令,无论枷锁与否,不受lock的影响,直接执行操作。
重点前掉:launch
launch通过nova-api发送创建虚拟机请求,nova-api发送message到消息队列,然后nova-scheduler从消息队列接收到消息后通过一定的算法,权重筛选出最优的节点(假设此节点为A),向消息队列发送需要A节点创建虚拟机,nova-compute接收到message后,先准备资源(vcup,mem),准备镜像文件(如果没有相应的image,需要供glance下载,一般保存在_base文件下),以此镜像文件为backend文件创建虚拟机用的磁盘disk,然后定义xml,创建网络并启动虚拟机,然后nova-compute通过nova-conducter更新数据库。
重点强调:reboot
reboot分为soft reboot,hard reboot。
soft reboot 称为软重启,相当于平时系统的reboot。
hard reboot 称为硬重启,相当于关机后在开机。