OpenStack中nova组件创建虚拟机的源码流程

此处以OpenStack mitaka版本为例,实际最新的Ocata版本也差不多,以创建一个虚拟机为例来分析nova源码中执行流程,该流程有助于二次开发,阅读源码前最好先熟悉一下pastedeploy、webob、stevedore等openstack中的核心库,以及rpc消息通信机制。
安装完OpenStack后,所有的源码在/usr/lib//usr/lib/python2.7/site-packages/目录下,nova服务器端源码在nova目录中,客户端源码在novaclient目录中,动态加载nova插件的映射文件在nova-XXXX-info目录中的entry_points.txt文件中。
客户端:
novaclient在初始化的过程会把/nova/v2/下所有的xxxxManager类加载进来,并通过_construct_http_client()构造一个HTTPClient对象,用来发送url请求,每个xxxxManger类都直接或间接继承了base.ManagerWithFind类,xxxxManager类中的方法主要用来构造url格式、请求参数、请求方法。客户端创建虚拟机的请求对应在/novaclient/v2/servers.py中的_boot()方法,该方法调用了基类Manager中的_create()方法。
服务器端:
nova在接收到客户端的请求后,会通过pastedeploy加载/etc/nova/api-paste.ini配置文件来完成url的映射、认证、请求等,配置文件中包含了四类部件app(应用程序)、filter(过滤器)、pipeline(管道)、composite(复合体)。

[composite:openstack_compute_api_v21]
use = 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值