专栏首页小朋友学云计算08-初始nova与创建过程
原创

08-初始nova与创建过程

什么是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创建云主机流程图

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等虚拟化技术)

原文字描述

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 09-nova的模块及novnc详解

    1 将公网(public network)和私网(private network)隔离

    小朋友呢
  • 04-OpenStack的命令行管理

    小朋友呢
  • 07-Cinder对接GlusterFs

    小朋友呢
  • Kotlin Primer·第三章·Kotlin 与 Java 混编

    用户1907613
  • ​CODING 敏捷项目管理全新改版上线

    CODING 敏捷项目管理全新版本现已上线,新版本深度结合敏捷开发理念,完美支持 Scrum 迭代式增量开发过程,可根据团队需要设计独一无二的工作流,适应不同规...

    CODING研发管理系统
  • mysql字符串处理函数

    首先弄清楚两个概念,字符串字符数和字符串长度,字符数是指字符串所包含的的字符个数,字符串长度指的是包含的字节个数。char_length是统计字符数的函数,而...

    AsiaYe
  • 金融数字资产区块链技术开发的数字资产系统开发的的核心特征

    近年来,数字资产区块链技术的运用和发展在全球范围内掀起热潮,而以数字资产区块链作为底层技术的数字货币更是如雨后春笋。

    小威互联说
  • 一图读懂数据分析和数据挖掘的区别

    文:小蚊子 图:菜小白 干数据这行的小伙伴们是不是经常听到数据分析与数据挖掘这两个词?有没有觉得一头雾水?那么他们之间有什么区别与联系呢?今天就为你一一道来。 ...

    企鹅号小编
  • vue+webpack+mintui+mui构建项目的时候出现的一些问题解决方法

    Dream城堡
  • vue+sass 下sass不能运行问题

    用户1749219

扫码关注云+社区

领取腾讯云代金券