horizon流程图_Openstack创建云主机的流程-小小白(linuxzkq)

本文详细介绍了OpenStack通过Horizon或CLI创建云主机的整个流程,涉及keystone认证、nova-api验证、调度算法、nova-compute与glance、neutron的交互,以及libvirt驱动启动虚拟机等关键步骤。
摘要由CSDN通过智能技术生成

客户(用户)端通过命令行CLI或Dashboard Horizon使用自己的用户名密码请求认证组件keystone进行用户的验证;

keystone通过查询在keystone的数据库user表中是否存在user的相关信息,包括password加密后的hash值,并返回一个token_id(令牌),和 serviceCatalog(一些服务的endpoint地址,cinder、glance-api后面下载镜像和创建块存储时会用到);

客户端带上keystone返回的token_id和创建虚机的相关参数,通过nova-api地址Post请求nova组件创建虚拟机;

nova-api接收到请求后,首先使用请求携带的token_id去访问keystone,验证令牌是否有效;

keystone验证通过后返回更新后的认证信息;

nova api通过查询Nova DB库,比对检查创建虚拟机的参数是否有效与合法;

检查虚拟机name是否符合命名规范,flavor_id是否在数据库中存在,image_uuid是否是正确的uuid格式,检查instance、vcpu、ram的数量是否超过配额。

当且仅当所有传参都有效合法时,更新nova数据库,新建一条instance记录,vm_states设为BUILDING,task_state设为SCHEDULING;

nova api 远程调用传递请求、参数给nova scheduler,把消息“请给我创建一台虚拟机”丢到消息队列,然后定时查询虚机的状态;

nova scheduler从queue中获取到“请给我创建一台虚拟机”的这条消息;

nova scheduler访问nova数据库,通过调度算法,过滤出一些合适的、空闲的计算节点,然后进行排序;

更新虚机节点信息,返回一个最优节点id 给nova scheduler;

nova scheduler选定host(最优节点id)之后,通过rpc.call的方式调用nova-compute服务,把“创建虚机请求”消息再次丢到消息队列(mq);

nova compute从MQ中获取到创建虚拟机请求的消息;

#nova-compute有个定时任务,定期从数据库中查找到运行在该节点上的所有虚拟机信息,统计得到空闲CPU个数、空闲内存大小和空闲磁盘大小。然后更新数据库compute_node信息,以保证调度的准确性。

nova compute通过rpc.call的方式查询nova数据库中虚机的信息,例如主机模板和id;

nova conductor从消息队列中拿到请求查询数据库中该(虚拟机信息)的消息;

nova conductor查询nova数据库;

nova 数据库返回被查询的虚拟机信息给nova conductor;

nova conductor把查询到的虚拟机信息丢到MQ中,然后nova compute从消息队列中获取该虚拟机的信息;

nova compute 请求glance 的restful api,下载所需要的镜像,一般是qcow2格式的; http://www.cnblogs.com/zhoumingang/p/5522463.html

glance api 也会去keystone 验证请求的token是否有效;

token验证有效,glance api 返回镜像信息给nova-compute;

同理,nova compute请求neutron api配置网络(Quantum(Neutron的前身)),例如获取虚机的ip地址、掩码,网关等信息;

neutron api去keystone 验证请求的token是否有效;

token验证有效,neutron api 返回网 络信息给nova-compute;

25-27步骤.同glance、neutron 验证token, 返回块设备信息,即云硬盘给nova-compute;

28步骤.根据上面配置的虚拟机信息,生成xml,写入libvirt.xml文件,然后调用libvirt driver 去使用libvirt.xml 文件启动虚拟机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值