金鱼哥RHCA回忆录:CL210管理计算资源--课外普及之Nova组件详解

举报
金鱼哥 发表于 2022/08/05 17:33:25 2022/08/05
【摘要】 第七章 管理计算资源--课外普及之Nova组件详解

内容整理各大文章和自己的一些见解。由于CL210并没有对组件的解释,还是得普及一下才能更好地进行学习。

🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


📜一:简介

📑一、概念

  1. Nova和Swift是OpenStack最早的两个组件,nova分为控制节点和计算节点。

  2. 计算节点通过Nova Computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nova之间通信通过rabbitMQ队列进行通信。

  3. Nova位于Openstack架构的中心,其他服务或者组件(比如Glance、Cinder、Neutron等)对它提供支持,另外它本身的架构也比较复杂。


📑二、作用

​ 1. Nova是OpenStack最核心的服务模块,负责管理和维护云计算环境的计算资源,负责整个云环境虚拟机生命周期的管理。

​ 2. Nova是OpenStack的计算服务,负责维护和管理的网络和存储,提供计算服务。


📑三、体系结构

在这里插入图片描述


📜二:组件

📑一、nova-api

实现了RESTful API功能,是外部访问Nova的唯一途径。接收外部的请求并通过Message Queue将请求发送给其他的服务组件,同时也兼容EC2 API,所以也可以用EC2的管理工具对nova进行日常管理。

在这里插入图片描述


📑二、nova-scheduler

决策虚拟机创建在哪个主机(计算节点)上。决策一个虚拟机应该调度到某物理节点,需要分为两个步骤:

​ 1. 过滤(filter):过滤出可以创建虚拟机的主机。

在这里插入图片描述

  1. 计算权值(weight):根据权重大小进行分配,默认根据资源可用空间进行权重排序。

在这里插入图片描述


📑三、nova-compute

负责虚拟机的生命周期管理,创建并终止虚拟机实例的工作后台程序hypervisor api

在这里插入图片描述


📑四、nova-conductor

计算节点访问数据的中间件,nova-compute服务和数据库之间的中间件。它消除了对云数据库的直接访问。


📑五、nova-api-metadata

从实例中接收元数据请求。nova-api-metadata服务通常在nova-network安装时使用的是多宿主模式运行。


📑六、nova-placement-api

跟踪每个计算提供者的仓库和使用情况。


📑七、nova-consoleauth

用于控制台的授权验证,授权控制台代理提供的用户令牌。此服务必须运行用于控制台代理工作。您可以运行任何类型的代理,而不是集群配置中的单nova-consoleauth服务。


📑八、Queue

在守护进程之间传递消息的中心。通常使用RabbitMQ也可以用另一个基于AMQP的消息队列,例如ZeroMQ。

在这里插入图片描述


📜三:工作流程

在这里插入图片描述

​ 1. 界面或命令行通过RESTful API向keystone获取认证信息。

​ 2. keystone通过用户请求认证信息,正确后生成token返回给对应的认证请求。

​ 3. 界面或命令行通过RESTful API向nova-api发送一个创建虚拟机的请求(携带token)。

​ 4. nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户。

​ 5. keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。

​ 6. 通过认证后nova-api检查创建虚拟机参数是否有效合法后和数据库通讯。

​ 7. 当所有的参数有效后初始化新建虚拟机的数据库记录。

​ 8. nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。

​ 9. nova-scheduler进程侦听消息队列,获取nova-api的请求。

​ 10. nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。

​ 11. 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。

​ 12. nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。

​ 13. nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。

​ 14. nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。

​ 15. nova-conductor从消息队队列中拿到nova-compute请求消息。

​ 16. nova-conductor根据消息查询虚拟机对应的信息。

​ 17. nova-conductor从数据库中获得虚拟机对应信息。

​ 18. nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。

​ 19. nova-compute从对应的消息队列中获取虚拟机信息消息。

​ 20. nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。

​ 21. glance-api向keystone认证token是否有效,并返回验证结果。

​ 22. token验证通过,nova-compute获得虚拟机镜像信息(URL)。

​ 23. nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。

​ 24. neutron-server向keystone认证token是否有效,并返回验证结果。

​ 25. token验证通过,nova-compute获得虚拟机网络信息。

​ 26. nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。

​ 27. cinder-api向keystone认证token是否有效,并返回验证结果。

​ 28. token验证通过,nova-compute获得虚拟机持久化存储信息。

​ 29. nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。


📑实例管理

在这里插入图片描述


📜四:常用操作命令

📑一、生命周期和虚拟机管理

在这里插入图片描述


📑二、云主机类型和安全组管理

在这里插入图片描述


📑三、网络、浮动IP、密匙和配额管理

在这里插入图片描述


📜题外:

📑Host Aggregates 与 Availability Zones 定义上的区别

Availability Zones 通常是对 computes 节点上的资源在小的区域内进行逻辑上的分组和隔离。例如在同一个数据中心,我们可以将 Availability Zones 规划到不同的机房,或者在同一机房的几个相邻的机架,从而保障如果某个 Availability Zone 的节点发生故障(如供电系统或网络),而不影响其他的 Availability Zones 上节点运行的虚拟机,通过这种划分来提高 OpenStack 的可用性。目前 OpenStack 默认的安装是把所有的 computes 节点划分到 nova 的 Availability Zone 上,但我们可以通过对 nova.conf 文件的配置来定义不同的 Availability zones。

Host Aggregates 是在 Availability Zones 的基础上更进一步地进行逻辑的分组和隔离。例如我们可以根据不同的 computes 节点的物理硬件配置将具有相同共性的物理资源规划在同一 Host Aggregate 之下,或者根据用户的具体需求将几个 computes 节点规划在具有相同用途的同一 Host Aggregate 之下,通过这样的划分有利于提高 OpenStack 资源的使用效率。Host Aggregates 可以通过 nova client 或 API 来创建和配置。下面以 nova client 的命令行方式来配置 Host Aggregates。

Availability Zones 与 Host Aggregates 的关系

在这里插入图片描述


💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第七章 管理计算资源–课外普及之Nova组件详解 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。