Nova 建立一个虚机的流程

该博客详细介绍了OpenStack Nova创建虚拟机的流程,从Horizon发送命令到Keystone验证,经过nova-api的DB初始化,通过消息队列调度到合适的compute节点,再到hypervisor执行创建,最后由Horizon确认虚机状态。过程中涉及了RPC通信、组件间的消息队列和RESTful API交互。
摘要由CSDN通过智能技术生成

Nova 模块调用流程图

Nova模块调用流程图

Nova 建立虚机详细流程

基本状态

initial state

Horizon 发送命令到Keystone验证

用户通过Horizon发送验证请求到keystone,通过RESTful API 发送HTTP请求到Keystone,keytone通过用户验证之后返回给Horizon用户token令牌,用于余下流程的验证使用。
发送请求

nova-api接收API请求

Horizon将建立虚机需要的参数通过RESTful API 请求传给nova-api

这里写图片描述

nova-api带着token请求keystone验证

这里写图片描述

通过验证之后nova-api就会初始化DB

通过验证之后,nova-api就会创建和初始化新虚机的nova database,这一步操作通过nova-conductor完成。

这里写图片描述

nova-api通过消息队列把消息传给nova-schedule

通过RPC.CALL的方式,请求实例调度,交给nova-schedule根据调度策略选出能够建立虚机的host。

这里写图片描述

nova-schedule根据过滤器和调度策略,在DB中选出合适的host

这里写图片描述

nova-schedule将参数传给compute节点的nova-compute进行虚机创建

nova-schedule选择出host id之后,通过RPC.CAST给nova-compute进行实际的虚机创建操作。

这里写图片描述

nova-compute –> queue –> nova-network

nova-compute会通过消息队列RPC.CALL请求nova-network来给虚机分配网络信息。

  • 如果这里用的是Neutron的话,由于Nova和Neutron之间是没有消息队列通信的,所以需要通过API通信

这里写图片描述

nova-compute –> hypervisor

nova-compute 会去nova database里面获取虚机信息(就是一开始在Horizon定义好的那些),然后通过API或者libvirt下发给hypervisor进行处理

这里写图片描述

hypervisor 进行虚机创建

hypervisor –> Glance or Image Sto
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值