前面咱们讨论了 Instance 的若干操做,有的操做功能比较相似,也有各自的适用场景,如今是时候系统地总结一下了。web
如上图所示,咱们把对 Instance 的管理按运维工做的场景分为两类:常规操做和故障处理。服务器
常规操做中,Launch、Start、Reboot、Shut Off 和 Terminate 都很好理解。 下面几个操做重点回顾一下:架构
Resize
经过应用不一样的 flavor 调整分配给 instance 的资源。 运维
Lock/Unlock
能够防止对 instance 的误操做。 学习
Pause/Suspend/Resume
暂停当前 instance,并在之后恢复。 Pause 和 Suspend 的区别在于 Pause 将 instance 的运行状态保存在计算节点的内存中,而 Suspend 保存在磁盘上。 Pause 的优势是 Resume 的速度比 Suspend 快;缺点是若是计算节点重启,内存数据丢失,就没法 Resume 了,而 Suspend 则没有这个问题。 ui
Snapshot
备份 instance 到 Glance。产生的 image 可用于故障恢复,或者以此为模板部署新的 instance。 spa
故障处理有两种场景:计划内和计划外。 操作系统
计划内是指提早安排时间窗口作的维护工做,好比服务器按期的微码升级,添加更换硬件等。 计划外是指发生了没有预料到的突发故障,好比强行关机形成 OS 系统文件损坏,服务器掉电,硬件故障等。 orm
对于计划内的故障处理,能够在维护窗口中将 instance 迁移到其余计算节点。 涉及以下操做: blog
Migrate
将 instance 迁移到其余计算节点。 迁移以前,instance 会被 Shut Off,支持共享存储和非共享存储。
Live Migrate
与 Migrate 不一样,Live Migrate 能不停机在线地迁移 instance,保证了业务的连续性。也支持共享存储和非共享存储(Block Migration)
Shelve/Unshelve Shelve 将 instance 保存到 Glance 上,以后可经过 Unshelve 从新部署。 Shelve 操做成功后,instance 会从原来的计算节点上删除。 Unshelve 会从新选择节点部署,可能不是原节点。
计划外的故障按照影响的范围又分为两类:Instance 故障和计算节点故障
Instance 故障只限于某一个 instance 的操做系统层面,系统没法正常启动。 能够使用以下操做修复 instance:
Rescue/Unrescue
用指定的启动盘启动,进入 Rescue 模式,修复受损的系统盘。成功修复后,经过 Unrescue 正常启动 instance。
Rebuild
若是 Rescue 没法修复,则只能经过 Rebuild 从已有的备份恢复。Instance 的备份是经过 snapshot 建立的,因此须要有备份策略按期备份。
Instance 故障的影响范围局限在特定的 instance,计算节点自己是正常工做的。若是计算节点发生故障,OpenStack 则没法与节点的 nova-compute 通讯,其上运行的全部 instance 都会受到影响。这个时候,只能经过 Evacuate 操做在其余正常节点上重建 Instance。
Evacuate
利用共享存储上 Instance 的镜像文件在其余计算节点上重建 Instance。 因此提早规划共享存储是关键。
到这里,咱们已经学习了 OpenStack Nova 的架构,讨论了 Nova API,Scheduler,Compute 等重要组件,并经过案例详尽的剖析了 Nova 各个操做,最后用一张图总结了这些操做的用途和使用场景。
Nova 是 OpenStack 最重要的项目,处于 OpenStack 的中心。 其余 Keystone,Glance,Cinder 和 Neutron 项目都是为 Nova 其服务的,必定要好好理解。
下一节咱们将学习 OpenStack 块存储服务 - Cinder。