OpenStack 概念
OpenStack 基本概念
Tenant -> 租户
- 资源的集合,资源的容器,资源的拥有者是租户
- 计算资源(物理机),存储资源(云硬盘),网络资源,镜像资源等等
- 早期的版本中叫
project Devstack默认创建两个tenant:admin和demo
Tenant的配额(tenant quotas)instance(实例)个数vcpu个数- 内存数量
- 内部
ip和公网ip数量
User -> 用户
- 认证的对象
- 访问
openstack中的每一个服务,都是user这个对象去访问的 user要归属于某个tenant,默认生成admin和demo两个userAWS EC2没有tenant的概念,只支持user
- 访问
role -> 角色
- 权限的集合,将权限赋给用户(
role->user)_member_代表权限在tenant内,admin代表在所有tenant都有权限role是可嵌套的,语法格式为:rule:[result]rule表明这条规是啥,对应一个action,以scope:action的形式出现result代表rule的判定结果
service -> 服务
- Openstack包含的每个模块都是一个服务
- 对外提供
REST API - REpresentational State Transfer(表述性状态转移)- 如何正确的、统一的使用web标准
- 将所有对象定义为唯一的ID
- 将所有对象关联在一起
- 使用标准方法
- 资源多重表述
- 无状态通信(或交互)
- 对外提供
endpoint -> 服务的网络地址
OpenStack高级概念
Region -> 分区
- 地理上的概念,每个
region有自己独立的endpoint,一个独立的数据中心 regions之间完全隔离,但是多个regions之间共享同一个keystone和dashboard- 除了提供隔离的功能,
region的设计更多侧重地理位置的概念,用户可以选择离自己更近的region来部署自己的服务。 AWS(亚马逊)最新提出region的概念- 容错能力和可靠性
Availability Zone
az是在region范围内的再次切分,例如可以把一个机架上的机器划分在一个az中,划分az是为了提高容灾性和提供廉价的隔离服务。(机器独立供电)- 选择不同的
region主要考虑哪个region靠近你的用户群体,比如用户在美国,自然会选择离美国近的region; az主要是通过冗余来解决可用性问题,在亚马逊的声明中,instance不可用指的是用户所有AZ中的同一instances都不可用az是用户可见的一个概念,用户在创建instance的时候可以选择穿件到哪些AZ中
Host Aggreates
- 一组节点的组合,但强调这组节点具有共同的属性
cpu是制定类型的一组节点,disks是ssd的一组节点,os是Linux或windows
- 用户不可见的概念,主要用来给
nova-scheduler调度算法使用- 数据库服务的
instances都是调用到具有ssd属性的Host Aggreates中 - 某个
flavor或某个image的instance调度到同一个Host Aggreates中
- 数据库服务的
Cell
- 主要用来解决
openstack的扩展性和规模瓶颈 - 每个
cell有自己独立的DB和AMQPopenstack是由很多的组件通过松耦合构成,当达到一定的规模后,某些模块必然成为整个系统的瓶颈,比较典型的组件就是database和AMOP
cell实现为树形结构,自然而然引入了分级调度的概念- 通过在每级
cell引入nova-cell服务,实现了以下功能- Messages的路由,即父
cell通过nova-cell将Messages路由到子cell的AMQP模块 - 分级调度功能,即调度某个
instances的时候先要进行cell的选择,支持filter和weighing的调度策略 - 资源统计,子
cell定时的将自己的资源信息上报给父cell,用来给分级调度策略提供决策数据和基于cell的资源监控 cell之间的通信(通过rpc完成)
- Messages的路由,即父
参考资料
OpenStack Availability Zone 和 Aggreates Hosts 理解
OpenStack重要概念理解(Regions+Cells+Availability Zones+Host Aggregates等)
OpenStack Keystone的基本概念理解
来源:CSDN
作者:胖可仃
链接:https://blog.csdn.net/herhan1/article/details/103691068