前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >08-初始nova与创建过程

08-初始nova与创建过程

原创
作者头像
小朋友呢
修改2019-12-27 10:18:20
1.4K0
修改2019-12-27 10:18:20
举报

什么是NOVA?

nova是openstack中的一个组件,通过nova-api组件接收用户的消息,nova-scheduler根据计算的权重在后端计算节点中选择一个合适的进行安装

使用nova-computer来专门用来管理云主机的生命周期,比如:创建、销毁、挂起、还原、开机、关机、重启等

用户可以在web界面以novnc的方式访问云主机控制台

Nova系统的架构

模块

功能

一般部署位置

nova-api

接受并客户端发来的消息

控制节点

nova-scheduler

选择合适的主机

控制节点

nova-conductor

数据库操作和复杂流程控制

控制节点

nova-compute

云主机生命周期管理和资源管理

计算节点

nova-novncproxy

novnc访问虚拟机代理

控制节点

nova-consoleauth

novnc访问虚拟机鉴权

控制节点

Nova创建云主机过程

Nova创建云主机流程图
Nova创建云主机流程图

step->1

首先要创建一个云主机, 必须得有一个身份呀,不然都不知道谁创建的,无论是在web界面登录,或者在命令行中切换到openstack用户环境

在进行身份验证的时候都是keystone在管理

step->2

keystone在接收到用户传递过来的域、用户、密码信息以后,查询数据库,确认身份后将一个token(相当于房间的门卡)返回给该用户

让用户之后再进行操作的时候就凭借token就可以了

step->3

在web界面/命令行中创建一个云主机后,horizon就去调用nova-api

此时nova-api接收到了,用户的token、创建云主机的请求,云主机相关配置信息

step->4

nova-api不知道传过的token是否有效,就拿着horizon的token去找keystone去验证

step->5

keystone一看nova-api带来的token,这不就是自己刚发的那个么,但程序可没这么聪明,它还得乖乖查一次数据库,然后告诉nova-pai,这兄弟信得过,你就照它说的做吧

step->6

nova-api从大哥那回来,接收了horizon提供的两样东西,一是云主机配置信息,二是创建请求,这nova-api手底下也有一帮小兄弟,这帮人之间沟通可不太方便都得通过一块小黑板(mq消息队列),把自己的需求写在小黑板上,能做的了这事的人自然就去做了。但配置信息现在还不能写在小黑板上,得找到确定去干活的人之后才行啊,所以nova-api就把配置信息放到数据库里

step->7

数据库把配置信息收好之后,对nova-api说了声,我放好了

step->8

放好配置信息后nova-api就在小黑板上写“现在要创建一台云主机,配置信息我已经放到数据库了,小s你给安排安排吧”

step->9

这个小s就是nova-schedular,他就像是nova-api的秘书,nova-api的有事都是通过它交代给其他人的,这一步就是他从小黑板上看到了nova-api的信息

step->10

小s现在知道了要创建云主机,但它要看一看云主机都要什么配置,才好决定该把这事交给谁去做(这里是指多个nova-compute的情况,各个计算节点的资源使用情况都在小s这里),所以他让数据库把云主机配置信息发给他看看

step->11

数据库收到请求之后,把云主机配置信息发给小s

step->12

小s拿到配置信息后,使用调度算法决定了要让nova-compute去干这个事,就在小黑板上写“nova-compute你给创建个云主机,配置都在数据库里了”

step->13

nova-compute看到小黑板上的东西之后,本应该直接去数据库拿取配置信息,但因为nova-compute的特殊身份,nova-compute所在计算节点上全是云主机,万一有一台云主机被黑客入侵从而控制计算节点,直接拖库是很危险的。所以不能让nova-compute知道数据库在什么地方

step->14

nova-compute没办法去数据库取东西难道就不工作了吗?那可不行啊,他不知道去哪取,但他哥们知道啊,于是他在小黑板上写“nova-conductor,你帮我去数据库取一下配置信息”

step->15

nova-conductor从小黑板上看到了nova-compute的请求

step->16

nova-conductor告诉数据库我要查看某某云主机的配置信息

step->17

数据库把云主机配置信息发送给nova-conductor

step->18

nova-conductor把配置信息写在小黑板上

step->19

nova-compute从小黑板上读取云主机的配置信息

step->20

nova-compute拿到了云主机配置信息一看,人家可是专业的,立马就知道该怎么做了,先去找glance-api拿镜像吧,刚才讲了那么多,可都是在nova组件内部的,这次去找别的组件可不是写在小黑板上了,它得带着自己的身份证去,告诉glance-api,我要xxx镜像

step->21

glance-api看nova-compute过来,他可不认识nova-compute,让nova-compute拿出身份证,拿着人家身份证找到自己大哥keystone看看这人靠不靠谱,keystone一看,没问题,按他说的做吧(在nova验证horizon被当做两步,这里化做一步,是为了简化重复的流程)

step->22

glance-api把镜像资源信息返回给nova-compute(这里主要说创建云主机的过程,除nova外其他组件内部先不提)

step->23

接着nova-compute找到neutron-server告诉他我要xxx网络资源

step->24

neutron-server也不认识他,拿着他的身份证找keystone确认了一下身份

step->25

nuetron-server把网络资源信息返回给nova-compute

step->26

nova-compute找到cinder-api要存储资源,云主机得有硬盘啊,得存东西啊(同样,这里图中也有错误)

step->27

cinder-api也不认识他,拿着他的身份证找keystone确认了一下身份

step->28

cinder-api把存储资源信息返回给nova-compute

step->29

nova-compute拿到了所有资源之后,他其实也只是个收集信息的,他把工作全都交给了真正创建虚拟机的Hypervisor(kvm,zen等虚拟化技术)

原文字描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是NOVA?
  • Nova系统的架构
  • Nova创建云主机过程
    • step->1
      • step->2
        • step->3
          • step->4
            • step->5
              • step->6
                • step->7
                  • step->8
                    • step->9
                      • step->10
                        • step->11
                          • step->12
                            • step->13
                              • step->14
                                • step->15
                                  • step->16
                                    • step->17
                                      • step->18
                                        • step->19
                                          • step->20
                                            • step->21
                                              • step->22
                                                • step->23
                                                  • step->24
                                                    • step->25
                                                      • step->26
                                                        • step->27
                                                          • step->28
                                                            • step->29
                                                            相关产品与服务
                                                            云服务器
                                                            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                                                            领券
                                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档