博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
create instance 生成创建虚拟机从nova到调用libvirt流程(pycharm debug):
阅读量:4185 次
发布时间:2019-05-26

本文共 534 字,大约阅读时间需要 1 分钟。

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!

如有转载,请保留源作者博客信息。

如需交流,欢迎大家博客留言。

1、nova底层api创建虚拟机的route入口:
2、页面或者命令创建一个虚拟机,则会debug自动断电到pycharm代码:
3、调用compute的API接口代码(debug模式下可以看到compute_api对象为:nova.compute.api.API直接找到对应代码即可):
也可以使用debugF5跟踪: (eclipse模式的step into快捷键)
4、
在rv函数继续F5
跟踪到nova.compute.api.API的create函数:
上述代码表示cast将消息发给消息队列。接下来消息队列收到消息会执行conductor的manager里面代码:
根据build_instances。找到对应的函数:
在此处加上断点,重启服务:
接下来发送到消息队列调用manager代码(cctxt.cast函数中ctxt参数的remote_address:表示将要发送消息动作到主机158执行代码):
走调度算法(详细分析请参考后续nova-scheduler调度算法详解):
生成实例结束。
你可能感兴趣的文章
使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重
查看>>
BloomFilter布隆过滤器使用
查看>>
YoungGC 停顿超长时间
查看>>
近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战
查看>>
Redis系列一:reids的单机版安装
查看>>
Redis系列二:reids介绍
查看>>
Redis系列三:reids常用命令
查看>>
Redis系列四:redis支持的数据类型
查看>>
Redis系列五:redis键管理和redis数据库管理
查看>>
Redis系列六:redis相关功能
查看>>
Redis系列七:redis持久化
查看>>
Redis系列八:redis主从复制和哨兵
查看>>
Redis系列九:redis集群高可用
查看>>
Redis系列十:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
查看>>
架构设计:系统存储 ——Redis集群方案:高可用
查看>>
一个java对象占多少个字节?
查看>>
linux中用top、ps命令查看进程中的线程
查看>>
Java问题定位之Java线程堆栈分析
查看>>
nginx中健康检查(health_check)机制深入分析
查看>>
Flume入门
查看>>