openstack组件详解

Opestack的结构

openstack包换了许多组件。有些组件会首先出现在孵化项目中,待成熟以后进入下一个openstack发行版的核心服务中。同时也有部分项目是为了更好的支持openstack社区和项目开发管理,不包含在发行版代码中。

Openstak核心服务包括:
1,Nova计算服务(Compute as a Service)
2,Neutron网络服务(Networking as a Service )
3,Swift对象存储服务(Object Storage as a Service)
4,Cinder块存储服务(Block Storage as a Service)
Openstack公共服务包括:
1,Glance镜像服务(Image as a Service)
2,Keystone认证服务(Identity as a Service)
3,Horizon仪表盘服务(Dashboard as a Service)
Openstack的依赖库项目包括:Oslo基础设施代码共享依赖库(CommonLab as a Service)
Openstack的孵化项目包括
1,Celiometer 计费&监控服务
2,Heat 编排服务
3,Ironic 物理设备服务(Bare Metal as a Service)
4,Marconi消息队列服务(Message Queue as a Service)
5,Savanna 大数据处理(MapReduce as a Service)
6,Trove数据库服务(Database as a Service)
Openstack的其他服务

keystone

这是提供身份认证和授权的组件。任何系统,身份认证和授权,其实都比较复杂。尤其Openstack 那么庞大的项目,每个组件都需要使用统一认证和授权。
目前keystone 要做的东西其实还是很多。没法基于角色的授权,web管理用户等。

Nova OpenStackCompute

Nova是最核心的,可以说是一套虚拟化管理程序,因为nova可以创建、删除虚拟机、重启虚拟机等,openstack的之所以能够搭建云平台,也是因为它能够创建虚拟机,其它的组件,比如Neutron则是为了让虚拟机之间、虚拟机与外网之间能够互通,Cinder则是为了增加虚拟机的存储空间。可见nova在openstack中作用是非常大的

Dashboard

(代号为“Horizon”) 为所有OpenStack的服务提供了一个模块化的web-based用户界面。使用这个Web GUI,可以在云上完成大多数的操作,如启动实例,分配IP地址,设置访问控制等

Glance

这是镜像管理。
目前Glance的镜像存储,支持本地存储,NFS,swift,sheepdog和Ceph,基本是够用了。
目前Glance的最大需求就是多个数据中心的镜像管理,如何复制,不过这个功能已经基本实现。还有就是租户私有的image管理,这些目前功能都已经实现。

Neutron

这是网络管理的组件,也是重头戏,Openstack的未来,基本都要靠quantum。网络相关的内容,都会交给Quantum。不过Quantum的开发进度不是太如人意。Flosom规划实现功能,到Grizzly才实现。未来nova network的代码清理,估计到H版本都不见得可以实现。Quantum 后端可以是商业产品或者开源。开源产品支持Openvswitch,和linux bridge。网络设备厂商都在积极参与,让他们的产品支持Quantum。
网络组件nova-network的发展经历了nova-network->Quantum->Neutron,Openstack在2010年正式发布它的第一个版本Austin的时候,nova-network作为它的核心组件被包含其中,网络由nova-network来承担,后来逐渐分离出来,改名为Quantum. Quantum是随Openstack的Folsom版本正式发布的,其实它已经作为试用组件包含在之前的Essex版本中。在Grizzly里功能得到了增强。
Neutron
因为商标侵权原因,Openstack在Havana版本将Quantum更名为Neutron,所以Neutron并不是什么新东西。在Havana版里,Neutron也只增加和增强了少数功能

Cinder

这是存储管理的组件。Cinder存储管理主要是指虚拟机的存储管理

Swift

这是对象存储的组件。对于大部分用户来说,swift不是必须的。你只有存储数量到一定级别,而且是非结构化数据才有这样的需求。很多人都问一个相同的问题:是否可以把虚拟机的存储放在swift上。简单回答:不行。你需要搞明白对象存储是干啥,擅长那些地方,那些是不行的。
swift是Openstack所有组件了最成熟的,可以在线升级版本,各种版本可以混合在一起,也就是说,1.75版本的swift可以和1.48的在一个群集里.这个是很难得的.

Ceilometer

提供用量统计服务,通过它可以方便地实现 OpenStack 计费功能。

Heat

整合了 OpenStack 中的众多组件,类似 AWS 的 CloudFormation,让用户能够通过模板来管理资源

用户身份管理有三个主要的概念:
• 用户Users
• 租户Tenants
• 角色Roles

  1. 定义
    这三个概念的openstack官网定义(点击打开链接)
    1.1 用户(User)
    openstack官网定义User为“In OpenStack Identity, entities represent individual API consumers and are owned by a specific domain. In OpenStack Compute, a user can be associated with roles, projects, or both”
    关于用户需要明白以下:
  1. 一个用户就是一个有身份验证信息的API消费实体;
    2)一个用户可以属于多个租户/项目/组织, 角色;
    1.2 租户(Tenant)
    openstack官网定义Tenant为"A group of users; used to isolate access to Compute resources. An alternative term for a project”
    关于租户需要明白以下几点:
    1)【修改前】租户相当于一个用户组,包含多个用户。
    **注[updated on 2016/07/25]:以上这句话不是很准确,经核实后修改如下。
    1)【修改后】租户也可以理解为一个项目(Project)。 在API 3之前的版本,使用tenant, API 3之后的版本,更多的使用project。目前的openstack版本(Mitaka (April 2016))中,更多的使用的是peoject(项目)这个词,而不倾向于使用tenatn(租户)。Tenant其实是各个服务中的一些可以访问的资源集合。这些资源集合可供多个用户使用,这也是为什么用户默认的总是绑定到某些tenant上。
    2)用户通过租户访问计算管理资源(这里的计算管理资源可以理解为openstack服务),也就是说必须指定一个相应的租户才可以申请openstack服务。
  2. 各租户相互独立,在当前租户下无法查看其他租户信息。
    1.3 角色(Role)
    openstack官网定义role为“A personality that a user assumes to perform a specific set of operations. A role includes a set of rights and privileges. A user assuming that role inherits those rights and privileges.”
    关于角色需要明白以下:
    1)角色是可执行一特定系列操作的用户特性,角色规定了用户在某个租户中的一系列权利和特权。
    2)一般默认有超级管理员权限admin和普通管理员权限member。
  1. 举例

以公司某员工需要向公司财务部门申请出差费用报销为例,说明三者关系。
用户代表员工1, 他持有相关的信息,例如姓名、工号、电子邮箱等。 项目组属于不同的租户。用户1可以同时属于不同的几个项目组
。当员工1提出申请出差补贴的请求时,必须指定一个他所属的项目组。而角色则规定了该员工在某一个项目组所拥有的权限,比如什么费用可以报销,什么不可以报销**

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值