以下内容均为个人理解和整理,有不对的地方还望dalao指正。。。。。
本文所用图片均已标明来源。
openstack是什么?
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
openstack组成
openstack由以下七个主要部分组成:
openstack整体架构
图源网络
openstack组成详解
Nova
Nova提供CPU、内存、网络适配器和硬件驱动器等服务器资源虚拟化的功能,提高了资源的利用率。
通过Nova api来接受和响应用户的请求,实时对VM进行启动、挂起、停止等功能。
Nova主要包含的组件有:
Neutron
Neutron架构,图源CloudMan
Neutron通过plugin和agent提供的网络服务。
调用网络的API分为以下两种:
Neutron的plugin分为Neutron Core Plugins和Neutron Service Plugins。
Message Queue:消息队列
用于Plugins和Agent相互之间的调用.
Keystone
keystone为openstack组件提供认证服务和管理用户及其权限。
keystone中有几个重要的概念要了解一下:User(用户)、Role(角色)、Tenant(租户)、Service(服务)。
keystone的运作流程大概是这样的:当User想要去访问某个Service时,首先他要向keystone出示它的Credentials,Keystone认证之后会给User一个Token,然后User就可以使用这个Token去访问Service,这时这个Service就会向keystone去验证User的Token,如果验证成功,那么User就成功访问到Service中的Endpoint,且User的Role越高,访问到的Service越多。
通俗的来讲是这样的:
User | 住酒店的人 |
---|---|
Tenant | 酒店 |
Credentials | 酒店房间钥匙 |
Authentication | 房客认证机制 |
Token | 发给能打开房间的人的凭证,用于享受酒店的服务 |
Service | 酒店提供的一种服务 |
Endpoint | 酒店提供服务中的具体服务 |
Role | 酒店会员等级 |
Swift
Swift为OpenStack提供一种分布式、持续虚拟对象存储,主要用于存储大的对象文件,比如虚拟机的备份。
Cinder
openstack的一种块存储方式,挂载给虚拟机使用,可以给虚拟机提供额外的空间。
swift和cinder的比较
swift类似于保存PC的系统,而cinder类似于保存PC里面的文件。
Glance
openstack中用于保存创建VM的镜像,比如,现在现在需要安装一个win7的操作系统给公司的某个员工使用,按照传统的操作方式需要花费大量时间,但是现在在云环境中,只需要直接从glance中按模板启动win7即可,二七人只许耗费几秒钟的时间
glance包括glance-api、glance-registry和store backend.
Horizon
简单的来说,Horizon是一个web接口,用于将openstack的资源聚集到一起并进行图形化管理。