Nova Cell V2 详解

现在 ,OpenStack 在控制平面上的性能瓶颈主要在 Message Queue 和 Database 。 尤其是 Message Queue , 随着计算节点的增加 , 性能变的越来越差 。 为了应对这种情况 , Nova 很早之前提出来 nova-cell ( 以下以 cellv1 代替 ) 的解决方案 。 目的是在把大的 OpenStack 集群分成小的单元 , 每个单元有自己的 Message Queue 和 Database。 以此来解决规模增加时引起的性能问题 。 而且不会向 Region 那样 , 把各个集群独立运行 。 在 cell 里面 ,Keystone、Neutron、Cinder、Glance 等资源还是共享的 。

cell v1

cellv1 最初的想法很好 , 但是局限于早期 nova 的架构 , 硬生生的加个 nova-cell 服务来在各个 cell 间传递消息 , 使得架构更加复杂 。 以下是 cellv1 的架构

图片描述

cell v1 的问题在于 :

  • 一直以来 ,cell v1 被标记为实验性质
  • 相关的测试很少 , 而且也没有 v1 + neutron 的测试
  • 现在来说功能已经冻结 , 不会加入新的功能
  • 不严重的 Bug 根本不会去修复
  • 使用案例很少 。 现在经常提到的使用案例也只有 CERN( 欧洲原子能研究中心 )。 一般规模下 , 完全没有必要搭建 cell v1

所以, 现在进行部署的话,如果用 cell, 就尽量使用 cell v2 吧 。

cell v2

cell v2 自 Newton 版本引入 ,Ocata 版本变为必要组件 。 以后默认部署都会初始化一个单 cell 的架构 。cell v2 的架构图如下 , 看着比 cell v1 清爽不少 。

图片描述

从架构图上 , 可以看到 :

  • api 和 cell 有了明显的边界 。 api 层面只需要数据库 , 不需要 Message Queue。
    o nova-api 现在依赖 nova_api 和 nova_cell0 两个数据库 。
  • nova-scheduler 服务只需要在 api 层面上安装 ,cell 不需要参数调度 。 这样实现了一次调度就可以确定到具体在哪个 cell 的哪台机器上启动
    o 这里其实依赖 placement 服务 , 以后的文章会提到
  • cell 里面只需要安装 nova-compute 和 nova-conductor 服务 , 和其依赖的 DB 和 MQ
  • 所有的 cell 变成一个扁平架构 。 比之前的多层父子架构要简化很多 。
  • api 上面服务会直接连接 cell 的 MQ 和 DB, 所以不需要类似 nova-cell 这样子的额外服务存在 。 性能上也会有及大的提升

nova_api & nova_cell0

自 Newton 版本 ,nova 就一直拆分 nova 数据库 , 为 cell v2 做准备 。 把一些全局数据表从 nova 库搬到了 nova_api, 下面是现在 nova_api 里面的所有表 。

+------------------------------+     +------------------------------+
| Tables_in_nova_api           |     | Tables_in_nova_api           |
+------------------------------+     +------------------------------+
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值