Openstack工作原理——Regions、Cells、Availability Zones、Host Aggregates

OpenStack 有一套自上而下的资源组织概念,用于大规模云平台中的节点划分和管理,如下图。

Regions

Region 更像是一个地理上的概念,每个 region 有自己独立的 endpoint,regions 之间完全隔离,但是多个 regions 之间共享同一个 keystone 和 dashboard。

所以除了提供隔离的功能,region 的设计更多侧重地理位置的概念,用户可以选择离自己更近的 region 来部署自己的服务。

Cells

Cell 是 openstack 一个非常重要的概念,主要用来解决 openstack 的扩展性和规模瓶颈。众所周知,openstack 是由很多的组件通过松耦合构成,那么当达到一定的规模后,某些模块必然成为整个系统的瓶颈。比较典型的组件就是 DB 和 MQ 了,所以,每个 cell 有自己独立的 DB 和 MQ。

在 Newton 版本引入的 cell v2 版本针对前面图中 v1 的流程做了进一步优化。

可以看到 :

api 和 cell 有了明显的边界。api 层面只需要数据库,不需要 Message Queue。

nova-api 现在依赖 nova_api 和 nova_cell0 两个数据库。

nova-scheduler 服务只需要在 api 层面上安装,cell 不需要参数调度。这样实现了一次调度就可以确定到具体在哪个 cell 的哪台机器上启动。

cell 里面只需要安装 nova-compute 和 nova-conductor 服务,和其依赖的 DB 和 MQ。

所有的 cell 变成一个扁平架构,比之前的树形多层父子架构要简化很多。

api 上面服务会直接连接 cell 的 MQ 和 DB, 所以不需要类似 nova-cell 这样子的额外服务存在,性能上也会有及大的提升。

Availability Zones

AZ 可以简单理解为一组节点的集合,这组节点具有独立的电力供应设备,比如一个个独立供电的机房,一个个独立供电的机架都可以被划分成 AZ。所以,AZ 主要是通过冗余来解决可用性问题。

AZ 之间共享所有的 nova 服务和 keystone 服务。

另外,AZ 是用户可见的一个概念,用户在创建 instance 的时候可以选择创建到哪些 AZ 中,以保证 instance 的可用性。

Host Aggregates

Host Aggregates 也是一组节点的组合,但强调这组节点具有共同的属性,比如:cpu 是指定类型的一组节点,disks 是 ssd 的一组节点,os 是 linux 或 windows 的一组节点等等。

Host Aggregates 是用户不可见的概念,主要用来给 nova-scheduler 通过某一属性来进行 instance 的调度,比如将数据库服务的 instances 都调度到具有 ssd 属性的 Host Aggregate 中,又或者让某个 flavor 或某个 image 的 instance 调度到同一个 Host Aggregates 中。

Host Aggregates 之间共享 keystone 和所有的 nova 服务。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180613G0OHIQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券