一 介绍
迁移是指将虚拟机从一个计算节点迁移到另外一个节点上。冷迁移是相对热迁移而言,区别在于冷迁移过程中虚拟机是关机或处于不可用状态,而热迁移则需要保证虚拟机时刻运行。
Resize则是根据需求调整虚拟机的计算能力和资源。Resize和冷迁移的工作流程相同,区别只是Resize时必须保持新的Flavor配置大于旧的配置,而冷迁移则要求两者相同。
二 Resize工作流程如下图
三 流程解析
1 nova-api将虚拟机的状态修改为RESIZE_PREP,Resize与冷迁移属于TaskAPI任务,因此nova-api会通过nova.conductor.rpcapi.ComputeTaskAPI提供的RPC接口migrate_server()调用nova-conductor。
2 nova-conductor根据参数选择Resize的流程,生成request_spec字典,并远程调用nova-scheduler选择一个合适的目标主机,最后远程调用目标主机nova-compute。
3 目标主机上要做一些准备的动作,比如通过Resource Tracker的Claim机制检测一下主机是否满足条件等,之后通过RPC回到源主机,由源主机的nova-compute服务完成迁移。