设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] Nova 组件详解

[复制链接]

尚未签到

发表于 2018-5-31 11:14:18 | 显示全部楼层 |阅读模式
  http://www.cnblogs.com/CloudMan6/p/5436855.html
  

  Nova 组件详解 - 每天5分钟玩转 OpenStack(26)
DSC0000.jpg
本节开始,我们将详细讲解 Nova 的各个子服务。

前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个。
今天先讨论 nova-api 和 nova-conductor。

nova-api
Nova-api 是整个 Nova 组件的门户,所有对 Nova 的请求都首先由 nova-api 处理。Nova-api 向外界暴露若干 HTTP REST API 接口。在 keystone 中我们可以查询 nova-api 的 endponits。
DSC0001.jpg
客户端就可以将请求发送到 endponits 指定的地址,向 nova-api 请求操作。当然,作为最终用户的我们不会直接发送 Rest AP I请求。OpenStack CLI,Dashboard 和其他需要跟 Nova 交换的组件会使用这些 API。
Nova-api 对接收到的 HTTP API 请求会做如下处理:1.检查客户端传人的参数是否合法有效2.调用 Nova 其他子服务的处理客户端 HTTP 请求3.格式化 Nova 其他子服务返回的结果并返回给客户端
nova-api 接收哪些请求?简单的说,只要是跟虚拟机生命周期相关的操作,nova-api 都可以响应。大部分操作都可以在 Dashboard 上找到。
打开Instance管理界面
DSC0002.jpg
点击下拉箭头,列表中就是 nova-api 可执行的操作。
DSC0003.jpg
OpenStack 用术语 “Instacne” 来表示虚拟机,后面我们将统一使用这个术语。
nova-conductor
nova-compute 需要获取和更新数据库中 instance 的信息。但 nova-compute 并不会直接访问数据库,而是通过 nova-conductor 实现数据的访问。
DSC0004.png
这样做有两个显著好处:

  • 更高的系统安全性
  • 更好的系统伸缩性
更高的安全性
在 OpenStack 的早期版本中,nova-compute 可以直接访问数据库,但这样存在非常大的安全隐患。因为 nova-compute 这个服务是部署在计算节点上的,为了能够访问控制节点上的数据库,就必须在计算节点的 /etc/nova/nova.conf 中配置访问数据库的连接信息,比如
[database]connection = mysql+pymysql://root:secret@controller/nova?charset=utf8
试想任意一个计算节点被黑客入侵,都会导致部署在控制节点上的数据库面临极大风险。
为了解决这个问题,从 G 版本开始,Nova 引入了一个新服务 nova-conductor,将 nova-compute 访问数据库的全部操作都放到 nova-conductor 中,而且 nova-conductor 是部署在控制节点上的。这样就避免了 nova-compute 直接访问数据库,增加了系统的安全性。
更好的伸缩性
nova-conductor 将 nova-compute 与数据库解耦之后还带来另一个好处:提高了 nova 的伸缩性。
nova-compute 与 conductor 是通过消息中间件交互的。这种松散的架构允许配置多个 nova-conductor 实例。在一个大规模的 OpenStack 部署环境里,管理员可以通过增加 nova-conductor 的数量来应对日益增长的计算节点对数据库的访问。
下一节我们讨论计算节点调度服务 nova-scheduler.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-483447-1-1.html 上篇帖子: Nova 组件如何协同工作 下篇帖子: nova
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表