nova创建虚拟机源码分析系列之八 compute创建虚机

时间:2022-12-25 08:04:02

/conductor/api.py _build_instance()

nova创建虚拟机源码分析系列之八 compute创建虚机

 /conductor/rpcapi.py  _build_instance()

1 构造一些数据类型
2 修改一些api版本信息
3 投入消息队列

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 /conductor/manager.py  _build_instance()
1 过滤信息
2 调度模块工作(选出最合适的主机,并返回)
3 调用/nova/compute/rpcapi.py::build_and_run_instance() 此时已经拿到最合适主机

nova创建虚拟机源码分析系列之八 compute创建虚机

 

nova创建虚拟机源码分析系列之八 compute创建虚机

 

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 

/compute/rcpapi.py build_and_run_instance()

1 加入一个版本信息,然后调用build_and_run_instance()

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 

/compute/manager.py _do_build_and_run_instance()

nova创建虚拟机源码分析系列之八 compute创建虚机

 nova创建虚拟机源码分析系列之八 compute创建虚机

 

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 

 nova创建虚拟机源码分析系列之八 compute创建虚机

 

 

 

 

 

 

 

 /compute/manager.py build_and_run_instance()

1 得到镜像名称
2 修改主机创建消息
3 获取该主机上的可用资源
4 检查磁盘镜像大小
5 建立云主机所需的资源,包括网络,bdm
6 调用spawn()函数来创建虚拟机

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 

 

 

 

 

 

 

 

nova创建虚拟机源码分析系列之八 compute创建虚机

nova创建虚拟机源码分析系列之八 compute创建虚机

 

nova创建虚拟机源码分析系列之八 compute创建虚机

 

 nova创建虚拟机源码分析系列之八 compute创建虚机